鱼C论坛

 找回密码
 立即注册
查看: 2232|回复: 7

[已解决]python新人的进击,欢迎讨论,交个朋友吧~同时也求助大神~

[复制链接]
发表于 2017-5-5 12:44:52 | 显示全部楼层 |阅读模式

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

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

x
在学习鱼大大python视频教学中对第一次的游戏进行升级,通过while循环,and的逻辑判断,和random模块的randint。

然后本小白,在运行的过程中,遇见了如下问题:


附上程序:



startsign = 1
while startsign == 1:
    import random
    number=random.randint(1,20)

    print('---------welcome to windkingland----------\n\n\nnice to meet you!\n\nlet\'s play a game !\n')
    temp=input("Do you know what the number is in my mind?\n")
    guess = int(temp)
    i = 1
    while guess != number and i<4:

        if guess > number:
            print("Nope,you are bigger!\n")
        else:
            print("Nope,you are smaller!\n")

        temp=input("please try again!\n")
        guess = int(temp)

        i = i+1
    if guess == number:   
        print("you are right ,congradulations!\ngame over\n")
    else:
        print("come on!\n It's really easy.you are a boy who have a lazy brain .\ngame over\n\n\n ")        
    print("DO you want to play with me again?\n1_yes         0_no")
    startsign = input()
print("ok,see you next time,have a good day!\n--------------happy ending----------------")




why?【思考中】

欢迎讨论,欢迎大神解答!

今天又是美好的一天【美滋滋】
最佳答案
2017-5-5 13:43:56
你好

运行了你的代码,在输入数字的情况下,并没有异常报错。

发现如下bug:
倒数第2行代码“startsign = input()”,用户输入数值后,变量startsign的值切换为字符型,即使用户输入1,while循环也会终止,建议将代码修改为:“startsign =int(input())”

ps:你的判定循环是4次,即:用户可以输错4次
error.PNG
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-5-5 13:43:56 | 显示全部楼层    本楼为最佳答案   
你好

运行了你的代码,在输入数字的情况下,并没有异常报错。

发现如下bug:
倒数第2行代码“startsign = input()”,用户输入数值后,变量startsign的值切换为字符型,即使用户输入1,while循环也会终止,建议将代码修改为:“startsign =int(input())”

ps:你的判定循环是4次,即:用户可以输错4次
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-5-5 13:49:48 | 显示全部楼层
本帖最后由 ButcherRabbit 于 2017-5-5 13:51 编辑

你的程序只需要改一个小小的地方,还有加载模块,最好在最前面,不要放到循环里面
我改了倒数第二行的代码,因为input()在Python3里默认是字符串类型,字符串类型,while :循环就不会成立
  1. import random

  2. startsign = 1
  3. while startsign == 1:
  4.    
  5.     number=random.randint(1,20)

  6.     print('---------welcome to windkingland----------\n\n\nnice to meet you!\n\nlet\'s play a game !\n')
  7.     temp=input("Do you know what the number is in my mind?\n")
  8.     guess = int(temp)
  9.     i = 1
  10.     while guess != number and i<4:

  11.         if guess > number:
  12.             print("Nope,you are bigger!\n")
  13.         else:
  14.             print("Nope,you are smaller!\n")

  15.         temp=input("please try again!\n")
  16.         guess = int(temp)

  17.         i = i+1
  18.     if guess == number:   
  19.         print("you are right ,congradulations!\ngame over\n")
  20.     else:
  21.         print("come on!\n It's really easy.you are a boy who have a lazy brain .\ngame over\n\n\n ")        
  22.     print("DO you want to play with me again?\n1_yes         0_no")
  23.     startsign = int(input())
  24. print("ok,see you next time,have a good day!\n--------------happy ending----------------")
复制代码
TIM图片20170505134522.png
2.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-5 15:21:09 | 显示全部楼层
thexiosi 发表于 2017-5-5 13:43
你好

运行了你的代码,在输入数字的情况下,并没有异常报错。

hello,你好啊

(fishc的用户活跃度还不错呀,半个小时就有了答案~开心)

确实没注意到startsign的值的类型这个问题,谢谢提醒【smile】

受教~【抱拳】
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-5 15:30:02 | 显示全部楼层
ButcherRabbit 发表于 2017-5-5 13:49
你的程序只需要改一个小小的地方,还有加载模块,最好在最前面,不要放到循环里面
我改了倒数第二行的代码 ...

hello~

嗯,加载模块要放在最前面的细节建议很到位,今后都会放在开头的,受教【抱拳】

没有注意到鱼大大的写
  1. temp=input("Do you know what the number is in my mind?\n")
  2.     guess = int(temp)
复制代码

的的时候

guess从键盘中获取值后也加了一个int,疏忽了,哈哈哈

还欠缺磨练呀【努力中】
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-5 15:46:21 | 显示全部楼层
好吧,看着前辈的谆谆教诲,在对自己的程序更改细节的过程中,突然就开悟了:

ValueError: invalid literal for int() with base 10: ''

这句话的意思是,int(),在这个括号里的东西不能为空。

然后我又试了试字符串,嗯,结果是不行。

结论是,int的输入只能为数字,,好吧,easy到不行的问题,居然还能厚着脸皮提出来。

关键是露个脸啦,嘿嘿,大家一起加油吧

  1. while skill<=100 and eagerness >= 0:
  2.          learning and practice
  3. no pass
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-5 17:03:46 | 显示全部楼层
ButcherRabbit 发表于 2017-5-5 13:49
你的程序只需要改一个小小的地方,还有加载模块,最好在最前面,不要放到循环里面
我改了倒数第二行的代码 ...

“加载模块,最好在最前面,不要放到循环里面”

赞一个,很细致,学习啦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-5 17:04:54 | 显示全部楼层
Mr.coder 发表于 2017-5-5 15:21
hello,你好啊

(fishc的用户活跃度还不错呀,半个小时就有了答案~开心)

不客气,恰好看到了你的帖子 :)

我也是小白一枚,握爪,共同加油 ↖(^ω^)↗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-28 07:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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