基础知识补充:(shift +F6)可以针对变量进行重命名,自动的把所有需要修改的名字都统一替换了。
while循环的使用:
基本语法格式:
while 条件:
循环体
如果条件为真,则执行循环体代码,为假则结束循环。
while循环的条件:
1,循环变量的初始值。
2,循环的判定条件。
3,循环变量的更新语句。
(如果忘记循环变量的语句,循环会一直执行,停不下来了,直到手动强制结束程序。称为死循环。)
for循环的使用:
for 循环变量 in 可迭代对象:
循环体
注意:1,python的for和其他语言不同,没有”初始化语句“,“循环变量条件”,循环变量更新语句
2,所谓的“可迭代对象”,指的是“内部包含多个元素”,能一个一个把元素区出来的特殊变量。
这串代码里面range是一个内建函数。
起到的效果就是得到一个“可迭代对象”
这个可迭代对象中就包含了一系列的整数。
range(beg,end)=>(beg,end),(前闭后开区间)
range里面的第一个参数是起始值,第二个是最后的值,第三个是步值。
continue 立即结束当前这次循环,进入下次循环。
break 立即结束整个循环。
下面我用代码来展示一下 continue 和break的使用
for i in range(1,6):
if i==3:
continue
print(f"这是第{i}个包子")
输出的结果直接跳过第三个包子了,然后继续往下执行。
而break的使用
这串代码则是直接跳出了整个循环。
以下这串代码则是将break语句运用到了求平均值当中。
import random
import sys
import time
#欢迎界面
print('+-----------------------------------------------------+')
print('| 花有重开日,人无再少年 |')
print('| |')
print('| 欢迎来到,人生重开模拟器 |')
print('| |')
print('| |')
print('+-----------------------------------------------------+')
#首先我们需要设置初始属性,颜值,体质,智力,家境,总和不能超过20,每一项取值都是1-10之间的
while True:
print('请设置初始属性(总和为二十)')
face=int(input('请输入颜值(1-10)'))
strong=int(input('请输入体质(1-10)'))
iq=int(input('请输入智力(1-10)'))
home=int(input('请输入家境(1-10)'))
if face<1 or face>10:
print("您输入的颜值有误")
continue
if strong<1 or strong>10:
print("您输入的体质有误")
continue
if iq<1 or iq > 10:
print("您输入的智力有问题")
continue
if home<1 or home>10:
print("您输入的家境有问题")
continue
if face +strong +iq +home>20:
print("您输入的总和大于20")
continue
print("初始属性输入完毕")
print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
break
#生成角色性别
point=random.randint(1,6)
if point %2==0:
gender='boy'
print("你是个男孩")
else :
gender='girl'
print("你是个女孩")
#设置角色的出生点
point = random.randint(1,3)
if home ==10:
print("你出生在大城市")
home+=1
strong+=2
face+=2
if home<10 and home>7 :
if point == 1 :
print("你出生在三线城市")
home+=1
elif point == 2:
print("你出生在医世家")
strong +=1
else :
print("你出生在老师世家")
iq+=1
if home> 4 and home<8 :
if point ==1:
print("你出生在五线城市")
face+=1
elif point ==2:
print("你出生在普通小康家庭")
home+=1
else :
print("你出生在小县城,但是非常幸福")
home+=1
if home <5:
print("你出生在普通农民家庭")
if point==1 :
home+=1
elif point==2:
strong -=1
else :
iq-=1
print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
#幼年阶段
#先使用一个循环,按照年龄,从1到10
# 针对每一年,都生成一个随机数[1,3]
# 根据角色,性别,年龄,各种属性,触发各种事件,随机数会对时间的结果造成影响。
# 这里的事件可能会对属性带来变更
# 每一年执行结束,都打印这一年发生的事件(让每年只发生一个事件)
# 也可能会遇到夭折的情况,使用exit函数来结束程序
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:
if home>5:
info+='在你父母的悉心照顾下,你的病得到了康复'
strong+=1
home-=1
else :
info+='你的父母没有经历管你,你的病更糟糕了'
strong -=1
elif face >=7 and age<=4 :
info+='你长的太丑了,别的小朋友不喜欢你'
if iq>5:
info+='你决定用学习证明自己'
iq+=1
else :
info+='你经常和其他小朋友打架'
strong-=1
elif iq<5:
info+='你看起来傻傻的'
if home >=8 and age>=6:
info+='你的父母把你送到更好的学校学习'
iq+=1
elif 4<=home<=7:
if gender=='boy':
info+="你的父母鼓励你多运动"
strong+=1
else :
info+='你的父母鼓励你多打扮自己'
face+=1
else :
info+='你的父母为此经常吵架'
if point ==1:
strong -=1
elif point ==2:
iq-=1
else :
pass
#健康成长
else:
info+='你健康成长'
if point ==1:
info+='你看起来更结实了'
strong+=1
elif point==2:
info +='你看起来更好看了'
face+=1
else :
pass
print(info)
print(f"颜值:{face},体质:{strong},智力:{iq},家境:{home}")
print("----------------------------------------------")
time.sleep(1)