当前位置:首页>python>python核心基础语法(2)

python核心基础语法(2)

  • 2026-10-11 07:54:15
python核心基础语法(2)

python

书接上回,这次我们讲流程控制语句

相信学过前端或java的同学都知道流程语句是什么吧,

程序的流程大体分为三类:顺序、分之、循环。

分支分为单分支和多分支

1.单分支:

if 判断条件:

条件【成立】时执行的代码1条件【成立】时执行的代码2
age=int( input('请输入年龄') )if age>18:print("你是成年人")

2.双分支

if 判断条件:

条件【成立】时执行的代码1条件【成立】时执行的代码2

else:

条件成【不成立】时执行的代码1条件成【不成立】时执行的代码2
age = int(input('请输入年龄'))if age > 18:print("你是成年人")else :print("你是未成年人")

3.多分支

if 判断条件1:

条件1【成立】时执行的代码

elif 判断条件2:

条件2【成立】时执行的代码

elif 判断条件3:

条件3【成立】时执行的代码

else:  # else如不需要可以省略

上述所有条件都不成立时执行的代码
age = int(input('请输入年龄'))if age > 18:print("你是成年人")elif age>6 :print("你是未成年人")else:print("你是儿童")
  1. 一个if语句只能匹配1个else语句,但可以匹配多个elif语句,并且else语句要在所有的elif语句之后。
  2. 一旦某个分支语句检测为true,其他的elif以及else语句都将不再执行。

嵌套分支

if 判断条件1:# 条件1 成立时执行的代码1# 条件1 成立时执行的代码2# ......if 判断条件2:# 条件2 成立时执行的代码1# 条件2 成立时执行的代码2# ......elif 判断条件3:# 条件3 成立时执行的代码# ......else:# 条件2、条件3 都不成立时执行的代码1# 条件2、条件3 都不成立时执行的代码2# ......else:# 条件1 不成立时执行的代码1# 条件1 不成立时执行的代码2# ......if 判断条件4:# 条件4 成立时执行的代码# ......else:# 条件4 不成立时执行的代码# ......

循环:

循环是一种让代码“重复执行”的机制,当某个条件成立时,程序会反复执行一些语句,直到条件不再满足时,再停止运行

while循环:

while 循环条件: 条件成立时执行的操作1 条件成立时执行的操作2

1. 先判断循环条件是否成立(是否为 True)2. 如果成立 → 执行循环中的代码3. 执行完循环体 → 再次判断循环条件4. 若仍成立 → 继续执行循环中的代码5. 若不成立 → 循环结束  
n=1while n<10:print(n)    n+=1
# 模拟一个密室逃脱场景# 1用户必须正确的回答问题,才能“逃出密室”# 0# 2若回答错误,系统就会不断循环提问,直到答对为止。若回答正确,控制台打印逃脱成功,并结束循环。answer= (input("老婆,你要不要嫁给我?"))while answer!='嫁':print("回答错误")    answer = (input("老婆,你要不要嫁给我?"))print("回答正确")

for循环:

for 临时变量 in 可迭代对象:    要执行的操作1    要执行的操作2

案例:文字加密解密

text=input("请输入要加密的文字")secret=""for t in text:    secret+=chr(ord(t)+1)print(secret)text=input("请输入要解密的文字")secret=""for t in text:    secret+=chr(ord(t)-1)print(secret)

对比while与for

1.while是条件驱动循环:适合处理不确定循环次数的场景,需要手动维护,不然会死循环

场景:输入密码

2.for是迭代驱动循环

场景:适合遍历数组,字符串

嵌套循环

案例:

# 第1天# 这是第1组仰卧起坐这是第2组仰卧起坐这是第3组仰卧起坐第1天任务已完成!明天继续!# 睡第2天这是第1组仰卧起坐这是第2组仰卧起坐这是第3组仰卧起坐第2天任务已完成!明天继续!# 睡第30天# 这是第1组仰卧起坐这是第2组仰卧起坐这是第3组仰卧起坐第30天任务已完成!明天继续!day = 0while day < 30:    day += 1print('第', day, '天')    n=0for n in range(1,4):print('第',n,'组的仰卧起坐任务已完成,明天继续!')print("为其30天的任务已完成")

九九乘法表:

left=1right=1for left in range(1,10):for right in range(1,left+1):print(f'{right}*{left}={left*right}',end='\t')print()

continue与break

continue和break都可用于循环语句中(while循环、for循环都可以)它们的作用分别是:

● continue:跳过本次循环剩余语句,直接进入下一次循环判断。

● break:立即终止循环,不再执行后续循环。

答题闯关挑战赛

一共3个关卡(每个关卡只有一道题),答对进入下一关,3关都通过则挑战成功!

答错可重试,每道题都有3次回答机会,若3次均答错,则挑战失败,游戏自动结束。

如果用户输入为空,则提示重新作答,且不浪费回答机会。

如果用户输入字母q,则直接退出游戏。****

for day in range(1,5):print(f'{day}的任务')print("吃饭")if day == 2:continueprint('睡觉')for day in range(1,5):print(f'{day}的任务')print("吃饭")if day == 2:breakprint('睡觉')for day in range(1, 5):print(f'********第{day}天********')print('吃饭')for item in range(1,3):print(f'面包{item}')if day == 4 and item == 2:breakprint(f'牛奶{item}')print('睡觉')
question_1 = "你爱我吗?"answer_1 = "我爱你"question_2 = "你要嫁给我吗?"answer_2 = "嫁"question_3 = "我们会一辈子不分离吗?"answer_3 = "会"n = 1while n < 4:if (n == 1):        qustion = question_1if (n == 2):        qustion = question_2if (n == 3):        qustion = question_3    answer = input(f"第{n}关问题{qustion}请输入答案")    m = 1while m < 4:if (n == 1 and answer == answer_1):print("回答正确")breakelif (n == 2 and answer == answer_2 and answer != ''):print("回答正确")breakelif (n == 3 and answer == answer_3 and answer != ''):print("回答正确")breakelif (answer == ''):print("请重新作答")            m = 1            answer = input(f"第{n}关请输入答案")elif (answer == 'q'):breakelse:print("回答错误")            m += 1if (m > 3):breakelse:                answer = input(f"第{n}关第{m}次请输入答案")if (m > 3):print("3次都没输对,游戏结束")breakif (answer == 'q'):print("游戏结束")breakelif (answer == ''):print("请重新作答")else:        n += 1

本章节内容到这里就结束了,其实案例有不同的解法,大家可以自行去写,只要结果是对的就行

接下来是一些练习,全部做会了就代表你通关了~

根据用户输入的数字,判断该数字是奇数还是偶数。

num = int(input("请输入数字"))if num % 2 == 0:print(f"{num}是偶数")else:print(f"{num}是奇数")

根据用户输入的数字,判断该数字是正数还是负数(不考虑0)

num = int(input("请输入数字"))if num > 0:print(f"{num}是正数")elif num<0:print(f"{num}是负数")

根据用户输入的考试分数,判断该分数是否及格了(大于等于60就是及格了)。

num = int(input("请输入分数"))if num >=60 :print(f"{num}及格")else :print(f"{num}不及格")

根据输入的考试成绩,判断成绩等级。

  1. 大于等于85分为优秀

  2. 60-85分为及格

  3. 否则就是不及格

num = int(input("请输入分数"))if num >=85 :print(f"{num}优秀")elif num>=60 and num<=85:print(f"{num}及格")else:print(f"{num}不及格")

购物折扣计算:根据输入的购物车的商品总额,以及如下的折扣规则,计算实际应付的金额。

  1. 金额 >= 500: 8折
  2. 300 <= 金额 < 500: 9折
  3. 100 <= 金额 < 300: 95折
  4. 金额 < 100: 无折扣
count=int(input("请输入商品总额"))if count>=500:print(f"金额{count*0.08}")elif count>=300 and count<500:print(f"金额{count*0.09}")elif count >= 100 and count < 300:print(f"金额{ count * 0.95}")else:print(f"金额{count}")

北京市居民年度用电电费计算:根据输入的用电度数,计算电费 北京市居民电费采用阶梯电价计价方式,所谓阶梯电价是指按照用户消费的电量分段定价,用电价格随用电量增加呈阶梯状逐级递增的一种电价定价机制。

  • 阶梯电价规则:
    1. 第一档:2880度以下,电费单价0.4883元/度
    2. 第二档:2880-4800度,电费单价0.5383元/度
    3. 第三档:4800度以上,电费单价0.7883元/度
count=int(input("请输入用电额度"))if count<=2880:print(f"电费{count*0.4883}")elif count>2880 and count<=4800:print(f"金额{count*0.4883+(count-2880)*0.5383}")elif count > 4800 :print(f"金额{ (count-4800) * 0.7883+(4800-2880)*0.5383+2880*0.4384}")

请你编写一个游戏角色移动控制系统,根据玩家输入的不同指令,控制游戏角色执行相应的动作(输出控制台)。 具体规则:

  • 上 / w /W             角色向上移动
  • 下 / s / S              角色向下移动
  • 左 / a / A             角色向左移动
  • 右 / d / D             角色向右移动
  • 跳 / " "(空格)        角色跳跃
  • 攻击 / j / J            角色发动攻击
  • 退出 / esc / ESC    角色退出游戏
str = input("请输入不同的指令")match str:case"w" | "W" | "上":print("角色向上移动")case"s" | "S" | "下":print("角色向下移动")case"a" | "A" | "左":print("角色向左移动")case"d" | "D" | "右":print("角色向右移动")case" " | "跳":print("角色跳跃")case"j" | "J" | "攻击":print("角色攻击")case"esc" | "ESC" | "退出":print("角色退出游戏")case _:print("非法操作, 不支持!!!")

循环练习: 需求1:根据输入的直角边的边长,打印等腰直角三角形 (如下为直角边为5的等腰直角三角形) *




n = 1for n in range(1, 6):for m in range(1,n+1):print("*", end='\t')print()

需求2:根据数字7,打印对应的数字金字塔 1 1   2 1   2   3 1   2   3   4 1   2   3   4   5 1   2   3   4   5   6 1   2   3   4   5   6   7

n = 1for n in range(1, 8):for m in range(1,n+1):print(m, end='\t')print()
# 需求3:打印国际象棋棋盘# ■   □   ■   □   ■   □   ■   □# □   ■   □   ■   □   ■   □   ■# ■   □   ■   □   ■   □   ■   □# □   ■   □   ■   □   ■   □   ■# ■   □   ■   □   ■   □   ■   □# □   ■   □   ■   □   ■   □   ■# ■   □   ■   □   ■   □   ■   □# □   ■   □   ■   □   ■   □   ■n=1m=1for n in range(8):for m in range(8):if (m+n)%2 == 0:print("■",end="  ")else:print("□",end=" ")print()

需求:用户名密码登录,正确的用户名和密码为admin/666888 、zhangsan/123456、taoge/888666, 5次登录机会,输入错误五次,不允许再操作了。

for i in range(5):   username = input("请输入用户名")   password = input("请输入密码")   flag = (username == 'admin' and password == '666888' or (username == 'zhangsan' and password == '123456') or (  username == 'taoge' and password == '888666'))print(flag)if (flag == True):print("登录成功")breakelif(flag == False):print("错误,重新输入")elif(flag == False and i > 5):print("不允许操作")   i += 1

需求1:将1-1000之间(含1000)所有的5的倍数的数字累加起来。

i=0;for n in range(1,1001):if(n%5 == 0):       i+=nprint(i)

需求2:统计字符串 "akiwksjakdiklowiqaamnvbamvaxnsjdsjkaaxkjd" 字符串中有多少个a和k。

totala=0totalk=0for i in"akiwksjakdiklowiqaamnvbamvaxnsjdsjkaaxkjd":if(i == 'a'):       totala+=1if(i=='k'):       totalk+=1print(totala)print(totalk)
只要上面的练习都自己做出来了,这节课就学会了,下期再见~
接下来会更新四个商城项目,接入AI和支付,商城写到了订单,各位稍安勿躁,再等等
需要了解服务器和域名的购买以及返佣政策的可以找我,我有朋友做这方面对这些比较了解。
需要源码联系
需要源码可以加群,第一个是微信群,第二个是QQ群
微信群
QQ群

最新文章

随机文章