学习python的第三天
作业的改正
1.知道圆的半径,求取圆的周长和面积
import math
radius=float(input('请输入圆的半径:'))
circleference=radius*2*math.pi
circle_area=radius**2*math.pi
print(f'圆的周长为{circleference:.2f}')
print(f'圆的面积为{circle_area:.2f}')
2.公英制单位的转换
x=float(input('请输入有几英寸:'))
print('%.1f英寸=%.1f厘米'%(x,x*2.54))
print(f'{x:.1f}英寸={x*2.54:.1f}厘米')
一些相关的数学公式计算:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4FqjWTXe-1626960466131)(file:///C:\Users\22447\AppData\Roaming\Tencent\QQTempSys%W@GJ$ACOF(TYDYECOKVDYB.png)]https://www.zybuluo.com/codeep/note/163962
格式化字符:在使用
%.1f
是一个占位符,稍后会由一个float
类型的变量值替换掉它。同理,如果字符串中有%d
,后面可以用一个int
类型的变量值替换掉它,而%s
会被字符串的值替换掉。除了这种格式化字符串的方式外,还可以用下面的方式来格式化字符串,其中{f:.1f}
和{c:.1f}
可以先看成是{f}
和{c}
,表示输出时会用变量f
和变量c
的值替换掉这两个占位符,后面的:.1f
表示这是一个浮点数,小数点后保留1位有效数字。
我们即将进入主题正式学习今天的内容
条件语句
就是if,if…else…,if…elif
的使用,这些关键字都有着特殊的含义,并用于构造分支结构,python的条件结构不像c语言和Java那样需要花括号,只需要用缩进的方式,以下就是实战的例子,以此来深入了解:
02 - 分段函数求值 ---> 如何构造多个分支
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(f'f(x) = {y}')
x = float(input('x = '))
if x > 1:
y = 3 * x - 5
else:
if x < -1:
y = 5 * x + 3
else:
y = x + 2
print(f'f(x) = {y}')
也从这两个方法中看出:代码越扁平越好
分支结构可以嵌套使用,但是一定要注意嵌套的深度,嵌套深度太深直接影响代码的可读性
代码块:保持相同的缩进的代码就属于同一个代码块
关于个人所得税的相关计算
total = float(input('本月收入: '))
insurance = float(input('五险一金扣除: '))
E = total - insurance
I = E - 3500
if 0 < I <= 1500:
R = 0.03
D = 0
elif I <= 4500:
R = 0.1
D = 105
elif I <= 9000:
R = 0.2
D = 555
elif I <= 35000:
R = 0.25
D = 1005
elif I <= 55000:
R = 0.3
D = 2755
elif I <= 80000:
R = 0.35
D = 5505
else:
R = 0.45
D = 13505
if I > 0:
T = I * R - D
else:
T = 0
print(f'应纳税款: {T:.2f}元')
print(f'税后收入: {E - T:.2f}元')
循坏
for-in 循坏
如果明确的知道循环执行的次数,我们推荐使用for-in
循环,例如计算1到100的和。 被for-in
循环控制的语句块也是通过缩进的方式来确定的,这一点跟分支结构完全相同,下面的代码就明白了。
total = sum(range(1, 101)) #sum()函数
print(total)
total = 0
for i in range(2, 101, 2):
total += i
print(total)
total = 0
for i in range(1, 101):
if i % 2 != 0:
total += i
else:
pass #pass代表该语句无任何功能,
print(total)
range()函数
-
range(101)
:可以用来产生0到100范围的整数,需要注意的是取不到101。 -
range(1, 101)
:可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。 -
range(1, 101, 2)
:可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。 -
range(100, 0, -2)
:可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。 - range()得到数值都是整数。
循坏与逻辑判断布尔
bool
类型(False,Ture),布尔运算符(not,and,or),比较运算符(>,<,=之间有一定联系具有一定的联系
break
关键字:
它的作用是提前结束循环。需要注意的是,break
只能终止它所在的那个循环,这一点在使用嵌套循环结构时需要引起注意,下面的例子我们会讲到什么是嵌套的循环结构。除了break
之外,还有另一个关键字是continue
,它可以用来放弃本次循环后续的代码直接让循环进入下一轮。
嵌套的循环结构
和分支结构一样,循环结构也是可以嵌套的,也就是说在循环中还可以构造循环结构。
求1-100之间3或5的倍数的和
total = 0
for i in range(1, 101):
if i % 3 == 0 or i % 5 == 0:
total += i
print(total)
输入两个正整数,找出它们的最大公约数
最大公约数(greatest common divisor):两个数所有公共因子中最大的数
x = int(input('x = '))
y = int(input('y = '))
# Euclid算法
while y % x != 0:
x, y = y % x, x
print(x)
bug()
bug —> 缺陷 / 故障 / 问题 —> debug(调试)mobilize / demobilize
modem —> moderate / demoderate
encode / decode
while循坏
i = 0
while i < 10:
print('hello, world')
i += 1
print('game over!')
–> debug(调试)mobilize / demobilize
modem —> moderate / demoderate
encode / decode
while循坏
i = 0
while i < 10:
print('hello, world')
i += 1
print('game over!')