鱼C论坛

 找回密码
 立即注册
查看: 1407|回复: 17

[已解决]加入一个if 0>输入的数值>10,加在哪里好。

[复制链接]
发表于 2018-8-26 00:44:42 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Stubborn 于 2018-8-26 00:46 编辑

import random
times = 3
sctr = random.randint(1,10)
print("第五节修改")
setce = 0
print("猜测10以内的整数游戏:",end="")
while (setce != sctr) and (times > 0):  
       sctre = input()
       times -=1
       if  sctre.isdigit():
           setce = int(sctre)
           if setce == sctr:
               print("猜中了")
           else:
               if setce>sctr:
                   print("大了,再猜")
                   print("您还有", times, "次机会:",end="")
               else:
                   print("小了,再猜")
                   print("您还有", times, "次机会:",end="")
                   if times==0:
                       break
                   else:
                       continue
       else:
           times +=1
           print("请输入10以内的整数:",end="")
print("\n没有猜中太笨了您机会用完了哦")

这个就是代码,新手,很简单的问题,弄不明白,加进去总会报错,'int'和'str'实例之间不支持,有什么办法可以加入吗?
最佳答案
2018-8-26 11:36:39
Stubborn 发表于 2018-8-26 00:58
if  sctre.isdigit():
           if 0

if  sctre.isdigit():                 #isdigit()这个方法是属于 【字符串类型数据】的方法,用来判断对象里的数据是不是全是 阿拉伯数字组成的,仅此而已,只是一个判断,谨记,她还是字符串类型。
           if 0<sctre<10:         # 这句改为: if 0<int(sctre)<10:即可运行代码,我试过了,没再报错。
               setce = int(sctre)
               if setce == sctr:
                   print("猜中了")
               else:
                   if setce > sctr:
                       print("大了,再猜")
                       print("您还有", times, "次机会:", end="")
                   else:
                       print("小了,再猜")
                       print("您还有", times, "次机会:", end="")
                       if times == 0:
                           break
                       else:
                           continue
           else:
               times += 1
               print("请输入10以内的整数:", end="")
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-26 00:50:14 | 显示全部楼层
本帖最后由 Stubborn 于 2018-8-26 00:54 编辑

>>> a,b=5,15
          
>>> 0<b<10
          
False
>>> 0<a<10
          
True
>>>   
语句应该没错,为什么为什么发生了字符串错误了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-26 00:58:54 | 显示全部楼层
  if  sctre.isdigit():
           if 0<sctre<10:
               setce = int(sctre)
               if setce == sctr:
                   print("猜中了")
               else:
                   if setce > sctr:
                       print("大了,再猜")
                       print("您还有", times, "次机会:", end="")
                   else:
                       print("小了,再猜")
                       print("您还有", times, "次机会:", end="")
                       if times == 0:
                           break
                       else:
                           continue
           else:
               times += 1
               print("请输入10以内的整数:", end="")
有尝试这样写,不行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-26 01:00:34 | 显示全部楼层
Stubborn 发表于 2018-8-26 00:58
if  sctre.isdigit():
           if 0

if  sctre.isdigit():
           setce = str(sctre)
           if 0<sctre<10:
               setce = int(sctre)
               if setce == sctr:
还试过这样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-26 01:33:39 | 显示全部楼层
  1. import random
  2. times = 3
  3. secret = random.randint(1,10)
  4. print("第五节修改",end='')
  5. print("猜测10以内的整数游戏:")
  6. guess = 0
  7. while (guess != secret) and (times > 0):  
  8.        guess = input()
  9.        times -= 1
  10.        if  guess.isdigit():
  11.            temp = int(guess)
  12.            if temp == secret:
  13.                print("猜中了")
  14.            else:
  15.                if temp > secret:
  16.                    print("大了,再猜")
  17.                    print("您还有 "+str(times)+" 次机会:")
  18.                else:
  19.                    if times==0:
  20.                        break
  21.                    else:
  22.                        print("小了,再猜")
  23.                        print("您还有 "+str(times)+" 次机会:")
  24.                        continue
  25.        else:
  26.            times +=1
  27.            print("请输入10以内的整数:")
  28. print("\n没有猜中太笨了您机会用完了哦")
复制代码

1. 其实看不懂你的标题
2. 那请问数字与字符要如何相加?当然要先进行转型。前后加了空格,美观~
3. end = '' 没有必要就不要用。干脆全部写在一行……
4. 改了一些变量名字(以方便阅读,代码不是你一个人看的而已),以及后面打印结果的部分,大体的架构没有改到,不知是否符合您的需求?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-8-26 10:20:10 | 显示全部楼层
if 0>输入的数值>10   怎么可能?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-26 10:35:23 | 显示全部楼层
import random
times = 3
sctr = random.randint(1,10)
print("第五节修改")
setce = 0
print("猜测10以内的整数游戏:",end="")
while (setce != sctr) and (times > 0):  
       sctre = input()
       times -=1
       if  sctre.isdigit() and (0 < int(sctre) < 10):
           setce = int(sctre)
           if setce == sctr:
               print("猜中了")
           else:
               if setce>sctr:
                   print("大了,再猜")
                   print("您还有", times, "次机会:",end="")
               else:
                   print("小了,再猜")
                   print("您还有", times, "次机会:",end="")
                   if times==0:
                       break
                   else:
                       continue
       else:
           times +=1
           print("请输入10以内的整数:",end="")
print("\n没有猜中太笨了您机会用完了哦")


你的意思是不能输入负数和大于10的数吧。
我在第一个if语句加了一个条件,其它的没有改动喔
你的变量看得我吐血。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-26 11:07:32 | 显示全部楼层
Stubborn 发表于 2018-8-26 00:58
if  sctre.isdigit():
           if 0

“  if  sctre.isdigit():
             if 0<sctre<10:   ”
这句肯定不行呀,isdigit()方法是对 字符串 的方法,sctre 还是字符串,怎么能拉她 去和 0 ,10 这些整型的数据进行比较呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-26 11:15:22 | 显示全部楼层
Stubborn 发表于 2018-8-26 01:00
if  sctre.isdigit():
           setce = str(sctre)
           if 0

if  sctre.isdigit():            #第1句,
           setce = str(sctre)  #第2句,
           if 0<sctre<10:     #第3句,错误了,这句。sctre依然是字符串类型的数据,
                                    #无法跟 0 和 10 ,这些整型的数据进行比较。
               setce = int(sctre) #第4句,
               if setce == sctr:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-26 11:36:39 | 显示全部楼层    本楼为最佳答案   
Stubborn 发表于 2018-8-26 00:58
if  sctre.isdigit():
           if 0

if  sctre.isdigit():                 #isdigit()这个方法是属于 【字符串类型数据】的方法,用来判断对象里的数据是不是全是 阿拉伯数字组成的,仅此而已,只是一个判断,谨记,她还是字符串类型。
           if 0<sctre<10:         # 这句改为: if 0<int(sctre)<10:即可运行代码,我试过了,没再报错。
               setce = int(sctre)
               if setce == sctr:
                   print("猜中了")
               else:
                   if setce > sctr:
                       print("大了,再猜")
                       print("您还有", times, "次机会:", end="")
                   else:
                       print("小了,再猜")
                       print("您还有", times, "次机会:", end="")
                       if times == 0:
                           break
                       else:
                           continue
           else:
               times += 1
               print("请输入10以内的整数:", end="")
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-26 17:08:40 | 显示全部楼层
claws0n 发表于 2018-8-26 01:33
1. 其实看不懂你的标题
2. 那请问数字与字符要如何相加?当然要先进行转型。前后加了空格,美观~
3. en ...


可能我问的问题表达不是很好,具体答案在楼下看到了,看到你的答案,我最后也参照你的左右一些修改,变量明我以后尽量用大家都能看的懂的,非常感谢你的帮助,最后想要的答案是这样的
  1. import random
  2. times = 3
  3. answer = random.randint(1,10)  
  4. print("第五节修改")
  5. guess = 0
  6. print("猜测10以内的整数游戏:",end="")
  7. while (guess != answer) and (times > 0):
  8.        temp = input()
  9.        times -=1
  10.        if  temp.isdigit() and 0<int(temp)<10 :
  11.            guess = int(temp)
  12.            if guess == answer:
  13.                print("猜中了")
  14.            else:
  15.                if guess > answer:
  16.                    print("大了,再猜")
  17.                    print("您还有", times, "次机会:", end="")
  18.                elif times == 0:
  19.                    break
  20.                else:
  21.                    print("小了,再猜")
  22.                    print("您还有", times, "次机会:", end="")
  23.                    continue
  24.        else:
  25.            times +=1
  26.            print("请输入10以内的整数:",end="")
  27. print("\n没有猜中太笨了您机会用完了哦")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-26 17:10:35 | 显示全部楼层
记忆的欠片 发表于 2018-8-26 10:35
import random
times = 3
sctr = random.randint(1,10)

非常感谢你的回答,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-26 17:12:07 | 显示全部楼层
geen 发表于 2018-8-26 11:36
if  sctre.isdigit():                 #isdigit()这个方法是属于 【字符串类型数据】的方法,用来判断 ...

非常感谢 小白问题 学艺不精
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-26 17:12:52 | 显示全部楼层
凌九霄 发表于 2018-8-26 10:20
if 0>输入的数值>10   怎么可能?


if 0>int(输入的数值)>10   转下类型就好了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-26 17:40:11 | 显示全部楼层
Stubborn 发表于 2018-8-26 17:12
if 0>int(输入的数值)>10   转下类型就好了

我的意思是:输入的这个数要小于0,却又要大于10  怎么可能
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-26 18:43:59 | 显示全部楼层
凌九霄 发表于 2018-8-26 17:40
我的意思是:输入的这个数要小于0,却又要大于10  怎么可能

这里是判断,判断你输入的数在0-10之间,可以懂吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-26 18:50:33 | 显示全部楼层
本帖最后由 凌九霄 于 2018-8-26 18:52 编辑
Stubborn 发表于 2018-8-26 18:43
这里是判断,判断你输入的数在0-10之间,可以懂吗?


0 < x < 10  这是0到10之间

0>x>10     这是啥?也许你可以懂?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-26 19:12:12 | 显示全部楼层
Stubborn 发表于 2018-8-26 18:43
这里是判断,判断你输入的数在0-10之间,可以懂吗?

表达式  看着0>a 和a >10
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 09:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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