Python基础--Day04--流程控制语句
流程控制语句是计算机编程中用于控制程序执行流程的语句。它们允许根据条件来控制代码的执行顺序和逻辑,从而使程序能够根据不同的情况做出不同的决策。流程控制实现了更复杂和灵活的编程逻辑。
-
顺序语句
顺序语句是按照编写的顺序依次执行程序中的代码。代码会按照从上到下的顺序有且仅执行一次。
-
分支语句
根据条件的真假来选择性地执行不同的代码块。这使得程序能够根据不同的情况做出不同的响应。
-
循环语句
允许重复执行一段代码,以便处理大量的数据或重复的任务。循环语句可以用于多次执行相同或类似的代码块,从而实现重复操作的需求。
流程控制是编程中的基本概念之一,对于编写高效、可靠的程序至关重要。
一、 分支语句
1.1、双分支语句
双分支语句是一种编程结构,用于根据条件的真假选择不同的执行路径。它基于条件的结果,决定程序执行的部分。在许多编程语言中,双分支语句通常使用 if-else 语句来实现。
if 条件表达式:# 条件表达式为True执行的语句块# pass 语句可以占位 else:# 条件表达式为False执行的语句块
其中,条件是一个表达式或逻辑判断,它的结果可以是 True(真)或 False(假)。
当条件为真时,执行代码块A,也称为 if 代码块;当条件为假时,执行代码块B,也称为 else 代码块。
双分支语句允许根据不同的条件结果执行不同的代码逻辑,从而实现程序的分支选择和条件判断。它是一种基本的控制流程结构,常用于处理二选一的情况。
# 案例1:获取用户年龄 age = int(input("请输入您的年龄:"))# 判断是否进入成年模式 if age >= 18:print("进入成年模式!")print("欧美区")print("日韩区")print("国产区") else:print("进入青少年模式!")print("科幻冒险类")print("益智早教类")print("科普记录类") print("程序结束")# 案例2:根据用户输入的成绩判断其等级。如果成绩大于等于60分,则输出"及格",否则输出"不及格"。 score = float(input("请输入成绩:"))if score >= 60:print("及格") else:print("不及格")# 案例3: 编写一个程序,判断一个年份是否为闰年。如果是闰年,则输出"是闰年",否则输出"不是闰年"。闰年的判断条件是能够被4整除但不能被100整除,或者能够被400整除。 year = int(input("请输入年份:"))# print(year % 400 == 0 or (year % 4 == 0 and year % 100 != 0)) is_run = year % 400 == 0 or (year % 4 == 0 and year % 100 != 0)if is_run:print("是闰年") else:print(f"{year}不是闰年")# 案例4:编写一个程序,根据用户输入的三个数字,判断这三个数字是否能够构成一个等边三角形。如果能够构成等边三角形,则输出"能构成等边三角形",否则输出"不能构成等边三角形"。等边三角形的判断条件是三条边的长度相等。 num01 = int(input("请输入一个数字:")) num02 = int(input("请输入一个数字:")) num03 = int(input("请输入一个数字:"))# if num01 == num02 and num01 == num03 if num01 == num02 == num03:print("能构成等边三角形") else:print("不能构成等边三角形")# 案例5: 用户输入一个年龄,判断是否符合20-35 age = int(input("请输入一个年龄:")) # if age > 20 and age < 35: if 20 < age < 35:print("符合招聘要求") else:print("不符合招聘要求")# 案例6: 输入一个数字,判断是否为偶数 num = int(input("请输入一个数字:"))if num % 2 == 0:print("是偶数") else:print("是奇数")
重点:冒号+缩紧:标识语句块
和其它程序设计语言(如 Java、C 语言)采用大括号“{}”分隔代码块不同,Python 采用代码缩进和冒号( : )来区分代码块之间的层次。
在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。
注意,Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。
1.2、单分支语句
单分支语句只包含一个条件判断和一个对应的代码块。如果条件为真,执行代码块中的语句;如果条件为假,则直接跳过代码块。
# 示例:获取两个值中的较小值# 版本1:双分支版本 # 获取两个输入值 num01 = int(input("num01:")) num02 = int(input("num02:"))if num02 < num01:print("较小值:", num02) else:print("较小值:", num01)# 版本2:单分支版本 # 获取两个输入值 num01 = int(input("num01:")) num02 = int(input("num02:"))# 如果num1比较小,直接打印输出;如果num02比较小,那就交换值,把较小的给num01输出打印 if num02 < num01:num01, num02 = num02, num01print("较小值:", num01)
1.3、多分支语句
多分支语句(if-elif-else语句)可用于在多个条件之间进行选择。
if condition1:# 当条件1为真时执行的代码块 elif condition2:# 当条件2为真时执行的代码块 elif condition3:# 当条件3为真时执行的代码块 ... else:# 当所有条件都为假时执行的代码块""" 多分支语句语法if 表达式1:语句块1 elif 表达式2:语句块2 elif 表达式3:语句块3 elif 表达式4:语句块4 elif 表达式5:语句块5 else:语句块6 备注: 以上是一条语句,多个判断选其一1、上面的表达式1-5,只要有一个表达式成立,那么后面的语句都不在执行例如:表达式1成立的同时表达式3也成立,那么只执行语句块1不会执行语句块32、如果上面的表达式1-5都不成立,那么就执行else语句块 """
案例1:成绩等级
# 案例1:根据用户输入的成绩判断其等级。 # 如果成绩[90,100],则输出"优秀" # 如果成绩[80,90],则输出"良好" # 如果成绩[60,80],则输出"及格" # 如果成绩小于60,则输出"不及格" # 如果成绩小于0或大于100,则输出"成绩有误"# 版本1 # score = float(input("请输入成绩:")) # # if 90 <= score <= 100: # print("成绩优秀!") # elif 80 <= score < 90: # print("成绩良好!") # elif 60 <= score < 80: # print("成绩及格!") # elif 0 <= score < 60: # print("成绩不及格!") # else: # print("非法输入!")# 版本2: score = float(input("请输入成绩:"))if score > 100 or score < 0:print("非法输入!") elif score >= 90:print("成绩优秀!") elif score > 80:print("成绩良好!") elif score >= 60:print("成绩及格!") elif score > 0:print("成绩不及格!")
案例2:BMI测试
# 示例:计算BMI并给出健康建议# 获取用户输入的身高和体重 height = float(input("请输入您的身高(单位:米):")) weight = float(input("请输入您的体重(单位:千克):"))# 计算BMI height ** 3 height的3次方 bmi = weight / (height ** 2) # height ** 2 表示:height *height 就是2次方,# 根据BMI给出健康建议 if bmi < 18.5:advice = f"您的BMI为 {bmi:.3},体重过轻,建议增加营养摄入。" # bmi:.3 .3就是保留3位小数 elif 18.5 <= bmi < 24:advice = f"您的BMI为 {bmi:.3},体重正常,继续保持健康的生活方式。" elif 24 <= bmi < 28:advice = f"您的BMI为 {bmi:.3},体重过重,建议适当控制饮食并增加运动。" else:advice = f"您的BMI为 {bmi:.3},体重肥胖,建议减少高热量食物摄入并增加运动量。"# 输出健康建议 print(advice)
案例3:游戏场景选择
import random""" # 场景: # (1)怪物房: 遇到了史莱姆,并打败了它,金币加5,经验加10! # (2) 宝箱房: 你打开了宝箱,获得了钥匙 # (3) 陷阱房: 你触发了陷阱,受到了毒箭的伤害,血值减10 # (4) 商店: 你来到了商店,购买了药水,金币减5,血值加20扩展:随意从,列表中选择一个room = random.choice(["怪物房", "宝箱房", "陷阱房", "商店"])print("房间:", room) """coin = 100 # 金币 exp = 100 # 经验 blood = 100 # 血值 chest = [] # 宝箱room = input("请输入房间名:")# 下面的所有if或elif都是一条语句,多选一,必须执行一个,执行任意一个其他都不会执行了所以就是一条语句 if room == "怪物房":print("遇到了史莱姆,并打败了它")coin += 5exp += 10 elif room == "宝箱房":print("你打开了宝箱,获得了钥匙")chest.append("钥匙")print("当前宝贝:", chest) elif room == "陷阱房":print("你触发了陷阱,受到了毒箭的伤害")blood -= 10 elif room == "商店":print("你来到了商店,购买了药水")coin -= 5blood += 20print(f""" 玩家信息:金币:{coin}经验值:{exp}血值: {blood} """)print("游戏结束")
1.4、分支嵌套
分支嵌套是指在一个分支语句内部嵌套另一个分支语句。
案例1:
age = int(input("年龄:"))if age > 18:print("大人电影!")choice = input("""1. 日韩区2. 欧美区3. 国产区 """)if choice == "1":print("《熔炉》")print("《千与千寻》")print("《龙猫》")print("《天空之城》")elif choice == "2":print("《肖申克的救赎》")print("《当幸福来敲门》")print("《阿甘正传》")print("《星际穿越》")elif choice == "3":print("《霸王别姬》")print("《大话西游》")print("《让子弹飞》")print("《无间道》")else:print("输入有误!")print("观看大人电影结束!")else:print("少儿电影")print("科幻冒险类")print("益智早教类")print("科普记录类")print("程序结束")
案例2:
"""勇士与地下城的场景续写: (1)怪物房: 遇到了史莱姆1. 选择攻击,战胜史莱姆,则经验加20,金币加20,失败则经验减20,金币减20,血值减20,成功的概率为50%。2. 选择逃跑,则金币减20(2) 宝箱房: 你打开了宝箱,获得了钥匙(3) 陷阱房: 你触发了陷阱,受到了毒箭的伤害,血值减10(4) 商店: 你来到了商店,打印当前血值和金币,一个金币买一个药水对应10个血值,引导是否购买药水1. 购买,引导购买几个金币的药水,并完成减金币和增血值2. 不购买,打印退出商店""" import randomcoin = 100 exp = 100 blood = 100 chest = []room = input("请输入房间名:")if room == "怪物房":print("遇到了史莱姆")choice = input("【1.攻击/2.逃跑】")if choice == "1":# 选择攻击print("选择干史莱姆!")is_success = random.choice([100, 200]) # 100:成功 200:失败if is_success == 100:print("战胜史莱姆!")coin += 20exp += 20else:print("没打过史莱姆!")coin -= 20exp -= 20blood -= 20elif choice == "2":# 逃跑的逻辑print("逃跑ing")coin -= 20else:print("无效输入!")print("离开怪物房") elif room == "宝箱房":print("你打开了宝箱,获得了钥匙")chest.append("钥匙")print("当前宝贝:", chest) elif room == "陷阱房":print("你触发了陷阱,受到了毒箭的伤害")blood -= 10 elif room == "商店":print(f"玩家的金币:{coin},血值:{blood}")print("一个金币买一个药水对应10个血值")is_buy = input("是否购买药水【Y/N】")if is_buy == "Y":num = int(input("购买几瓶药水?"))coin -= 1 * numblood += 10 * numprint(f"当前玩家的金币:{coin},血值:{blood}")elif is_buy == "N":print("退出商店!")else:print("无效输入!")print(f""" 玩家信息:金币:{coin}经验值:{exp}血值: {blood} """)print("游戏结束")
二、循环语句
预备知识:
PyCharm提供了丰富的功能来帮助开发者编写、调试和运行 Python 代码。其中,PyCharm 的 Debug 模式是一种强大的调试工具,可以帮助开发者在代码执行过程中逐行跟踪和分析程序的行为。以下是关于 PyCharm Debug 模式的介绍:
设置断点:在需要调试的代码行上设置断点,断点是程序的一个暂停点,当程序执行到断点时会暂停执行,允许开发者逐行检查代码。
启动 Debug 模式:在 PyCharm 中,可以通过点击工具栏上的 "Debug" 按钮来启动 Debug 模式,或者使用快捷键(通常是 F9)。
逐行执行:在 Debug 模式下,可以使用调试工具栏上的按钮(如「Step Over」、「Step Into」和「Step Out」)逐行执行代码。Step Over 会执行当前行并跳转到下一行,Step Into 会进入函数调用并逐行执行函数内部代码,Step Out 会执行完当前函数并跳出到调用该函数的位置。
变量监视:在 Debug 模式下,可以查看变量的值和状态。在调试工具栏的「Variables」窗口中,可以看到当前作在 PyCharm 中,Debug 模式是一种强大的调试工具,可以帮助开发者在代码执行过程中逐行跟踪和分析程序的行为。
循环语句
循环语句是编程中的一种控制结构,用于重复执行特定的代码块,直到满足特定的条件为止。它允许程序根据需要多次执行相同或类似的操作,从而简化重复的任务。
2.1、while循环
while循环用于在条件为真的情况下重复执行一段代码,直到条件变为假为止。以下是while循环的语法:
while条件:循环体
在执行while循环时,程序会先检查条件是否为真。如果条件为真,就执行循环体中的代码,然后再次检查条件。如果条件仍为真,就再次执行循环体中的代码,以此类推,直到条件变为假为止。
# (1) 无限循环 while True:print("hello world")# (2) 有限循环(三要素循环) # 有限循环方式1 # 案例1: 打印10次hello world count = 0 # 1、初始变量 while count < 10: # 2、判断表达式print("hello world")count += 1 # 3、步进语句 count = count+1#有限循环方式2 count = 100 # 初始语句 while count > 0: # 判断条件print("count:::", count)count -= 1 # 步进语句
2.2、循环案例
案例1:计算1-100的和
""" # 准备: # 假设有一个变量s的初始值为0,将s增加5次,每次增加值分别为1,2,3,4,5,然后打印s的值。 """ # 计算1-100的和count = 1 s = 0 while count <= 1000:# 逻辑代码块开始s += count# 逻辑代码块结束count += 1print(s)
案例2:验证码案例
string类封装了常用的字符串如下:
# 假设有一个变量s的初始值为"",将s拼接5次,每次增加值分别为"A","B","C",然后打印s的值。 s = "" s += "A" s += "B" s += "C" print(s)# 假设有一个变量s的初始值为"",将s拼接5次,每次增加值分别为"A","B","C",然后打印s的值。 import random import string# # print(string.digits+string.ascii_lowercase+string.ascii_uppercase) # print(string.digits+string.ascii_letters)# 随机生成10个字符的字符串 count = 0 s = "" while count < 10:# 逻辑代码块开始char = random.choice(string.digits + string.ascii_letters)# print(char)s += char# 逻辑代码块结束count += 1print("s:::", s) # s::: oJ9iGMiqPF
2.3、for循环
for循环用于对一个容器对象(如字符串、列表、元组等)中的元素进行遍历和操作,直到所有元素都被遍历为止。以下是for循环的语法:
for 变量 in 容器对象(字符串,列表,字典等):循环体for i in "hello world":# print("yuan")print(i)
在执行for循环时,程序会依次将序列中的每个元素赋值给变量,并执行循环体中的代码,直到序列中的所有元素都被遍历完为止。
在 Python 中,range()
函数用于生成一个整数序列,它常用于循环和迭代操作。
range(stop) range(start, stop, step)
参数解释:
-
start
(可选):序列的起始值,默认为 0。 -
stop
:序列的结束值(不包含在序列中)。 -
step
(可选):序列中相邻两个值之间的步长,默认为 1。
for i in range(10): # 循环10次print("yuan")# 基于for循环实现1+100的和的计算 s = 0 for i in range(1, 101): # 循环次数s += i print(s) # 5050
2.4、嵌套语句
案例1:打印出从 0 到 99 中能被 13 整除的所有数字。
for i in range(100):if i % 13 == 0:print(i)
案例2:打印出从 1 到 100 的所有整数,但将整除 3 的数字打印为 "Fizz",整除 5 的数字打印为 "Buzz",同时整除 3 和 5 的数字打印为 "FizzBuzz"。
# 案例3: # 打印出从 1 到 100 的所有整数, # 将整除 3 的数字打印为 "Fizz", # 整除 5 的数字打印为 "Buzz", # 同时整除 3 和 5 的数字打印为 "FizzBuzz"。 for i in range(1, 101):if i % 3 == 0 and i % 5 == 0:print(f"{i}:FizzBuzz")elif i % 3 == 0:print(f"{i}:Fizz")elif i % 5 == 0:print(f"{i}:Buzz")else:print(f"{i}:各种情况都不符合!")print(f"完成数字{i}判断!")
案例3:循环嵌套分支
# (1) 无限循环嵌套 import randomcoin = 100 exp = 100 blood = 100 chest = []while True:room = input("请输入房间名:")if room == "怪物房":print("遇到了史莱姆")choice = input("【1.攻击/2.逃跑】")if choice == "1":# 选择攻击print("选择干史莱姆!")is_success = random.choice([100, 200]) # 100:成功 200:失败if is_success == 100:print("战胜史莱姆!")coin += 20exp += 20else:print("没打过史莱姆!")coin -= 20exp -= 20blood -= 20elif choice == "2":# 逃跑的逻辑print("逃跑ing")coin -= 20else:print("无效输入!")print("离开怪物房")elif room == "宝箱房":print("你打开了宝箱,获得了钥匙")chest.append("钥匙")print("当前宝贝:", chest)elif room == "陷阱房":print("你触发了陷阱,受到了毒箭的伤害")blood -= 10elif room == "商店":print(f"玩家的金币:{coin},血值:{blood}")print("一个金币买一个药水对应10个血值")is_buy = input("是否购买药水【Y/N】")if is_buy == "Y":num = int(input("购买几瓶药水?"))coin -= 1 * numblood += 10 * numprint(f"当前玩家的金币:{coin},血值:{blood}")elif is_buy == "N":print("退出商店!")else:print("无效输入!")print(f"""玩家信息:金币:{coin}经验值:{exp}血值: {blood}""")print("游戏结束")####################################################################################import randomcoin = 100 exp = 100 blood = 100 chest = []for i in range(3):room = input("请输入房间名:")if room == "怪物房":print("遇到了史莱姆")choice = input("【1.攻击/2.逃跑】")if choice == "1":# 选择攻击print("选择干史莱姆!")is_success = random.choice([100, 200]) # 100:成功 200:失败if is_success == 100:print("战胜史莱姆!")coin += 20exp += 20else:print("没打过史莱姆!")coin -= 20exp -= 20blood -= 20elif choice == "2":# 逃跑的逻辑print("逃跑ing")coin -= 20else:print("无效输入!")print("离开怪物房")elif room == "宝箱房":print("你打开了宝箱,获得了钥匙")chest.append("钥匙")print("当前宝贝:", chest)elif room == "陷阱房":print("你触发了陷阱,受到了毒箭的伤害")blood -= 10elif room == "商店":print(f"玩家的金币:{coin},血值:{blood}")print("一个金币买一个药水对应10个血值")is_buy = input("是否购买药水【Y/N】")if is_buy == "Y":num = int(input("购买几瓶药水?"))coin -= 1 * numblood += 10 * numprint(f"当前玩家的金币:{coin},血值:{blood}")elif is_buy == "N":print("退出商店!")else:print("无效输入!")print(f"""玩家信息:金币:{coin}经验值:{exp}血值: {blood}""")print("游戏结束")
案例4:打印扑克牌
# 案例1: poke_types = ['♥️', '♦️', '♠️', '♣️'] poke_nums = [2, 3, 4, 5, 6, 7, 8, 9, 10, 'J', 'Q', 'K', 'A']for pn in poke_nums:# print(pn)# print(poke_types)for pt in poke_types:print(f"{pt}{pn}")
2.5、退出循环
while是条件循环,条件为False时退出循环,for循环是遍历循环,遍历完成则退出,这都属于正常退出循环,如果想非正常退出循环,分为强制退出当次循环和退出整个循环,分别使用关键字continue
和break
来实现
-
break
退出整个循环
# (1) 退出while循环 while True:userInput = input("请输入一个数字(输入q退出):")# 选择退出机制if userInput.upper() == "Q":breaknumber = int(userInput)square = number ** 2print(f"{number} 的平方是 {square}")print("程序结束")# (2) 退出 for循环 # 查找1-100中第一个能整除13的非零偶数 for i in range(10):userInput = input("请输入一个数字(输入q退出):")# 选择退出机制if userInput.upper() == "Q":breaknumber = int(userInput)square = number ** 2print(f"{number} 的平方是 {square}")print("程序结束")# 如果是循环嵌套,break强制退出所在的那层循环,不是退出多层循环
-
continue
退出当次循环
# 打印1-100中能整除13的数 for i in range(100):if i % 13 != 0:continueprint("1-获取i值:", i)for i in range(100):if i % 13 == 0:print("2-获取i值:", i) """1-获取i值: 01-获取i值: 131-获取i值: 261-获取i值: 391-获取i值: 521-获取i值: 651-获取i值: 781-获取i值: 912-获取i值: 02-获取i值: 132-获取i值: 262-获取i值: 392-获取i值: 522-获取i值: 652-获取i值: 782-获取i值: 91 """
三、 今日作业
-
编写一个程序,判断一个字符是否为元音字母(a、e、i、o、u,包括小写和大写)。如果是元音字母,则输出"是元音字母",否则输出"不是元音字母"。
-
统计元音字母:编写一个程序,接受用户输入的一段文本,统计其中元音字母(a、e、i、o、u)的个数,并输出结果。
-
计算1-2+3-4+......-1000最终的结果,能整除13的数不参与计算
-
身份证号码的倒数第二位数字是奇数,表示性别为男性,否则为女性,引导用户输入身份证号,先判断是否为18位,再判断性别。
-
计算初始本金为1万,年利率为0.0325的情况下,需要多少年才能将本金和利息翻倍,即本金和利息的总和达到原来的两倍。
-
编写一个程序,生成斐波那契数列的第20个数字(斐波那契数列是指从0和1开始,后面的每一项都是前两项的和)
0 1 1 2 3 5 8 ....
-
编写一个程序,接受用户输入的一个整数,判断该数是否是素数(只能被1和自身整除的数)。注意,素数的定义是大于1的自然数,只能被1和自身整除,没有其他的正因数。
-
猜数字游戏
1.首先,程序使用random.randint函数产生一个1~10之间的随机数。 2.然后,程序通过for循环提示玩家输入一个猜测的数字,玩家可以输入一个1~10之间的整数。 3.如果玩家猜对了数字,程序输出恭喜玩家的信息并结束游戏;如果玩家猜错了,程序会根据玩家输入的数字与随机数之间的大小关系来提示玩家是否猜对,并在每次猜错后告诉玩家还剩下几次机会。 4.如果玩家在三次机会内猜对了数字,程序输出恭喜玩家的信息并结束游戏;否则程序输出很遗憾的信息并结束游戏。
-
分支嵌套
在选座购票中扩写,引导用户输入【普通票/学生票/老年票】,然后分支判断。
print("欢迎来到电影订票系统!") print("请选择您要进行的操作:") print("1. 查询电影场次") print("2. 选座购票") print("3. 查看订单信息") choice = int(input("请输入您的选择(1-3):")) if choice == 1:print("正在查询电影场次...")# 执行查询电影场次的代码 elif choice == 2:print("正在选座购票...") elif choice == 3:print("正在查看订单信息...")# 执行查看订单信息的代码 else:print("无效的选择!请重新运行程序并输入有效的选项。")
-
打印一个nxn的矩阵,每个元素的值等于其所在行数和列数之和。
// 比如4*4矩阵 2 3 4 5 3 4 5 6 4 5 6 7 5 6 7 8
-
打印一个如下的九九乘法表
""" 1. 编写一个程序,判断一个字符是否为元音字母(a、e、i、o、u,包括小写和大写)。如果是元音字母, 则输出"是元音字母",否则输出"不是元音字母"。 """ char = input("请输入一个字母") if char.lower() in "aeiou":print("是元音字母") else:print("不是元音字母")""" 2. 统计元音字母:编写一个程序,接受用户输入的一段文本,统计其中元音字母(a、e、i、o、u)的个数,并输出结果。 """ data = input("请输入一段文本:") count = 0 for char in data:if char.lower() in "aeiou":count += 1 print("元音字母出现次数:", count)""" 3. 计算1-2+3-4+......-1000最终的结果,能整除13的数不参与计算 """ ret = 0 for i in range(1001):# 如果能整除13就不参与计算if i % 13 == 0:continueif i % 2 == 0:ret -= i # ret = ret - ielse:ret += i # ret = ret + iprint(ret)""" 4. 身份证号码的倒数第二位数字是奇数,表示性别为男性,否则为女性,引导用户输入身份证号,先判断是否为18位,再判断性别。 """ uid = input("请输入您的身份证号码:") if len(uid) == 18:gender_val = int(uid[-2])if gender_val % 2 == 0:print("女性")else:print("男性")""" 5. 计算初始本金为1万,年利率为0.0325的情况下,需要多少年才能将本金和利息翻倍,即本金和利息的总和达到原来的两倍。 base = 10000 rate = 0.0325 total = base # 回收的钱 存一年后:total = 10000+ 10000*0.0325 # 10325 存两年后:total = 10325+ 10325*0.0325 # 10660 存三年后:total = 10660+ 10660*0.0325 # 存n年后: total = total+ total * rate """ base = 10000 rate = 0.0325 total = baseyear = 0 while total < 2 * base:total = total + total * rateprint(total)year += 1 print(year)""" (6) 编写一个程序,生成斐波那契数列的第20个数字(斐波那契数列是指从0和1开始,后面的每一项都是前两项的和) """ pre = 0 current = 1 for _ in range(18): # _ 因为i就没用到,所以用_代替,因为是第20个数字,所以循环18次,之前包含了pre=0和current=1next_num = pre + currentprint("next:", next_num)pre = currentcurrent = next_num# (7) 编写一个程序,接受用户输入的一个整数,判断该数是否是素数(只能被1和自身整除的数)。注意,素数的定义是大于1的自然数,只能被1和自身整除,没有其他的正因数。 # 方案1 0 和1 不是素数 num = int(input("请输入一个大于1的整数:")) flag = True # 变量标志位 用来判断循环是否是正常退出 for i in range(2, num):if num % i == 0:flag = Falsebreak if flag:print(f"{num}是素数") else:print(f"{num}不是素数")# 扩展----方案2: for-else 必须要有if..break """ for item in sequence:# 迭代操作if condition:# 满足条件时执行的操作break else:# 在循环结束后执行的操作 """ num = int(input("请输入一个大于1的整数:"))for i in range(2, num):if num % i == 0:print(f"{num}不是素数")break else:print(f"{num}是素数")# break退出,走了if判断的执行操作,走了break 就不会在执行else 如果没走if..break 就会走else # if判断成功了一套逻辑,if判断没成功,另外一套逻辑# (8) 猜数字游戏 """1.首先,程序使用random.randint函数产生一个1~10之间的随机数。 2.然后,程序通过for循环提示玩家输入一个猜测的数字,玩家可以输入一个1~10之间的整数。 3.如果玩家猜对了数字,程序输出恭喜玩家的信息并结束游戏;如果玩家猜错了,程序会根据玩家输入的数字与随机数之间的大小关系来提示玩家是否猜对,并在每次猜错后告诉玩家还剩下几次机会。 4.如果玩家在三次机会内猜对了数字,程序输出恭喜玩家的信息并结束游戏;否则程序输出很遗憾的信息并结束游戏。""" import random# 案例1: secret_num = random.randint(1, 10)for i in range(3):guess_num = int(input("请输入一个数字,范围【1-10】:"))# 判断if guess_num > secret_num:print("猜大了")elif guess_num < secret_num:print("猜小了")else:print("恭喜您,猜对了,数字正是", guess_num)break else: # 弥补不到三次就猜中的问题 走了break 就不走该else,没走break并且三次机会用完了就会走该elseprint("很遗憾,三次机会已经用完!")# 案例2: secret_num = random.randint(1, 10) max_guesses = 3 for i in range(1, max_guesses + 1):guess_num = int(input("请输入一个数字,范围【1-10】:"))# 判断if guess_num > secret_num:print("猜大了")elif guess_num < secret_num:print("猜小了")else:print("恭喜您,猜对了,数字正是", guess_num)break# 提示remaining_guesses = max_guesses - iif remaining_guesses >0:print(f"您还剩下{remaining_guesses}次机会,请珍惜!")else:print("很遗憾,三次机会已经用完!")break# (9) print("欢迎来到电影订票系统!") print("请选择您要进行的操作:") print("1. 查询电影场次") print("2. 选座购票") print("3. 查看订单信息")choice = int(input("请输入您的选择(1-3):"))if choice == 1:print("正在查询电影场次...")# 执行查询电影场次的代码 elif choice == 2:print("正在选座购票...")# 普通票/学生票/老年票ticket_type = input("""1. 学生票2. 老年票3. 普通票""")if ticket_type == "1":print("正在购买学生票")elif ticket_type == "2":print("正在购买老年票")elif ticket_type == "3":print("正在购买普通票") elif choice == 3:print("正在查看订单信息...")# 执行查看订单信息的代码 else:print("无效的选择!请重新运行程序并输入有效的选项。")# (10)打印一个nxn的矩阵,每个元素的值等于其所在行数和列数之和。 n = 5 for r in range(1, n + 1):for c in range(1, n + 1):print(f"{r + c}\t", end="")print()# (11)九九乘法表 for r in range(1, 10):for c in range(1, r + 1):print(f"{c}*{r}={r * c}\t", end="")print()