鱼C论坛

 找回密码
 立即注册
查看: 1997|回复: 8

[已解决]新手发帖,Python问题求教,判断每次输入的内容是否为整型

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

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

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

x
在看了甲鱼哥哥的前面几讲内容后,我自己在研究如何能让python判断输入的内容是不是字符型,如果是则重新输入,循环下去,总共有3次的输入机会,如果不是字符型则判断是不是==8 ,不等于的话再重新输入,此时输入的内容也要判断是不是字符型,再循环下去,说的内容可能太冗长了,不过想达到的效果就是希望每次输入的内容都判断是否为整数并且为整数的情况下再判断是否==8,!=8也要重新输入
Python新手,望各位大神不吝赐教
最佳答案
2017-5-15 18:15:31
  1. i = 3
  2. while i :
  3.     a = input('请输入一个整数:')
  4.     if a.isdigit():           #判断是否是int类型
  5.         if int(a) == 8 :      #转换成int类型并判断是否等于8
  6.             print('嘿,对了~!')
  7.             break             #对了,结束循环
  8.         else:                 #不等于8,执行下面
  9.             print('错了~你还剩下', i-1 ,'次机会!')
  10.             i -= 1            #次数-1           
  11.     else:                     #不是int类型,执行下面
  12.         print('输入类型错误,请重新输入,还剩下', i-1 ,'次机会')
  13.         i -= 1
复制代码


同为初学者,共同努力!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-15 18:15:31 | 显示全部楼层    本楼为最佳答案   
  1. i = 3
  2. while i :
  3.     a = input('请输入一个整数:')
  4.     if a.isdigit():           #判断是否是int类型
  5.         if int(a) == 8 :      #转换成int类型并判断是否等于8
  6.             print('嘿,对了~!')
  7.             break             #对了,结束循环
  8.         else:                 #不等于8,执行下面
  9.             print('错了~你还剩下', i-1 ,'次机会!')
  10.             i -= 1            #次数-1           
  11.     else:                     #不是int类型,执行下面
  12.         print('输入类型错误,请重新输入,还剩下', i-1 ,'次机会')
  13.         i -= 1
复制代码


同为初学者,共同努力!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-15 18:33:32 | 显示全部楼层
  1. try:
  2.     num = int(input("Enter:"))
  3. except ValueError:
  4.     print("please enter number")
复制代码

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

使用道具 举报

 楼主| 发表于 2017-5-16 10:05:56 | 显示全部楼层
yongxi 发表于 2017-5-15 18:15
同为初学者,共同努力!

谢谢你的回复呀,真的很有很有帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-16 10:06:57 | 显示全部楼层

感谢回复呀,不过我现在初学还不太懂try,等学到try的时候再试下,谢谢谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-16 10:36:24 | 显示全部楼层
看过了答主们的代码分享,我稍微改良了下,实现最终的效果啦,python还有好多不会的地方,希望大家一起共同努力
  1. print('----------这是一个小游戏:--------')
  2. times = 3
  3. while times > 0:
  4.       temp = input('请输入一个整数数字:')
  5.       if  temp.isdigit() == True:    #判断是否为整数
  6.           if int(temp) != 8:
  7.                 if int(temp) > 8:
  8.                       print('数字太大啦,还剩下',times-1,'次机会')
  9.                       times -= 1
  10.                 else:
  11.                       print('小了小了、、、还剩下',times-1,'次机会')
  12.                       times -= 1
  13.           else:
  14.                  print('你猜的好对啊!这么棒')
  15.                  break
  16.       else:
  17.             print('你输入的不是整数哦,还剩下',times-1 ,'次机会')
  18.             times -= 1
  19. print('游戏结束啦')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-16 20:26:08 | 显示全部楼层
while times > 0:  此处不用time>0  因为当次数用光,time=0的时候, 因 time=0  0为false  while times 就是false  就停止循环了
if  temp.isdigit() == True:    #判断是否为整数  此处同理。  如果是int类型  temp.isdigit() 返回true 否则返回false 所有  直接 if  temp.isdigit() 就行 。  不用判断是否==true
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-19 09:46:08 | 显示全部楼层
本帖最后由 测试狗要加油 于 2017-5-19 09:47 编辑
yongxi 发表于 2017-5-16 20:26
while times > 0:  此处不用time>0  因为当次数用光,time=0的时候, 因 time=0  0为false  while times 就 ...


嘿嘿,谢谢指教
我这样写有点冗余了,直接while times 和 if temp.isdigit()就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 14:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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