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: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> jackz007 发表于 2021-12-5 18:26
运行实况:
可以,不过有一个小区别,负数的回答不一样了 本帖最后由 jackz007 于 2021-12-6 10:00 编辑
z714654918 发表于 2021-12-6 09:48
可以,不过有一个小区别,负数的回答不一样了
那是因为你的代码使用了字符串的 isdigit() 方法来判定数字,而 isdigit() 方法没有将负数纳入数字的范畴,从而导致在输入负值的时候,会被判定为输入了非数字,很显然,这是误判,所以,判断数字用 isdigit() 不是一个好主意。 jackz007 发表于 2021-12-6 09:54
那是因为你的代码使用了字符串的 isdigit() 方法来判定数字,而 isdigit() 方法没有将负数纳入数 ...
小数负数都不让输,感觉跟输字母一样捣乱,或者转int取正,数字大了情有可原,
页:
[1]