day03 昨天的作业
1.英制单位转公制单位
a = float(input('请输入磅(数值):'))
b = 453.59237 * a
print('等于', b, '克')
# 英制单位转化为公制单位
2.输入圆的半径,计算面积,周长
a1 = float(input('请输入圆的半径:'))
b1 = 2 * math.pi * a1
c1 = math.pi * (a1 ** 2)
print('圆的周长:', f'2 * {math.pi} * {a1}={b1}')
print('圆的面积:', f'{math.pi} * {a1} ** 2={c1}')
day03 小技巧
- 如何调试程序,一步步查看运行
-
如何添加监测数据
day03 知识
1.分支结构
-
登录系统,if,else的简单用法
import getpass username = str(input('用户名:')) password = getpass.getpass('密码:') if username == 'demo' and password == '123456': print('登录成功!欢迎使用xxx系统!') else: print('登录失败!用户名或密码错误!') print('程序结束,欢迎使用!')
-
分段函数,if,elif,else的用法
""" 3x-5 , x>1 f(x) x+2 , -1<=x<=1 5x+3 , x<-1 """ x = float(input('请输入x的值:')) if x > 1: y = 3*x - 5 elif x >= -1: y = x + 2 else: y = 5*x + 3 print('输出结果:', y) # 第一种写法 x = float(input('请输入x的值:')) if x > 1: y = 3*x - 5 else: if x >= -1: y = x + 2 else: y = 5*x + 3 print('输出结果:', y) # 大家可以自己感受和评判一下这两种写法到底是哪一种更好。 # 在[**Python之禅**]中有这么一句话:“Flat is better than nested” # 之所以提倡代码“扁平化”是因为嵌套结构的嵌套层次如果很多,会严重的影响代码的可读性,所以能使用扁平化结构时就不要使用嵌套结构。
2.循环语句
-
循环语句的基础规则
for i in range(110, 101, -3): print(i, '*') # 第一个数值是起始值,第二个数值是结束值,第三个是步长。 # 起始值能取,结束值不能取 print(i, 'bbb') # b没有进入循环
-
例题1:输入个人工资计算税后工资
M = float(input('请输入你的税前工资(没有扣三险一金):')) a = float(input('请输入你的五险一金:')) E = float(M - a) # 扣除五险一金的收入额 I = float(E - 3500) # 应交税所得额 if I > 80000: R = 0.45 D = 13505 elif I > 55000: R = 0.35 D = 5505 elif I > 35000: R = 0.30 D = 2755 elif I > 9000: R = 0.25 D = 1005 elif I > 4500: R = 0.20 D = 555 elif I > 1500: R = 0.10 D = 105 elif I > 0: R = 0.03 D = 0 else: T = 0 A = E - T print('应交税收', T) print('你的税后收入:', A) T = I * R - D A = E - T print('应交税收', T) print('你的税后收入:', A)
-
例题2:计算数值和,将判断语句和循环语句相结合
total = 0 for i in range(1, 101): total += i print(total) print(sum(range(1, 101))) # 计算1到100的和 total = 0 for i in range(1, 101): if i % 3 == 0 or i % 5 == 0: total += i print(total) # 计算1到100,3或5的倍数的和
-
例题3:将控制字符长度和复杂运算加入进循环函数
print('N'.ljust(10), end='') print('N^2'.ljust(10), end='') print('N^3'.ljust(10), end='') print('N^N'.ljust(10), ) for i in range(1, 11): print(f'{i:<10d}{i**2:<10d}{i**3:<10d}{i**i:<10d}') # 输出1-n,以及他们对应的平方,立方,和n的n次方 total = 1 n = int(input('请输入一个非负整数:')) n1 = n for n in range(n, 1, -1): total *= n print(f'{n1}!={total}') # 输入一个非负整数n,计算n!。n!=n*(n-1)*(n-2)*......*1
-
例题4:range 循环和while循环的区别
""" 输入两个正整数,求最大公约数 """ a = int(input('输入第一个正整数:')) b = int(input('输入第二个正整数:')) i = 0 if a > b: for i in range(a, 0, -1): if a % i == 0 and b % i == 0: print('最大公因数:', i) break if a < b: for i in range(b, 0, -1): if a % i == 0 and b % i == 0: print('最大公因数:', i) break if a == b: print('最大公因数:', a) #用range循环
a = int(input('输入第一个正整数:'))
b = int(input('输入第二个正整数:'))
while a % b != 0:
a, b = b, a % b
print('最大公因数是:', b)
# 用while循环求两个正整数的公因数