鱼C论坛

 找回密码
 立即注册
查看: 816|回复: 21

[已解决]0基础第四课问题,求解

[复制链接]
发表于 2018-10-20 10:52:55 | 显示全部楼层 |阅读模式

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

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

x
print("````````````````````欢迎来到吉安的殿堂~~~~~~~~~~~~~~~~~~")
secret=1
import random
sercret=random.randint(1,5)
times=3
guess=7
while times and guess != secret:
    guess=input("请输入你猜测的整数:")
    while type(guess)!=int:
        times =- 1
        guess=input("您的输入有误,请重新输入整数,您还剩下"+ times +"次机会而已哦")
    if guess > sercet:
         print("好像大了点哦,往小点猜猜试试看,您还剩下"+ times +"次机会而已哦")
    else :
        print("好像大了点哦,往大点猜猜试试看~您还剩下"+ times +"次机会而已哦")
        times =- 1
if times == 0:
    print("哎哟哥,机会都用完啦,你都猜不出来啊,游戏结束啦哦")
else:
    print("哎哟叼哦!这都能猜出来啊!\n游戏结束了啊!")

我在程序里面添加了识别输入类型的算法·····但是····报错,这个报错是什么意思啊,大神可以为我修改一下吗?

   


















最佳答案
2018-10-20 11:02:37

  1. print("````````````````````欢迎来到吉安的殿堂~~~~~~~~~~~~~~~~~~")
  2. secret=1
  3. import random
  4. sercet=random.randint(1,5)
  5. times=3
  6. guess=7
  7. while times and int(guess) != secret:
  8.     guess=input("请输入你猜测的整数:")
  9.     while not guess.isdigit():
  10.         times -= 1
  11.         guess=input(("您的输入有误,请重新输入整数,您还剩下"+str(times)+"次机会而已哦"))
  12.     times -= 1
  13.     if int(guess) > sercet:
  14.          print("好像大了点哦,往小点猜猜试试看,您还剩下"+ str(times)+"次机会而已哦")
  15.     else :
  16.         print("好像大了点哦,往大点猜猜试试看~您还剩下"+ str(times) +"次机会而已哦")
  17.    
  18. if times == 0:
  19.     print("哎哟哥,机会都用完啦,你都猜不出来啊,游戏结束啦哦")
  20. else:
  21.     print("哎哟叼哦!这都能猜出来啊!\n游戏结束了啊!")
复制代码
QQ浏览器截图20181020105239.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-20 11:02:37 | 显示全部楼层    本楼为最佳答案   

  1. print("````````````````````欢迎来到吉安的殿堂~~~~~~~~~~~~~~~~~~")
  2. secret=1
  3. import random
  4. sercet=random.randint(1,5)
  5. times=3
  6. guess=7
  7. while times and int(guess) != secret:
  8.     guess=input("请输入你猜测的整数:")
  9.     while not guess.isdigit():
  10.         times -= 1
  11.         guess=input(("您的输入有误,请重新输入整数,您还剩下"+str(times)+"次机会而已哦"))
  12.     times -= 1
  13.     if int(guess) > sercet:
  14.          print("好像大了点哦,往小点猜猜试试看,您还剩下"+ str(times)+"次机会而已哦")
  15.     else :
  16.         print("好像大了点哦,往大点猜猜试试看~您还剩下"+ str(times) +"次机会而已哦")
  17.    
  18. if times == 0:
  19.     print("哎哟哥,机会都用完啦,你都猜不出来啊,游戏结束啦哦")
  20. else:
  21.     print("哎哟叼哦!这都能猜出来啊!\n游戏结束了啊!")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-20 11:07:30 | 显示全部楼层

谢大神,但是能不能给我解释一下你的修改的思路是什么啊,没看懂耶
guess=input(("您的输入有误,请重新输入整数,您还剩下"+str(times)+"次机会而已哦")),为什么要加多一个括号?
我能理解guess.isdigit() 但为什么我用对比type是不行的,而且这个报错是什么意思啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-20 11:09:30 | 显示全部楼层
恩,不小心多加了个,但是没关系
你guess是Input得来的,内容肯定是字符串,不可能是Int
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-20 11:11:22 | 显示全部楼层

变量也改一改吧~~ secret #5 #14
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-20 11:13:01 | 显示全部楼层
claws0n 发表于 2018-10-20 11:11
变量也改一改吧~~ secret #5 #14

,,好像@错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-20 11:15:41 | 显示全部楼层

input得出来的一定是字符串吗?那如果想输入整形和浮点应该怎么办啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-20 11:20:44 | 显示全部楼层
猫不理 发表于 2018-10-20 11:15
input得出来的一定是字符串吗?那如果想输入整形和浮点应该怎么办啊?


变量名记得改过来~~
input 不管是什么,输出的一定是字符串~~
所以你需要依需求,做类型转换
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-20 11:22:43 | 显示全部楼层
猫不理 发表于 2018-10-20 11:15
input得出来的一定是字符串吗?那如果想输入整形和浮点应该怎么办啊?

字符串是一定的,像输入什么无所谓
关键是字符串转换
整数a='3'
int(a)
浮点数a='3.14'
float(a)
分别变成对应格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-20 11:27:30 | 显示全部楼层
塔利班 发表于 2018-10-20 11:22
字符串是一定的,像输入什么无所谓
关键是字符串转换
整数a='3'

我明白啦!怪不得每个代码都有个类似guess=int(guess)这样的代码!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-20 11:46:04 | 显示全部楼层
塔利班 发表于 2018-10-20 11:22
字符串是一定的,像输入什么无所谓
关键是字符串转换
整数a='3'

如果我想用type的方法,应该要怎么做呢?求教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-20 11:48:34 | 显示全部楼层
所以这里是用不上的,Input就是字符串
int就是往数字转化
float就是往小数转化
除非你逻辑错误,硬往里送了不对的类型,
但是这是你自己指定的,
没必要自己的代码里就出现矛盾
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-20 12:01:07 | 显示全部楼层
print("````````````````````欢迎来到吉安的殿堂~~~~~~~~~~~~~~~~~~")
import random
secret=random.randint(1,5)
times=3
guess=9
while times and guess!= secret:
    guess=input("请输入你猜测的整数:")
    while not guess.isdigit():
        times =- 1
        guess=input("您的输入有误,请重新输入整数,您还剩下"+ times +"次机会而已哦")
    guess=int(guess)
    if guess > secret:
         print("好像大了点哦,往小点猜猜试试看,您还剩下"+ times +"次机会而已哦")
    else :
        print("好像大了点哦,往大点猜猜试试看~您还剩下"+ times +"次机会而已哦")
        times =- 1
if times == 0:
    print("哎哟哥,机会都用完啦,你都猜不出来啊,游戏结束啦哦")
else:
    print("哎哟叼哦!这都能猜出来啊!\n游戏结束了啊!")[img][/img]

已经修改过了,但是还是出现这个错误,到底是为什么····
请输入你猜测的整数:3
Traceback (most recent call last):
  File "C:\Users\Administrator.SC-201808221752\AppData\Local\Programs\Python\Python37-32\1111.py", line 13, in <module>
    print("好像大了点哦,往小点猜猜试试看,您还剩下"+ times +"次机会而已哦")
TypeError: can only concatenate str (not "int") to str
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-20 12:01:50 | 显示全部楼层

print("````````````````````欢迎来到吉安的殿堂~~~~~~~~~~~~~~~~~~")
import random
secret=random.randint(1,5)
times=3
guess=9
while times and guess!= secret:
    guess=input("请输入你猜测的整数:")
    while not guess.isdigit():
        times =- 1
        guess=input("您的输入有误,请重新输入整数,您还剩下"+ times +"次机会而已哦")
    guess=int(guess)
    if guess > secret:
         print("好像大了点哦,往小点猜猜试试看,您还剩下"+ times +"次机会而已哦")
    else :
        print("好像大了点哦,往大点猜猜试试看~您还剩下"+ times +"次机会而已哦")
        times =- 1
if times == 0:
    print("哎哟哥,机会都用完啦,你都猜不出来啊,游戏结束啦哦")
else:
    print("哎哟叼哦!这都能猜出来啊!\n游戏结束了啊!")[img][/img]

已经修改过了,但是还是出现这个错误,到底是为什么····
请输入你猜测的整数:3
Traceback (most recent call last):
  File "C:\Users\Administrator.SC-201808221752\AppData\Local\Programs\Python\Python37-32\1111.py", line 13, in <module>
    print("好像大了点哦,往小点猜猜试试看,您还剩下"+ times +"次机会而已哦")
TypeError: can only concatenate str (not "int") to str
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-20 12:02:30 | 显示全部楼层
塔利班 发表于 2018-10-20 11:48
所以这里是用不上的,Input就是字符串
int就是往数字转化
float就是往小数转化

print("````````````````````欢迎来到吉安的殿堂~~~~~~~~~~~~~~~~~~")
import random
secret=random.randint(1,5)
times=3
guess=9
while times and guess!= secret:
    guess=input("请输入你猜测的整数:")
    while not guess.isdigit():
        times =- 1
        guess=input("您的输入有误,请重新输入整数,您还剩下"+ times +"次机会而已哦")
    guess=int(guess)
    if guess > secret:
         print("好像大了点哦,往小点猜猜试试看,您还剩下"+ times +"次机会而已哦")
    else :
        print("好像大了点哦,往大点猜猜试试看~您还剩下"+ times +"次机会而已哦")
        times =- 1
if times == 0:
    print("哎哟哥,机会都用完啦,你都猜不出来啊,游戏结束啦哦")
else:
    print("哎哟叼哦!这都能猜出来啊!\n游戏结束了啊!")[img][/img]

已经修改过了,但是还是出现这个错误,到底是为什么····
请输入你猜测的整数:3
Traceback (most recent call last):
  File "C:\Users\Administrator.SC-201808221752\AppData\Local\Programs\Python\Python37-32\1111.py", line 13, in <module>
    print("好像大了点哦,往小点猜猜试试看,您还剩下"+ times +"次机会而已哦")
TypeError: can only concatenate str (not "int") to str
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-20 12:09:08 | 显示全部楼层
times是数字不是字符串,和左右加不了,
得变成字符串
str(times)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-21 18:10:56 | 显示全部楼层
楼主请问guess=9是什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-21 22:19:54 | 显示全部楼层
import random
secret=random.randint(1,10)
temp = input("请输入一个0-10的数:")
guess = int(temp)
i=0
while guess !=secret and i!=2:
    i=i+1
    if guess >secret:
       temp = input("大了大了,请再输入一次:")
       guess = int(temp)
    else:
        temp = input("小了小了,请再输入一次:")
    guess = int(temp)
   
if guess ==secret:
    print("厉害了我的哥")
else:
    print("很遗憾你答错了")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-22 11:31:55 From FishC Mobile | 显示全部楼层
Ray34 发表于 2018-10-21 18:10
楼主请问guess=9是什么意思?

因为要先随便赋个值给guess啊,不然会报错啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-22 11:34:33 From FishC Mobile | 显示全部楼层
塔利班 发表于 2018-10-20 12:09
times是数字不是字符串,和左右加不了,
得变成字符串
str(times)

guess=input("您的输入有误,请重新输入整数,您还剩下"+ str(times) +"次机会而已哦"),我直接这样可以吗哥?手上没电脑只能猜测一下咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 13:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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