鱼C论坛

 找回密码
 立即注册
查看: 1300|回复: 13

[已解决]Python第五课课后作业问题——改进我们的小游戏

[复制链接]
发表于 2020-3-22 18:41:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 焰珺晴 于 2020-3-22 18:41 编辑

四个问题求大佬解答
1. guess = 0的作用是什么,设guess = 1-9 有什么区别?之后guess就赋值了,为什么之前要赋值?

2. temp = input() temp什么意思?前面是一个字符串(字符串不是用单引号才能定义的吗),guess是变量(后面赋值了),temp不是变量对吗?

内置函数input()括号里面为什么不加东西

3. if temp.isdigit()[这里面的括号也不加东西]

temp.isdigit(),所有字符都是数字,为真返回 True,否则返回 False【数字还是整数?如果我输入小数得到的输入有误】

4. guess = int(temp)把temp转化为整形的目的是什么呢?


代码如下
import random

times = 3
secret = random.randint(1,10)

print('------------------我爱鱼C工作室------------------')
guess = 0
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")

while (guess != secret) and (times > 0):
    temp = input()
    
    if temp.isdigit():
        guess = int(temp)
        if guess == secret:
            print("我草,你是小甲鱼心里的蛔虫吗?!")
            print("哼,猜中了也没有奖励!")
        else:
            if guess > secret:
                print("哥,大了大了~~~")
            else:
                print("嘿,小了,小了~~~")
            if times > 1:
                 print("再试一次吧:", end='')
            else:
                print("机会用光咯T_T")
    else:
        print("抱歉,您的输入有误,请输入一个整数:", end='')

    times = times - 1 # 用户每输入一次,可用机会就-1

print("游戏结束,不玩啦^_^")
最佳答案
2020-3-22 18:48:28
1、guess不提前赋值,后面没法直接调用。你直接上来就调用guess的话,python不知道guess这是个啥。

2、temp就是个临时变量,你可以随便起名。temp这里主要是给用户一个输入的交互。input交互输入的就是字符串。  int只是把用户输入的字符串转换为整数。

3、如果temp是数字的话。

4、不把temp转换成数字,guess(数字)就没法跟temp(字符串)进行比较。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-22 18:46:05 | 显示全部楼层
1,temp就是一个单纯的变量,用于存放用户输入的值
2,input为什么非要加东西?不加东西效果也一样
3,整数(那是字符串的内置方法,我不记得有参数,总之我没用过带参数的)
4,input默认接收到的是字符串,要改成整型,
不然判断就得这样:
if guess == '8':
(只是举个例子)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-22 18:48:28 | 显示全部楼层    本楼为最佳答案   
1、guess不提前赋值,后面没法直接调用。你直接上来就调用guess的话,python不知道guess这是个啥。

2、temp就是个临时变量,你可以随便起名。temp这里主要是给用户一个输入的交互。input交互输入的就是字符串。  int只是把用户输入的字符串转换为整数。

3、如果temp是数字的话。

4、不把temp转换成数字,guess(数字)就没法跟temp(字符串)进行比较。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-22 19:15:11 | 显示全部楼层
本帖最后由 焰珺晴 于 2020-3-22 19:19 编辑
heidern0612 发表于 2020-3-22 18:48
1、guess不提前赋值,后面没法直接调用。你直接上来就调用guess的话,python不知道guess这是个啥。

2、t ...


1. 赋那为什么不能是1-9里面的数?
3. temp.isdigit()括号里面不加东西的话,怎么比较所有字符是不是整数,比较范围是?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 19:17:20 | 显示全部楼层
焰珺晴 发表于 2020-3-22 19:15
1. 赋那为什么不能是1-9里面的数?

可以啊,你可以赋值任意数,只要不是你猜哪个数就行。

只不过这个guess就是个初始化,一般赋值0即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-22 19:17:45 | 显示全部楼层
qiuyouzhi 发表于 2020-3-22 18:46
1,temp就是一个单纯的变量,用于存放用户输入的值
2,input为什么非要加东西?不加东西效果也一样
3,整 ...

2. 内置函数input()括号里,是输入格子里面前面的问题对吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-22 19:21:12 | 显示全部楼层
heidern0612 发表于 2020-3-22 19:17
可以啊,你可以赋值任意数,只要不是你猜哪个数就行。

只不过这个guess就是个初始化,一般赋值0即可。

哦,由于在(1,10)任意取所以不能初始化的时候赋值不能赋值这个范围的
3. temp.isdigit()括号里面不加东西的话,怎么比较所有字符是不是整数,比较范围是?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 19:22:20 | 显示全部楼层
焰珺晴 发表于 2020-3-22 19:17
2. 内置函数input()括号里,是输入格子里面前面的问题对吧

对的,但因为print替代了,就不用参数了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 19:25:21 | 显示全部楼层
焰珺晴 发表于 2020-3-22 19:21
哦,由于在(1,10)任意取所以不能初始化的时候赋值不能赋值这个范围的
3. temp.isdigit()括号里面不加 ...

1、你可以赋值在范围内的,但是你要知道你serect在random之后,你也不知道这个serect到底是什么数了。

你如果赋值在范围内,万一跟这次猜的数对上了。那下面就没有while了。

2、 temp.isdigit()这个语法就是这么用的,你可以去小甲鱼课后看看这个语法的详细介绍。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-3-22 19:53:09 | 显示全部楼层
heidern0612 发表于 2020-3-22 19:25
1、你可以赋值在范围内的,但是你要知道你serect在random之后,你也不知道这个serect到底是什么数了。

...

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-22 19:54:11 | 显示全部楼层
qiuyouzhi 发表于 2020-3-22 19:22
对的,但因为print替代了,就不用参数了

哦哦哦明白了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 20:03:00 | 显示全部楼层
变量使用前要先赋值
temp在英语中是“临时文件”的意思,只是一般暂时存储的变量。一个优秀的程序员要有强迫症,不能给变量随便命名
input()可以不加参数,input()的作用将()内的参数显示到屏幕上并要求用户输入数据
其实在程序末尾输入此函数只是为了给程序员观察的时间#程序运行完会自动关闭
int()的作用:将()内的参数化成整形以便下面的操作 #有些程序必须要整数才能顺利运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 20:21:36 | 显示全部楼层
焰珺晴 发表于 2020-3-22 19:54
哦哦哦明白了,谢谢

那就设个最佳答案吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-22 20:36:53 | 显示全部楼层
本帖最后由 焰珺晴 于 2020-3-22 20:40 编辑

1. guess = 0的作用是什么,设guess = 1-9 有什么区别?之后guess就赋值了,为什么之前要赋值?

guess是变量,可以赋值任意数,只要不是你猜哪个数就行。只不过这个guess就是个初始化,一般赋值0即可

你可以赋值在范围内的,但是你要知道你serect在random之后,你也不知道这个serect到底是什么数了。换句话说你如果赋值在范围内,万一跟这次猜的数对上了。那下面就没有while了。


2. temp = input() temp什么意思?前面是一个字符串(字符串不是用单引号才能定义的吗)
     
    temp就是个临时变量,你可以随便起名。temp这里主要是给用户一个输入的交互。input交互输入的就是字符串。  int只是把用户输入的字符串转换为整数

内置函数input()括号里面为什么不加东西

    内置函数input()括号里,是输入格子里面前面的问题,但因为print替代了,就不用参数了

3. if temp.isdigit()[这里面的括号也不加东西]
      这个语法就是这么用的

temp.isdigit(),所有字符都是数字,为真返回 True,否则返回 False
     【是整数】

4. guess = int(temp)把temp转化为整形的目的是什么呢?

    不把temp转换成数字,guess(数字)就没法跟temp(字符串)进行比较。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 07:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表