z714654918 发表于 2021-12-5 17:57:24

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

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你是要看烟花?")
{:10_249:}

jackz007 发表于 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>

z714654918 发表于 2021-12-6 09:48:24

jackz007 发表于 2021-12-5 18:26
运行实况:

可以,不过有一个小区别,负数的回答不一样了

jackz007 发表于 2021-12-6 09:54:51

本帖最后由 jackz007 于 2021-12-6 10:00 编辑

z714654918 发表于 2021-12-6 09:48
可以,不过有一个小区别,负数的回答不一样了

      那是因为你的代码使用了字符串的 isdigit() 方法来判定数字,而 isdigit() 方法没有将负数纳入数字的范畴,从而导致在输入负值的时候,会被判定为输入了非数字,很显然,这是误判,所以,判断数字用 isdigit() 不是一个好主意。

z714654918 发表于 2021-12-6 11:56:42

jackz007 发表于 2021-12-6 09:54
那是因为你的代码使用了字符串的 isdigit() 方法来判定数字,而 isdigit() 方法没有将负数纳入数 ...

小数负数都不让输,感觉跟输字母一样捣乱,或者转int取正,数字大了情有可原,
页: [1]
查看完整版本: 005课改的之前作业,初始输入0,怎么放进循环里,,再复制一遍?