Python简介
第一个Python程序
Python代码运行助手
输入和输出
数据类型和变量
- 加 r
- 不加 r:
- 先把’ABC’赋值给a,再把a赋值给b,此时b是’ABC’,至于下边再把’XYZ’赋值给a,对于b来说已经没有效果了,输出b还是’ABC’:
使用list和tuple
条件判断
bmi = weight / (height**2)
if bmi < 18.5:
print('过轻')
elif 18.5 <= bmi < 25:
print('正常')
elif 25 <= bmi < 28:
print('过重')
elif 28 <= bmi <= 32:
print('肥胖')
elif 32 < bmi:
print('严重肥胖')
循环
- for 循环
- while 循环
调用函数
定义函数
gh = math.sqrt(b ** 2 - 4 * a * c)
j1 = (-b + gh) / (2 * a)
j2 = (-b - gh) / (2 * a)
return j1, j2
函数的参数
说明:题目要求中try里,如果传个空值需要当成错误,我开始判断了传入数组的长度,为0返回False但是不对;于是就在函数中随意定义了一个位置参数,让结果乘以这个参数,如果nums不传值那这个位置参数未定义,肯定就报错了,如果nums传值了,第一个数就会赋值给位置参数。
- 错误解:
def product(*nums):
if len(nums) == 0:
return False
else:
result = 1
for num in nums:
result *= num
return result
- 正解:
def product(x, *nums):
result = 1
for num in nums:
result *= num
return result * x
递归函数
if n == 1:
print(a, '-->', c)
else:
move(n-1, a, c, b)
move(1, a, b, c)
move(n-1, b, a, c)
切片
利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:
if len(s) == 0:
return s
elif s[0] == ' ':
return trim(s[1:])
elif s[-1] == ' ':
return trim(s[:-1])
return s
迭代
请使用迭代查找一个list中最小和最大值,并返回一个tuple:
列表生成式
练习:
如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错:
L2 = [name.lower() for name in L1 if isinstance(name,str)==True]
生成器
def triangles():
Y = [1] # 初始化为 [1],杨辉三角的每一行都是一个list
while True:
yield Y # yield 实现记录功能,没有下一个next将跳出循环
H = Y[:] # 将 Y 赋值给 H, 通过 H 计算每一行
H.append(0) # 将list添加 0 作为最后一个元素,长度增加 1
Y = [H[i - 1] + H[i] for i in range(len(H))] # 通过 H 计算出 Y