学习python的第三天

学习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

格式化字符:在使用print函数输出时,也可以对字符串内容进行格式化处理,上面print函数中的字符串%.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}')

也从这两个方法中看出:代码越扁平越好

分支结构可以嵌套使用,但是一定要注意嵌套的深度,嵌套深度太深直接影响代码的可读性
代码块:保持相同的缩进的代码就属于同一个代码块

关于个人所得税的相关计算

学习python的第三天
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!')
上一篇:一种简易的球面图包裹物体AO实现


下一篇:vmlinuz文件解压缩