网站建设的方案费用,老板电器分销系统,团购产品 网站建设,关于公司建设网站的意义各位CSDN的uu们你们好呀#xff0c;今天小雅兰的内容是Python中的循环语句呀#xff0c;分为while循环和for循环#xff0c;下面#xff0c;让我们进入循环语句的世界吧 循环语句 while循环 for循环 continue和break
循环语句小结
人生重开模拟器 设置初始属性 设置性别… 各位CSDN的uu们你们好呀今天小雅兰的内容是Python中的循环语句呀分为while循环和for循环下面让我们进入循环语句的世界吧 循环语句 while循环 for循环 continue和break
循环语句小结
人生重开模拟器 设置初始属性 设置性别 设置出生点 针对每一岁, 生成人生经历 循环语句
有些操作是需要反复执行的. 这种就需要使用循环. while 循环 while 条件:循环体条件为真, 则执行循环体代码. 条件为假, 则结束循环. 代码示例: 打印 1-10 的整数 num1
while num10:print(num)numnum1 代码示例 : 计算 1-100 的和 sum 0
num 1
while num 100:sum numnum 1
print(sum) 代码示例 : 计算 5 的阶乘 result 1
n 1
while n 5:result * nn 1
print(result) 代码示例: 求 1! 2! 3! 4! 5! num 1
sum 0
while num 5:factorResult 1i 1while i num:factorResult * ii 1sum factorResultnum 1
print(sum) 这个程序用到了两重循环,也就是在循环语句中也可以套循环. for 循环 基本语法格式 for 循环变量 in 可迭代对象:循环体 注意: python 的 for 和其他语言不同, 没有 初始化语句, 循环条件判定语句, 循环变量更新语句, 而是更加简单 所谓的 可迭代对象, 指的是 内部包含多个元素, 能一个一个把元素取出来的特殊变量代码示例: 打印 1-10 for i in range(1, 11):print(i)使用 range 函数, 能够生成一个可迭代对象. 生成的范围是 [1, 11), 也就是 [1, 10] 代码示例: 打印 2, 4, 6, 8, 10 for i in range(2, 12, 2):print(i) 通过 range 的第三个参数, 可以指定迭代时候的 步长. 也就是一次让循环变量加几. 代码示例: 打印 10-1 for i in range(10, 0, -1):print(i) range 的步长也可以设定成负数. 代码示例: 求 1 - 100 的和 theSum 0
for i in range(1, 101):theSum i
print(theSum)continue和break continue 表示结束这次循环, 进入下次循环. break 表示结束整个循环代码示例: 模拟吃包子. 吃第 3 个包子的时候吃出了一只虫. for i in range(1, 6):if i 3:continueprint(f吃完第 {i} 个包子) 代码示例: 模拟吃包子. 吃第 3 个包子的时候吃出了半只虫. for i in range(1, 6):if i 3:breakprint(f吃完第 {i} 个包子) 代码示例: 输入若干个数字, 求平均值. 使用 分号 作为结尾. sum 0
#加和的结果
count 0
#表示有几个数字
while True:num input(请输入数字:)if num ;:#约定当用户输入 ; 的时候表示输入结束breaknum float(num)sum numcount 1
print(sum / count)循环语句小结 人生重开模拟器 这是一款之前很火的文字类小游戏. 玩家输入角色的初始属性之后, 就可以开启不同的人生经历. 下面我们来实现一个简化版本的“人生重开模拟器”
设置初始属性 在游戏中我们设定四个属性. 颜值 (face)体质 (strong)智力 (iq)家境 (home)我们约定每个属性的范围为 [1, 10], 并且总和不能超过 20. 如果玩家输入的初始属性不合理, 就提示输入有误, 重新输入. 欢迎界面 print(---------------------------------------------------------------------)
print(| |)
print(| 花有重开日, 人无再少年 |)
print(| |)
print(| 欢迎来到, 人生重开模拟器 |)
print(| |)
print(---------------------------------------------------------------------)设置初始属性 # 设置初始属性
#颜值体质智力家境总和不能超过20每一项取值都是1——10之间
#使用循环在玩家输入错误的时候可以重新输入
while True:print(请设定初始属性(可用总点数 20))face int(input(请输入颜值(1-10):))strong int(input(请输入体质(1-10):))iq int(input(请输入智力(1-10):))home int(input(请输入家境(1-10):))#通过条件语句对于用户输入的属性值做出校验检查#这段逻辑使用elif是否可以呢完全可以效果是相同的#使用elif则是多个分支只能进一个一旦某个条件满足了就不会再走其他的分支了#此处虽然没有使用elif但是有了continue一旦某个条件满足continue就会使循环重头再来#也就没机会继续执行后续的条件判断了if face 1 or face 10:print(颜值设置有误!)continueif strong 1 or strong 10:print(体质设置有误!)continueif iq 1 or iq 10:print(智力设置有误!)continueif home 1 or home 10:print(家境设置有误!)continueif face strong iq home 20:print(总点数超过了 20!)continue#如果当前上述的条件都没有被触发则认为玩家输入的数据是合法的#此时就可以跳出循环结束输入了print(初始属性设定完成!)print(f颜值:{face},体质:{strong},智力:{iq},家境:{home})break 设置性别 设置性别 通过 random.randint(1, 6) 生成一个 [1, 6] 的随机整数, 类似于掷色子. 如果是单数, 则性别设为男孩 如果是双数, 则性别设为女孩.男孩和女孩会遇到不同的事件. #生成角色的性别
#使用random.randint(beg,end),就能生成[beg,end]之间的随机整数
point random.randint(1, 6) # 掷色子
print(fpoint{point})
if point % 2 1:gender boyprint(你是个男孩)
else:gender girlprint(你是个女孩) 设置出生点 设置出生点 首先按照家境(home), 分成四个档位. 10 是第一档. 加成最高[7, 9] 是第二档. 也有一些加成[4, 6] 是第三档. 加成较少[1, 3] 是第四档. 会扣掉属性.再扔一次色子, 生成 [1, 3] 的随机数, 用来表示每一种细分情况. 这里的代码主要就是各种 if else 构成. point random.randint(1, 3) # 掷色子
if home 10:print(你出生在帝都, 你的父母是高官政要)home 1iq 1face 1
elif 7 home 9:if point 1:print(你出生在大城市, 你的父母是公务员)face 2elif point 2:print(你出生在大城市, 你的父母是大企业高管)home 2else:print(你出生在大城市, 你的父母是大学教授)iq 2
elif 4 home 6:if point 1:print(你出生在三线城市, 你的父母是教师)iq 1elif point 2:print(你出生在镇上, 你的父母是医生)strong 1else:print(你出生在镇上, 你的父母是个体户)home 1
else:if 1 point 2:print(你出生在村里, 你的父母是辛苦劳作的农民)strong 1face - 2elif 3 point 4:print(你出生在穷乡僻壤, 你的父母是无业游民)home - 1else:print(你出生在镇上, 你父母感情不和)strong - 1
print(f颜值:{face},体质:{strong},智力:{iq},家境:{home})针对每一岁, 生成人生经历 按照年龄, 把人生经历分成四个阶段: 幼年阶段 [1, 10]青年阶段 [11, 20]壮年阶段 [20, 50]老年阶段 50 岁以上.每个阶段都会有不同的精力和事件发生. 幼年阶段可塑性强, 体质, 颜值, 智力都会有较快变化青年阶段主要是求学, 同时父母一辈会有明显变化, 智力和家境会有明显变化.壮年阶段相对平稳, 属性变化不大, 主要是一些随机事件影响到属性.老年阶段体质, 颜值, 智力都会显著退化, 并且随着年龄的上升, 疾病/死亡的风险逐渐升高.此处我们以幼年为例, 简单实现一下这里的处理逻辑. 使用 for 循环, 按照年龄循环起来.针对每一年, 先掷一次 [1, 3] 的色子, 根据不同的随机数值, 来触发不同的事件.根据性别, 年龄, 各种属性, 来触发不同的事件. 这里都使用 if - else 的方式来组织.不同的事件可能会对属性有正面/负面的影响.在每一年的最后, 打印这一年遇到的事情.如果夭折, 则直接 sys.exit(0) 退出程序.使用 time.sleep(1) 使程序暂停执行 1s, 方便观察程序结果.for age in range(1, 11):#把一整年的打印都整理到一个字符串中在这一年的结尾统一打印info f你今年 {age} 岁,point random.randint(1, 3)#接下来编写各种事件的代码#性别触发事件if gender girl and home 3 and point 1:info 你家里人重男轻女思想非常严重, 你被遗弃了!print(info)print(游戏结束!)sys.exit(0)# 体质触发的事件elif strong 6 and point ! 3:info 你生了一场病, if home 5:info 在父母的精心照料下恢复了健康strong 1home - 1else:info 你的父母没精力管你, 你的身体状况更糟糕了strong - 1#颜值触发的事件elif face 4 and age 7:info 你因为长的太丑, 别的小朋友不喜欢你, if iq 5:info 你决定用学习填充自己iq 1else:if gender boy:info 你和别的小朋友经常打架iq - 1strong 1else:info 你经常被别的小朋友欺负strong - 1#智商触发的事件elif iq 5:info 你看起来傻傻的, if home 8 and age 6:info 你的父母给你送到更好的学校学习elif 4 home 7:if gender boy:info 你的父母鼓励你多运动, 加强身体素质strong 1else:info 你的父母鼓励你多打扮自己face 1else:info 你的父母为此经常吵架if point 1:strong - 1elif point 2:iq - 1#健康成长else:info 你健康成长, if point 1:info 看起来更聪明了iq 1elif point 2:info 看起来更好看了face 1else:info 看起来更结实了strong 1print(info)print(fstrong{strong}, face{face}, iq{iq}, home{home})print(-----------------------------------------------------)time.sleep(1)这个简单的版本的源码
import random
import sys
import time
print(---------------------------------------------------------------------)
print(| |)
print(| 花有重开日, 人无再少年 |)
print(| |)
print(| 欢迎来到, 人生重开模拟器 |)
print(| |)
print(---------------------------------------------------------------------)# 设置初始属性
#颜值体质智力家境总和不能超过20每一项取值都是1——10之间
#使用循环在玩家输入错误的时候可以重新输入
while True:print(请设定初始属性(可用总点数 20))face int(input(请输入颜值(1-10):))strong int(input(请输入体质(1-10):))iq int(input(请输入智力(1-10):))home int(input(请输入家境(1-10):))#通过条件语句对于用户输入的属性值做出校验检查#这段逻辑使用elif是否可以呢完全可以效果是相同的#使用elif则是多个分支只能进一个一旦某个条件满足了就不会再走其他的分支了#此处虽然没有使用elif但是有了continue一旦某个条件满足continue就会使循环重头再来#也就没机会继续执行后续的条件判断了if face 1 or face 10:print(颜值设置有误!)continueif strong 1 or strong 10:print(体质设置有误!)continueif iq 1 or iq 10:print(智力设置有误!)continueif home 1 or home 10:print(家境设置有误!)continueif face strong iq home 20:print(总点数超过了 20!)continue#如果当前上述的条件都没有被触发则认为玩家输入的数据是合法的#此时就可以跳出循环结束输入了print(初始属性设定完成!)print(f颜值:{face},体质:{strong},智力:{iq},家境:{home})break#生成角色的性别
#使用random.randint(beg,end),就能生成[beg,end]之间的随机整数
point random.randint(1, 6) # 掷色子
print(fpoint{point})
if point % 2 1:gender boyprint(你是个男孩)
else:gender girlprint(你是个女孩)point random.randint(1, 3) # 掷色子
if home 10:print(你出生在帝都, 你的父母是高官政要)home 1iq 1face 1
elif 7 home 9:if point 1:print(你出生在大城市, 你的父母是公务员)face 2elif point 2:print(你出生在大城市, 你的父母是大企业高管)home 2else:print(你出生在大城市, 你的父母是大学教授)iq 2
elif 4 home 6:if point 1:print(你出生在三线城市, 你的父母是教师)iq 1elif point 2:print(你出生在镇上, 你的父母是医生)strong 1else:print(你出生在镇上, 你的父母是个体户)home 1
else:if 1 point 2:print(你出生在村里, 你的父母是辛苦劳作的农民)strong 1face - 2elif 3 point 4:print(你出生在穷乡僻壤, 你的父母是无业游民)home - 1else:print(你出生在镇上, 你父母感情不和)strong - 1
print(f颜值:{face},体质:{strong},智力:{iq},家境:{home})for age in range(1, 11):#把一整年的打印都整理到一个字符串中在这一年的结尾统一打印info f你今年 {age} 岁,point random.randint(1, 3)#接下来编写各种事件的代码#性别触发事件if gender girl and home 3 and point 1:info 你家里人重男轻女思想非常严重, 你被遗弃了!print(info)print(游戏结束!)sys.exit(0)# 体质触发的事件elif strong 6 and point ! 3:info 你生了一场病, if home 5:info 在父母的精心照料下恢复了健康strong 1home - 1else:info 你的父母没精力管你, 你的身体状况更糟糕了strong - 1#颜值触发的事件elif face 4 and age 7:info 你因为长的太丑, 别的小朋友不喜欢你, if iq 5:info 你决定用学习填充自己iq 1else:if gender boy:info 你和别的小朋友经常打架iq - 1strong 1else:info 你经常被别的小朋友欺负strong - 1#智商触发的事件elif iq 5:info 你看起来傻傻的, if home 8 and age 6:info 你的父母给你送到更好的学校学习elif 4 home 7:if gender boy:info 你的父母鼓励你多运动, 加强身体素质strong 1else:info 你的父母鼓励你多打扮自己face 1else:info 你的父母为此经常吵架if point 1:strong - 1elif point 2:iq - 1#健康成长else:info 你健康成长, if point 1:info 看起来更聪明了iq 1elif point 2:info 看起来更好看了face 1else:info 看起来更结实了strong 1print(info)print(fstrong{strong}, face{face}, iq{iq}, home{home})print(-----------------------------------------------------)time.sleep(1)好啦小雅兰今天的内容就到这里啦继续加油噢