鱼C论坛

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

[已解决]新手求助!!!

[复制链接]
发表于 2017-5-18 21:10:41 | 显示全部楼层 |阅读模式

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

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

x
哪位大神帮我改改下面这段代码,有2个问题不知道怎么写?
1. 下面的代码输入次数怎么实现?我写的是3次,但是无法实现
2. 要对输入的内容做一个判定,假如输入的是字母,符号之类的字符,只能要求输入整数
print('......判断奇偶数......')
count = 3
while count:
    temp = input('请输入一个整数: ')
    num = int(temp)
    if 0<num<100:
        if num%2 == 0:
            print(temp + '是偶数')
            break
        else:
            print(temp + '是奇数')
            break
    else:
        print('输入不正确')
        continue
    count -= 1



最佳答案
2017-5-19 18:29:02
本帖最后由 ButcherRabbit 于 2017-5-19 18:31 编辑

我们来分析一下你这段代码:

print('......判断奇偶数......')
count = 3
while count:    #count = 3 ,2 ,1 while都是会循环
    temp = input('请输入一个整数: ')
    num = int(temp)                     #你这边直接把temp转换为intl类型,假如temp 我们输入的字母,那这语句是会出错的哦
    if 0<num<100:                       #你这边直接限制死了输入的temp如果是数字的话,只能判断是0到100的奇偶数哦
        if num%2 == 0:                  #这边判断偶数,没问题
            print(temp + '是偶数')
            break                              #break 和 continue 一般是跳出循环哦,我们学的循环有哪些?不就是有带while 或for 的么
        else:                                    #这边判断奇数,没问题
            print(temp + '是奇数')
            break                             #break 是直接跳出循环哦,这里我们可以理解为直接跳出while count: 也就是使while循环终止了
    else:                                       #这里你是想判断不是数字,打印。。。(后面说)
        print('输入不正确')
        continue                            #continue是跳出这一次循环,继续下次循环,假如continue 后面跟任何一个函数,这次循环都不会执行哦
    count -= 1                             #用于控制while

我改这个程序,我会用到一个字符串的一个判断字符串里面是否都是数字的.isdigit()
http://bbs.fishc.com/forum.php?m ... peid%26typeid%3D403(不懂看这边哦)

  1. print('......判断奇偶数......')
  2. count = 3
  3. while count:
  4.     temp = input('请输入一个整数: ')
  5.     if temp.isdigit():
  6.         num = int(temp)
  7.         if num%2 == 0:
  8.             print(temp + '是偶数')
  9.         else:
  10.             print(temp + '是奇数')
  11.     else:
  12.         print('输入不正确')
  13.     count -= 1
复制代码

(这个是包含输入非法字符,只有三次循环的)
  1. print('......判断奇偶数......')
  2. count = 3
  3. while count:
  4.     temp = input('请输入一个整数: ')
  5.    
  6.     while True:           #这边是判断是不是输入的是不是数字
  7.         if temp.isdigit():
  8.             break
  9.         else:
  10.             print('输入不正确')
  11.             temp = input('请重新输入一个整数: ')
  12.             
  13.     num = int(temp)
  14.     if num%2 == 0:
  15.         print(temp + '是偶数')
  16.     else:
  17.         print(temp + '是奇数')
  18.     count -= 1
复制代码

(这个是不包含非法输入的三次)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-18 21:48:18 | 显示全部楼层
把break 和continue去掉   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-19 00:38:10 | 显示全部楼层
你想实现怎样的三次?是无论对错都是三次?那你就得把break和continue去掉,如果是数对整数的话执行3次,那就只去掉break。
判断整数可以用内置的函数temp.isdigit()来判断
可以采用type(temp)=type(1)来判断
还可以用try: int(temp)来处理,总之方法很多,自己看着办。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-19 03:23:28 | 显示全部楼层
本帖最后由 yongxi 于 2017-5-19 03:25 编辑

第一 去掉所有的 break 和 continue  它俩一个是终止循环 一个是返回循环, 都会使下面的代码不运行。
第二判断字符串类型,请参考[http://bbs.fishc.com/forum.php?m ... peid%26typeid%3D403这个帖子 有关于处理字符串的内置函数名字 以及用法和说明 如果看说明都不会 请直接百度  pythn 加 内置函数名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-5-19 17:40:24 | 显示全部楼层
这玩意是三次:
for i in range(3):

你那个是判断真假!
count = 3
while count:

用身份运算符(is or is not) 判断它是不是 int类型!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-19 18:29:02 | 显示全部楼层    本楼为最佳答案   
本帖最后由 ButcherRabbit 于 2017-5-19 18:31 编辑

我们来分析一下你这段代码:

print('......判断奇偶数......')
count = 3
while count:    #count = 3 ,2 ,1 while都是会循环
    temp = input('请输入一个整数: ')
    num = int(temp)                     #你这边直接把temp转换为intl类型,假如temp 我们输入的字母,那这语句是会出错的哦
    if 0<num<100:                       #你这边直接限制死了输入的temp如果是数字的话,只能判断是0到100的奇偶数哦
        if num%2 == 0:                  #这边判断偶数,没问题
            print(temp + '是偶数')
            break                              #break 和 continue 一般是跳出循环哦,我们学的循环有哪些?不就是有带while 或for 的么
        else:                                    #这边判断奇数,没问题
            print(temp + '是奇数')
            break                             #break 是直接跳出循环哦,这里我们可以理解为直接跳出while count: 也就是使while循环终止了
    else:                                       #这里你是想判断不是数字,打印。。。(后面说)
        print('输入不正确')
        continue                            #continue是跳出这一次循环,继续下次循环,假如continue 后面跟任何一个函数,这次循环都不会执行哦
    count -= 1                             #用于控制while

我改这个程序,我会用到一个字符串的一个判断字符串里面是否都是数字的.isdigit()
http://bbs.fishc.com/forum.php?m ... peid%26typeid%3D403(不懂看这边哦)

  1. print('......判断奇偶数......')
  2. count = 3
  3. while count:
  4.     temp = input('请输入一个整数: ')
  5.     if temp.isdigit():
  6.         num = int(temp)
  7.         if num%2 == 0:
  8.             print(temp + '是偶数')
  9.         else:
  10.             print(temp + '是奇数')
  11.     else:
  12.         print('输入不正确')
  13.     count -= 1
复制代码

(这个是包含输入非法字符,只有三次循环的)
  1. print('......判断奇偶数......')
  2. count = 3
  3. while count:
  4.     temp = input('请输入一个整数: ')
  5.    
  6.     while True:           #这边是判断是不是输入的是不是数字
  7.         if temp.isdigit():
  8.             break
  9.         else:
  10.             print('输入不正确')
  11.             temp = input('请重新输入一个整数: ')
  12.             
  13.     num = int(temp)
  14.     if num%2 == 0:
  15.         print(temp + '是偶数')
  16.     else:
  17.         print(temp + '是奇数')
  18.     count -= 1
复制代码

(这个是不包含非法输入的三次)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-5-19 18:35:16 | 显示全部楼层
我写了一个: 查了下度娘!
  1. print("---判断奇偶数---")
  2. for i in range(3):#输入3次
  3.     while True:#判断是否是整数
  4.         try:
  5.             temp = input("请输入一个 1 - 100 的整数:")
  6.             temp = int(temp)
  7.             break
  8.         except ValueError:
  9.             print("您输入的不是整数")

  10.     if 0 < temp < 100:
  11.         if temp%2 == 0:#判断是否是偶数
  12.             print(str(temp) + "是偶数")
  13.         else:#判断是否是奇数
  14.             print(str(temp) + "是奇数")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-20 14:49:51 | 显示全部楼层
ButcherRabbit 发表于 2017-5-19 18:29
我们来分析一下你这段代码:

print('......判断奇偶数......')

看明白了,非常感谢你的详细解释,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-20 14:51:41 | 显示全部楼层
路人甲一 发表于 2017-5-19 18:35
我写了一个: 查了下度娘!

谢谢的解答,不过目前关于try的用法目前看不明白,还在继续学习中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-20 14:52:02 | 显示全部楼层
yongxi 发表于 2017-5-19 03:23
第一 去掉所有的 break 和 continue  它俩一个是终止循环 一个是返回循环, 都会使下面的代码不运行。
第 ...

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

使用道具 举报

 楼主| 发表于 2017-5-20 14:55:53 | 显示全部楼层
zxszx4 发表于 2017-5-19 00:38
你想实现怎样的三次?是无论对错都是三次?那你就得把break和continue去掉,如果是数对整数的话执行3次,那 ...

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

使用道具 举报

 楼主| 发表于 2017-5-20 14:56:17 | 显示全部楼层
xinyishuihan 发表于 2017-5-18 21:48
把break 和continue去掉

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

使用道具 举报

 楼主| 发表于 2017-5-20 14:57:42 | 显示全部楼层
zxszx4 发表于 2017-5-19 00:38
你想实现怎样的三次?是无论对错都是三次?那你就得把break和continue去掉,如果是数对整数的话执行3次,那 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 10:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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