鱼C论坛

 找回密码
 立即注册
查看: 1364|回复: 4

[已解决]005课改的之前作业,初始输入0,怎么放进循环里,,再复制一遍?

[复制链接]
发表于 2021-12-5 17:57:24 | 显示全部楼层 |阅读模式

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

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

x
print("星星射线")
shuzi = input("请输入一个整数(1-16)\n")
guess=int(shuzi)
if guess!=0:
    while guess!=0:
        if shuzi.isdigit() and guess>0:
            guess=int(shuzi)
            if guess<=16:
                while guess>0:
                    print(" "*guess+"*"*guess)
                    guess = guess-1
            else:
                print("数字大了,我怕卡")
                shuzi = input("请输入一个整数(1-16)\n")
        else:
            print("你看看你都干了些啥")
            shuzi=input("再给你一次机会,别毁了这个家\n请输入一个整数(1-16)\n")
    else:
        print("结束啦")
else:
    print("输个0你是要看烟花?")
最佳答案
2021-12-5 18:26:43
本帖最后由 jackz007 于 2021-12-5 18:32 编辑
print("星星射线")
while True:
    shuzi = input("请输入一个整数(1 - 16) : ")
    try:
        guess = int(shuzi)
        if 0 < guess < 17:
            for x in range(guess , 0 , -1):
                print(' ' * (x - 1) + '*' * x)
            break
        else:
            print("输个 0 你是要看烟花?") if guess == 0 else print("数字大了,我怕卡")
    except:
        print("你看看你都干了些啥")
        print("再给你一次机会,别毁了这个家")
print("结束啦")
        运行实况:
D:\00.Excise\Python>python x.py
星星射线
请输入一个整数(1 - 16) : 22
数字大了,我怕卡
请输入一个整数(1 - 16) : 17
数字大了,我怕卡
请输入一个整数(1 - 16) : 0
输个0你是要看烟花?
请输入一个整数(1 - 16) : aq
你看看你都干了些啥
再给你一次机会,别毁了这个家
请输入一个整数(1 - 16) : 12
           ************
          ***********
         **********
        *********
       ********
      *******
     ******
    *****
   ****
  ***
 **
*
结束啦

D:\00.Excise\Python>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-5 18:26:43 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2021-12-5 18:32 编辑
print("星星射线")
while True:
    shuzi = input("请输入一个整数(1 - 16) : ")
    try:
        guess = int(shuzi)
        if 0 < guess < 17:
            for x in range(guess , 0 , -1):
                print(' ' * (x - 1) + '*' * x)
            break
        else:
            print("输个 0 你是要看烟花?") if guess == 0 else print("数字大了,我怕卡")
    except:
        print("你看看你都干了些啥")
        print("再给你一次机会,别毁了这个家")
print("结束啦")
        运行实况:
D:\00.Excise\Python>python x.py
星星射线
请输入一个整数(1 - 16) : 22
数字大了,我怕卡
请输入一个整数(1 - 16) : 17
数字大了,我怕卡
请输入一个整数(1 - 16) : 0
输个0你是要看烟花?
请输入一个整数(1 - 16) : aq
你看看你都干了些啥
再给你一次机会,别毁了这个家
请输入一个整数(1 - 16) : 12
           ************
          ***********
         **********
        *********
       ********
      *******
     ******
    *****
   ****
  ***
 **
*
结束啦

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

使用道具 举报

 楼主| 发表于 2021-12-6 09:48:24 | 显示全部楼层

可以,不过有一个小区别,负数的回答不一样了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-6 09:54:51 | 显示全部楼层
本帖最后由 jackz007 于 2021-12-6 10:00 编辑
z714654918 发表于 2021-12-6 09:48
可以,不过有一个小区别,负数的回答不一样了


      那是因为你的代码使用了字符串的 isdigit() 方法来判定数字,而 isdigit() 方法没有将负数纳入数字的范畴,从而导致在输入负值的时候,会被判定为输入了非数字,很显然,这是误判,所以,判断数字用 isdigit() 不是一个好主意。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-6 11:56:42 | 显示全部楼层
jackz007 发表于 2021-12-6 09:54
那是因为你的代码使用了字符串的 isdigit() 方法来判定数字,而 isdigit() 方法没有将负数纳入数 ...

小数负数都不让输,感觉跟输字母一样捣乱,或者转int取正,数字大了情有可原,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 17:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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