30天python从零到一---第五天:人生重开模拟器 ,循环语句

Posted 披星戴月的贾维斯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了30天python从零到一---第五天:人生重开模拟器 ,循环语句相关的知识,希望对你有一定的参考价值。

🍎 博客主页:🌙@披星戴月的贾维斯
🍎 欢迎关注:👍点赞🍃收藏🔥留言
🍇系列专栏:🌙 Python专栏
🌙请不要相信胜利就像山坡上的蒲公英一样唾手可得,但是请相信,世界上总有一些美好值得我们全力以赴,哪怕粉身碎骨!🌙
🍉一起加油,去追寻、去成为更好的自己!


文章目录

提示:以下是本篇文章正文内容,下面案例可供参考


🍎1、循环语句

有些操作是需要反复执行的. 这种就需要使用循环。
循环一般分为两种,while循环和for循环。
🔥1.1、while循环🔥
基本语法格式:

while 条件:
    循环体
  • 条件为真, 则执行循环体代码.
  • 条件为假, 则结束循环

写while循环需要注意的三个要点

  • 1、循环变量的初始值
  • 2、循环的判断条件
  • 3、循环变量的更新语句

代码示例:打印1 - 10 的整数

num = 1
while(num <= 10):
    print(num)
    num+=1 #如果没这句 ,程序会死循环

代码示例: 计算 1-100 的和

sum = 0
num = 1
while num <= 100:
    sum += num
    num += 1
print(sum)


代码示例: 计算 5 的阶乘

result = 1
n = 1
while n <= 5:
    result *= n
    n += 1
print(result)


🔥1.2、for 循环🔥
基本语法格式

for 循环变量 in 可迭代对象:
    循环体

注意:

  • python 的 for 和其他语言不同, 没有 “初始化语句”, “循环条件判定语句”, “循环变量更新语句”, 而是更加简单
  • 所谓的 “可迭代对象”, 指的是 “内部包含多个元素, 能一个一个把元素取出来的特殊变量”

range是一个内建函数,起到的效果就是得到一个”可迭代对象“
这个可迭代对象包含了一系列整数
range(begin, end) => [begin, end) 前闭后开区间
range还提供了第三个参数~表示”步长“, 默认的步长值是1

代码示例: 打印 1-10

for i in range(1, 11):
    print(i)

代码示例: 打印 2, 4, 6, 8, 10

for i in range(2, 12, 2):
    print(i)

代码示例: 打印 10-1 :通过控制步长即可

for i in range(10, 0, -1):
    print(i)

代码示例: 求 1 - 100 的和

s = 0
for i in range(1, 101):
    s += i
print(s)
  • 小技巧:使用shift +F6 可以针对变量进行重命名~ 会智能地修改我们的代码,把需要修改的名字都统一替换了。

🔥1.3、continue和break🔥
continue 表示结束这次循环, 进入下次循环.

代码示例: 模拟拆快递. 拆第 3 个快递的时候不小心拆坏了

for i in range(1, 6):
    if i == 3:
        continue
    print(f"拆完第 i 个快递")

break 表示结束整个循环

代码示例: 输入若干个数字, 求平均值. 使用 “分号” 作为结尾.

sum = 0
count = 0
while True:
    num = input("请输入数字:")
    if num == ';':
        break
    num = float(num)
    sum += num
    count += 1
print(sum / count)

🍎2、人生重开模拟器

这是一款之前很火的文字类小游戏. 玩家输入角色的初始属性之后, 就可以开启不同的人生经历.
大家可以在网上搜索 “人生重开模拟器”, 就可以玩到这个游戏的各种版本.

完整的程序代码较多, 此处我们只实现其中的一部分逻辑.

1. 设置初始属性

在游戏中我们设定四个属性.

  • 颜值 (face)
  • 体质 (strong)
  • 智力 (iq)
  • 家境 (home)

我们约定每个属性的范围为 [1, 10], 并且总和不能超过 20.
如果玩家输入的初始属性不合理, 就提示输入有误, 重新输入。

代码示例

print("+---------------------------------------------------------------------+")
print("|                                                                     |")
print("|                   光阴似箭,只争朝夕                                    |")
print("|                                                                     |")
print("|                   欢迎来到, 人生重开模拟器                             |")
print("|                                                                     |")
print("+---------------------------------------------------------------------+")
# 设置初始属性
while True:
    print("请设定初始属性(可用总点数 20)")
    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("初始属性设定完成!")
        break

2. 设置性别

代码逻辑: 通过 random.randint(1, 6) 生成一个 [1, 6] 的随机整数, 类似于掷色子.

  • 如果是单数, 则性别设为男孩
  • 如果是双数, 则性别设为女孩.

男孩和女孩会遇到不同的事件.
代码示例:

point = random.randint(1, 6) # 掷色子
if point % 2 == 1:
    gender = 'boy'
    print("你是个男孩")
else:
    gender = 'girl'
    print("你是个女孩")

3. 设置出生点

首先按照家境(home), 分成四个档位.
10 是第一档. 加成最高
[7, 9] 是第二档. 也有一些加成
[4, 6] 是第三档. 加成较少
[1, 3] 是第四档. 会扣掉属性.
再扔一次色子, 生成 [1, 3] 的随机数, 用来表示每一种细分情况.
这里的代码主要就是各种 if else 构成

point = random.randint(1, 3) # 掷色子
if home == 10:
    print('你出生在帝都, 你的父母是高官政要')
    home += 1
    iq += 1
    face += 1
elif 7 <= home <= 9:
    if point == 1:
        print('你出生在大城市, 你的父母是公务员')
        face += 2
    elif point == 2:
        print('你出生在大城市, 你的父母是大企业高管')
        home += 2
    else:
        print('你出生在大城市, 你的父母是大学教授')
        iq += 2
elif 4 <= home <= 6:
    if point == 1:
        print('你出生在三线城市, 你的父母是教师')
        iq += 1
    elif point == 2:
        print('你出生在镇上, 你的父母是医生')
        strong += 1
    else:
        print("你出生在镇上, 你的父母是个体户")
        home += 1
else:
    if 1 <= point <= 2:
        print('你出生在村里, 你的父母是辛苦劳作的农民')
        strong += 1
        face -= 2
    elif 3 <= point <= 4:
        print('你出生在穷乡僻壤, 你的父母是无业游民')
        home -= 1
    else:
        print('你出生在镇上, 你父母感情不和')
        strong -= 1

🍎3、总结

    本文总共介绍了循环语句的概念,使用等,还介绍了Python实现一个人生重开模拟器的部分代码,剩下的部分的代码我们下一节再讲,希望大家读后也能有所收获!

从零到一学习Flutter——布局

环境

开发机器:Mac

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.7.1, on macOS 13.1 22C65 darwin-arm64, locale
    zh-Hans-CN)

安装环境的流程就不重复写了,可以参考官方文档进行安装。

第一个应用

我们直接用flutter create testapp命令就可以直接创建一个工程。

工程里面,我们目前编码用到的就是lib文件夹下的main.dart

删了所有内容,只保留以下内容:

void main() 
  runApp(const Center(
    child: Text("Hello world"),
  ));

Flutter是可以支持跨平台的,因此运行的时候可以根据需要指定运行的平台。

$ flutter run
Multiple devices found:
macOS (desktop) • macos  • darwin-arm64   • macOS 13.1 22C65 darwin-arm64
Chrome (web)    • chrome • web-javascript • Google Chrome 109.0.5414.119
[1]: macOS (macos)
[2]: Chrome (chrome)
Please choose one (To quit, press "q/Q"): 2

我这里以web

以上是关于30天python从零到一---第五天:人生重开模拟器 ,循环语句的主要内容,如果未能解决你的问题,请参考以下文章

30天python从零到一---第二天:python基础语法

30天python从零到一---第三天:python基础语法

Flask从零到一 1 | 虚拟环境和第一个flask程序

从零到一学习Flutter——布局

从零到一实现神经网络(python):二

JavaWeb从零到一会话技术Cookie&Session&JSP