python3基础2
文章目录
1 数据类型
数值、字符、布尔(True False)
2 集合类型
列表list[]
字典dict{key:value}
元组tuple() 不可更改
集合set{}
元素不可重复 去重
3 变量
用来存储一个反复使用的量
num1 = 10 # 数值
print(type(num1))
num2 = 10.10 # 数值
print(type(num2))
str1 = "123" # 字符串
print(type(str1))
tag = True # 布尔
print(type(tag))
4 多变量赋值
可以是相同类型,也可以是不同类型。
n1 = n2 = n3 = 2
print(n1, n2, n3)
n1, n2, n3 = 2, 'hello', True
print(n1, n2, n3)
5 字符
切片规则
与列表list同理
’‘’
-5 -4 -3 -2 -1 <--由右向左
h e l l o
0 1 2 3 4 -->由左向右
默认切片提取由左向右,左闭右开 [起始,终止) 提取元素
切片[2:5] 输出的是2-4(左闭包括2 右开不包括5)
[x:y:n] 间隔n取x到y-1元素
‘’‘
示例
s1 = 'hello'
print(s1[-4])
print(s1[3])
print(s1[1:3])
print(s1[-3:-1])
print(s1[-1:-3]) # 非法 输出为空 不报错
print(s1[1:3:2])
# 提取 ello
print(s1[1:5]) # 右(y)可以超出范围
print(s1[1:])
print(s1[-4:])
逆序
print(s1[::-1])
练习
字符串输出
str1 = " 3546 " # 长度为8
length = len(str1)
start = 0
end = length-1
for i in range(0, length, 1):
if str1[i] != ' ':
start = i
break
print(str1[start:end+1])
去掉字符串前后的空格
去空格1
str1 = " abc "
n = 0
while str1[n] == ' ':
n += 1
p = n
while str1[p] != ' ':
p += 1
print(str1[n:p])
去空格2
S1 = ' abc '
while S1[0] == ' ':
S1 = S1[1:]
while S1[-1] == ' ':
S1 = S1[0:-1]
print(S1)
去空格3
str1 = input("输入带空格字符串:")
length = 0
r = len(str1)-1
while length <= r and str1[length] == ' ':
length += 1
while length <= r and str1[r] == ' ':
r -= length
print(str1[length:r+1])
去空格4 递归函数
def trim(str):
if str[:1] != " " and str[-1:] != " ":
return str
elif str[:1] == " ":
return trim(str[1:])
else:
return trim(str[:-1])
print(trim(" sdfef "))
6 字符串格式化
name = "xxx"
age = 23
score = 98.76
print("我的名字是" + name)
print("我的名字是", name) # 用,分割常量或变量之间有空格
print("我的名字是%s,我的年龄是%d" % (name, age))
print("分数是%0.1f" % score)
format方式
print("我的名字是{0},年龄是{1}".format(name, age))
python3.6新增 f-strings
print(f'我的名字:{name}')
print(f'我的名字:{name.upper()}') # .upper() 字符转换成大写
练习
输出格式
import math
num = input("输入数字:")
if num.isdigit(): # .isdigit()判断是不是数字
x = math.sqrt(int(num))
print(str(num)+"数字的平方根是"+str(x))
print("%d数字的平方根是%.2f" % (int(num), x))
print("{0}数字的平方根是{1}".format(num, x))
print(f"{num}数字的平方根是{x}")
else:
print("输入不合法")
import math
try:
x = input("请输入数字")
x = int(x) # 直接转换类型 不判断
y = math.sqrt(x)
print("%f的平方根是%f"%(x,y))
print("{0}的平方根是{1}".format(x,y))
print(f"{x}的平方根是{y}")
except ValueError:
print("输入有误")
练习
摄氏度 华氏度转换 *1.8+32
print("摄氏度转为华氏度请按1:\n华氏度转换为摄氏度请按2:")
i = int(input())
if i == 1:
t = float(input("请输入摄氏度:"))
h = t * 1.8 + 32
print("%.1f摄氏度转化为华氏度为%.1f" % (t, h))
elif i == 2:
h = float(input("请输入华氏度:"))
t = (h-32)/ 1.8
print("%.1f华氏度转化为摄氏度为%.1f" % (h, t))
else:
print("error")
计算三角形的面积
# 三个格式化输出结果:三条边分别为X,X,面积为X
# 海伦公式
# 已知三角形三边a,b,c,则
# (p=(a+b+c)/2)
# S=sqrt[p(p-a)(p-b)(p-c)]
print("请输入三角形的三条边(用空格分隔):")
a, b, c = map(float, input().split(' '))
p = 1/2*(a+b+c)
s = (p*(p-a)*(p-b)*(p-c))**0.5
print("三角形的面积是%.2f" % s)
print("三角形的面积是{0}".format(s))
print(f"三角形的面积是{s}")
求和 lambda表达式
sum_fun = lambda x, y: x+y
print(f'求和结果{sum_fun(2,3)}')