ps:主播是java转python的,逻辑重合地方所以笔记会比较简洁
流程控制语句if,if-else,while,for还有嵌套语句逻辑方面都和Java相同,重点是书写格式的不同,我就不文字展示了,直接看例子啦。
一、If 语句
1、if...else...语句
if 判断条件:
条件成立要做的操作
else:
条件不成立要做的操作
python是根据缩进来描述代码归属的,所以if代码块的地方要有4个空格缩进(Tab)
num = int(input("请输入你的分数:")) if num > 700 and num < 750: print("恭喜你进入清华") else: print("分数不够,不能进入清华")2、if...elif...语句
if 判断条件1:
条件1成立要做的操作
elif 判断条件2:
条件2成立要做的操作
else :
以上条件都不成立要做的操作
#根据输入用户名、密码登陆系统 #用户名、密码为 admin/666888或root/547527或wangwu/123456,则输出登陆成功,或者提示用户名或密码错误 username = input("Enter your username: ") password = input("Enter your password: ") if username == "admin" and password == 666888: print("登陆成功") elif username == "root" and password != 547527: print("登陆成功") elif username != "wangwu" and password != 123456: print("登陆成功") else : print("用户名或密码错误")3、案例
#给出三条边,判断等否构成三角形,或等边三角形、等腰三角形、普通三角形 a = int(input("请输入一条边长:")) b = int(input("请输入一条边长:")) c = int(input("请输入一条边长:")) if a + b >c and b + c > a and c + a > b: if a == b and b == c : print("此三角形为等边三角形") elif (a == b or b == c or a == c) : print("此三角形为等腰三角形") else : print("三条边只能构成普通三角形") else : print("3条边不能构成三角形")二、模式匹配match...case...
num1 = float(input("Enter a number: ")) num2 = float(input("Enter a number: ")) oper = input("Enter operation: ") match oper: case "+": print(f"{num1} + {num2} = {num1 + num2}") case "-": print(f"{num1} - {num2} = {num1 - num2}") case "*": print(f"{num1} * {num2} = {num1 * num2}") case "/": print(f"{num1} / {num2} = {num1 / num2}") case _: print(f"没有这个符号,{num1}和{num2}不能进行运算")三、循环
1、while循环
while 条件表达式
循环语句1
循环语句2
......
else:
循环正常结束时进行的操作(可选)
#计算1~100之间所有偶数的累加之和 count = 1 #num计数器 total = 0 while count <= 100 : if count %2 == 0: total += count count += 1 print(f"1~100之间所有偶数的和是:{total}")2、for 循环(重点新知识:rang语句)
for 元素 in 要处理的数据集
循环体代码语句
else
循环结束时要处理的语句(可选)
rang语句:生成指定规则的数列
(1)range(end):获取从0开始到end结束的数字序列(不含end本身)
(2)range(start,end):获取一个从start开始到end结束的数字序列(不含end本身)
(3)range(start,end,step):获取一个从start开始到end结束的序列,步长step(不含end本身)
eg:range ( 0 , 11 , 2 ) 的序列就是:0,2,4,6,8,10
#计算1~100之间所有的奇数和 total = 0 for i in range(1,101): if i %2 != 0 : total += i print(f"1~100之间的奇数和为:{total}") #另一种方法 total2 = 0 for i in range(1,101,2): total2 += i print(f"1~100之间的奇数和为:{total2}")3、·嵌套循环(在2、for循环的案例中就已经存在for和if的嵌套循环了)
#打印99乘法表 for i in range(1,10): #外层循环,表有1~9行 for j in range(1,i+1): #内层循环,每行有i列 print(f"{j}*{i} = {i*j}",end=" ") print()案例:打印国际象棋棋盘:
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
#打印国际象棋棋盘 # 循环8行 for i in range(8): # 循环8列 for j in range(8): if (i + j) % 2 == 0: print("■ ",end="") else: print("□ ",end="") print()三、循环的的综合案例
break:结束循环、跳出循环
continue:直接进入下一个循环
random:生成随机数random.randint(a:1,b:100)生成1到100之间的随机数(import random)
案例1:让用户输入用户名和密码,用户名为空或用户名和密码错误重新输入用户名和密码,用户名和密码为你admin/666888、root/123456、wang/123456则登陆成功
while True: # 输入用户名和密码 username = input("Enter your username: ") password = input("Enter your password: ") if username == "" or password == "": #用户名或密码为空 print("Please enter your username and password") continue #后面的代码不会执行,直接进入下一个循环 #用户名和密码正确 elif username == "admin" and password == "666888" : print("Welcome Admin") break elif username == "root" and password == "123456": print("Welcome Admin") break elif username == "wang" and password == "123456": print("Welcome Admin") break else:#用户名或密码不正确 print("Wrong username or password, try again")案例2:猜数字,系统在1到100之间随机生成一个数,用户根据提示猜数字,如果猜错,系统给出提示,猜大了还是猜小了,如果猜对,则游戏结束
import random random_number = random.randint(1, 100) #生成1到100之间的随机数 #开始循环 while True: user = int(input("Enter a number: ")) if user == random_number: print("You win!") break elif user > random_number and user <= 100: print("Too high!") continue elif user < random_number and user >= 1: print("Too low!") continue else: print("out of range!please again") continue