【python第三章 进阶语法】

第三章 python进阶语法:运算符、流程控制

    • 第三章 进阶语法 :运算符、流程控制
      • 3.1 Python运算符
      • 3.2 Python流程控制
        • 3.2.1关于if判断
        • 3.2.2while循环
        • 3.3.3关于for循环
        • 3.3.5循环嵌套

第三章 进阶语法 :运算符、流程控制

3.1 Python运算符

①算术运算符:只针对数字类型
四则运算:+ - * /
取余数:%
取整除://
取幂:**
注意:python没有++ / –
**②赋值运算符:
说明:=等号就是赋值,是有方向性的,即右边赋值给左边(先看右边)
说明:+= -= *= /= %= //= =
③比较运算符:
说明:比较的结果一定要返回布尔型 ☆
符号:> < >= <= == !=
④逻辑运算符:与或非
条件组合
三个保留字
x and y与
x or y或
not x非
⑤拼接运算符:当有字符串出现的时候,+就执行拼接 ☆
【python第三章 进阶语法】_第1张图片
【python第三章 进阶语法】_第2张图片
【python第三章 进阶语法】_第3张图片
表示3的3的99次方的最后四位
【python第三章 进阶语法】_第4张图片
【python第三章 进阶语法】_第5张图片
【python第三章 进阶语法】_第6张图片

dayup = 1.0
dayfactor = 0.01
for i in range(365):
    if i % 7 in [6,0]:
        dayup = dayup*(1-dayfactor)
    else:
        dayup = dayup*(1+dayfactor)
print("工作日的力量:{:.2f}".format(dayup))
dayfactor = 0.01
def dayUP(df):
    dayup = 1
    for i in range(365):
         if i % 7 == 0 or i % 7 == 6:
            dayup = dayup * (1 - 0.01)
         else:
             dayup = dayup * (1 + df)
    return dayup
dayfactor = 0.01
while dayUP(dayfactor) < 37.78:
    dayfactor += 0.001
print("工作日的努力参数量是:{:.3f}".format(dayfactor))

异常处理:

try
except

【python第三章 进阶语法】_第7张图片


3.2 Python流程控制

说明:Python的流程控制共有三个关键字:if、while、for
说明:代码运行的顺序共有三种形式 ☆
①顺序执行:自上而下
②分支执行:有跳转
③循环执行:一直执行某些代码

3.2.1关于if判断

说明:if的含义是“如果”,就是分支执行,表示判断 ☆
说明:if的作用是判断表达式是否成立,成立就返回True,不成立就返回False

 age = 17
face ='帅'
if age>=18 or face == '帅':
	print('欢迎')
print('hello')

说明:在Python中,False/None/空字符串/空列表/空字典/空元组/空集合都表示假值

print(True and True)
print(False and True)
print(False and False)
print('\n')
print(True or True)
print(True or True)
print(True or False)
print(False or False)
'''
True
False
False


True
True
True
False
'''

#BMI对照:


height,weight=eval(input("请输入身高(米)和体重(公斤)[逗号隔开]:"))
bmi=weight/pow(height,2)
print("BMI值为:{:.2f}".format(bmi))
who,nat="",""
if bmi<18.5:
   who,nat="偏瘦", "偏瘦"
elif 18.5<=bmi<24:
   who,nat="正常", "正常"
elif 24<=bmi<25:
   who,nat="正常", "偏胖"
elif 25<=bmi<28:
   who,nat="偏胖", "偏胖"
elif 28<=bmi<30:
   who,nat="偏胖", "肥胖"
print("BMI指标为:国际‘{0}’,国内。‘{1}’".format(who,nat))

布尔型:True是1,False是0:

print(True) # True
print(True+1) #2
print(False+1) #5
print(True*10) #10
a=10
b=20
print(a >=10)		# True
print(a == '10')	# False
print(a < 20-a)		# False
print(a<(20-a))		# False
print(a != b)   	# True

扩展:

print(str(100//10) == '10')		# True

除法:

a=10
b=3
print(a/b) # 3.33333333333335 (无限循环小数)
#说明:计算机非常不适合计算小数欢
#说明: 1/3怎么用程序表示?
#扩展;
#乘法
print( 'hello'*3)# hellohellohello
print(10* 'world' ) # worldworl dworldworl dworldworl dworldworldworldworld
#取余(取模)
n1= 3
n2=10
print(n1%n2) #3
print(n2%n1) #1
#取商(取整除)
print(n1//n2)
print(n2//n1) #3
#取幂(取几次方)
print(n1**3) #27

三种字符串拼接写法:

con1 = "你真帅"
print(con1+"呀")
con2 = "你真帅{}"
print(con2.format("呀!"))
con3 = "你真帅"
print(f"{con3}呀")

单分支:

age = 17
money = 100
if age >=18 or money>=50:
       print("欢迎")

双分支:else

score = 61
if score<60:
    print('不及格')
else:
    print('及格')

多分支

blood = input('请输入您的血型:')
info = '您的血型是{}型'
res = info.format(blood)
if blood=='A':
    print(res)
elif blood=='B':
    print(res)
elif blood=='AB':
    print(res)
else:
    print(res)

所有空都表示假

if None:
   print('hello')
sr = ''
if sr:
   print('world')
#空列表、空字典、空元祖、空集合、空字符串

扩展:

a=1
b=a if a>10 else -a
print(b) #-1

练习题:

score=int(input('请输入你的分数:'))
if score<60:
   print('不及格')
elif score>=60 and score<70:
   print('D')
elif score>=70 and score<80:
   print('C')
elif score >= 80 and score < 90:
   print('B')
elif score>=90 and score<95:
   print('A')
elif score>=95 and score<100:
   print('A+')

3.2.2while循环

只要条件满足,就会一直执行,直到条件不成立为止
四要素:初始值、条件、增量(步长)、循环体
写法:

i=1    #初始值
while i<=10:   #条件
    print('hello')   #循环体
    i+=1   #增量(步长)
print(i)   #11
# 结论:当初值为0时,小于几,就是循环多少次

例题:

# 要求:保证初始值、步长、条件不变的清况下:
# 1.输出2,7,8
# 2.输出偶数
# 3.输出4,5,6
i=0
while i<10:
    if i==2 or i==7 or i==8:
        print(i)
    i += 1

i=0
while i<10:
    if i % 2 == 0:
        print(i,end=' ')
    i += 1
print('')

i=0
while i<10:
    if i > 3 and i < 7:
        print(i)
    i += 1

3.3.3关于for循环

例子:

code = "hello"
for item in code:
    print(item,end=' ')  # h e l l o

print('')

for i in range(10):
    print(i, end=" ")  # 0 1 2 3 4 5 6 7 8 9
print("")
for j in range(6, 10):
    print(j, end=" ")  # 6 7 8 9
print("")
for k in range(1, 10, 2):
    print(k, end=" ")  # 1 3 5 7 9

for写法:

sr = 'hello,world'
for i in sr:
    #print(i,end='*') # end结束符默认是换行
    print(i)
 
#i表示index,是索引的意思
#in是关键字,必须写
#in后面加可迭代的对象
 
sr = "hello world"
i=0
while i<len(sr):
    print(sr[i])
    i+=1

循环控制保留字:

break: 毁坏:
跳出并结束当前循环,执行循环后的语句
continue:继续:
结束当次循环,继续执行后续次数循环

注意:break和continue只能停止一层循环
场景:死循环+break,当不知道循环多少次的时候

for i in range(10):
    if i>5:
        print("hello")
        continue
    print(i)
print("===========")
for i in range(10):
    if i>5:
        print("hello")
        break
    print(i)
 
'''
0
1
2
3
4
5
hello
hello
hello
hello
===========
0
1
2
3
4
5
hello
'''

一些例子(没啥用

for c in "python":
   if c =="t":
       continue
   print(c,end="")
#结果:pyhon

for c in "python":
   if c =="t":
       break
   print(c,end="")
#结果:py

s="python"
while s !="":
   for c in s:
       print(c,end="")
   s=s[:-1]
#结果:pythonpythopythpytpyp


s="python"
while s !="":
   for c in s :
       if c =="t":
           break
       print(c,end="")
   s= s[:-1]
#break仅跳出当前最内层循环
#结果:pypypypypyp


循环与else

当循环没有被break语句退出时,执行else语句块

for c in "python":
   if c =="t":
       continue
   print(c,end="")
else:
   print("正常退出")
#结果:python正常退出
for c in "python":
  if c =="t":
      break
  print(c,end="")
else:
  print("正常退出")
#结果:py
#求和
j=0
for i in range(1,101):
 if i%2:
     j=j+i
 i+=1
print(j)

k=0
m=1
while m<=100:
 if not m%2==0:
     k=k+m
 m+=1
print(k)

3.3.5循环嵌套

矩形:


while True:
    x = int(input("请输入宽:"))
    y = int(input("请输入高:"))
    z = int(input("空心为0,实心为1:"))
    i = 0
    while i < y:
        j = 0
        while j < x:
            if z:
                print("*", end='')
            else:
                if i == 0 or j == 0 or i == y - 1 or j == x - 1:
                    print("*", end="")
                else:
                    print(" ", end="")
            j += 1
        print()
        i += 1

    res = input("按1继续,按2停止:")
    if res == "2":
        break

直角三角形:

while True:    
    x=int(input("请输入边长:"))
    #y=int(input("请输入高:"))
    z=int(input("空心为0,实心为1:"))
    i=0
    while i<x:
        j=0
        while j<=i:
            if z:
             print("*",end='')
            else:
                if j==0 or i==x-1 or j==i:
                    print("*",end="")
                else:
                    print(" ",end="")
            j += 1
        print()
        i+=1
   
    res=input("按1继续,按2停止:")
    if res=="2":
        break

等腰三角形:

单层for循环:

x=int(input("输入层数:"))
for i in range(1,x+1):
   print(" "*(x-i)+"*"*(2*i-1))

双层while循环:


while True:
    x = int(input("请输入边长:"))
    #y=int(input("请输入高:"))
    z = int(input("空心为0,实心为1:"))
    i = 0
    while i <=x:
        j = 0
        print(" "*(x-i),end="")
        while j < 2*i-1:
            if z:
                print("*", end='')
            else:
                if j == 0 or i == x  or j == 2*i-2:
                    print("*", end="")
                else:
                    print(" ", end="")
            j += 1
        print()
        i += 1
 
    res = input("按1继续,按2停止:")
    if res == "2":
        break

双层for循环:

while True:
    x = int(input("请输入边长:"))
    #y=int(input("请输入高:"))
    z = int(input("空心为0,实心为1:"))
    i = 0
    for i in range(0,x+1):
        #j = 0
        print(" "*(x-i),end="")
        for j in range(0, 2*i-1):
            if z:
                print("*", end='')
            else:
                if j == 0 or i == x  or j == 2*i-2:
                    print("*", end="")
                else:
                    print(" ", end="")
            j += 1
        print()
        i += 1
 
    res = input("按1继续,按2停止:")
    if res == "2":
        break

以上所有双层循环的代码均可根据第一个矩形的代码轻松改编过来,黄色是需要改的部分

【python第三章 进阶语法】_第8张图片


【python第三章 进阶语法】_第9张图片


【python第三章 进阶语法】_第10张图片

你可能感兴趣的:(python实训,笔记,python,开发语言)