如何使我的Python代码更紧凑?
任何帮助都会变得非常有用
print("Welcome to my program")
# This program tells if a number form 1 - 10 is even or odd
try:
del_number = int(input("Input a number 1 - 10: "))
if del_number == 2 or del_number == 4 or del_number == 6 or del_number == 8 or del_number == 10:
print("The number you have entered is an even number")
elif del_number > 10:
print("Not a valid number")
else:
print("The number you have entered is a odd number")
except:
print("You have entered a letter/letters not a number 1 - 10")发布于 2020-06-25 04:27:02
您可以缩短偶数检查
print("Welcome to my program")
# This program tells if a number form 1 - 10 is even or odd
try:
del_number = int(input("Input a number 1 - 10: "))
if del_number in (2 , 4, 6, 8, 10):
print("The number you have entered is an even number")
elif del_number > 10:
print("Not a valid number")
else:
print("The number you have entered is a odd number")
except ValueError:
print("You have entered a letter/letters not a number 1 - 10")或者使用低位来决定偶数/奇数(也许还可以从列表中选择名称)
print("Welcome to my program")
# This program tells if a number form 1 - 10 is even or odd
try:
del_number = int(input("Input a number 1 - 10: "))
if not 1 < del_number <= 10:
print("Not a valid number")
else:
category = ["even", "odd"][del_number & 1]
print(f"The number you have entered is a {category} number")
except ValueError:
print("You have entered a letter/letters not a number 1 - 10")考虑到这一点,您可以将异常处理限制为整数转换本身,以减少在以后的代码中意外屏蔽错误的机会。假设后面的测试中的错误也引发了一个ValueError。直到现场传来愤怒的报告你才会知道。
print("Welcome to my program")
# This program tells if a number form 1 - 10 is even or odd
try:
del_number = int(input("Input a number 1 - 10: "))
except ValueError:
print("You have entered a letter/letters not a number 1 - 10")
else:
if not 1 < del_number <= 10:
print("Not a valid number")
else:
category = ["even", "odd"][del_number & 1]
print(f"The number you have entered is a {category} number")发布于 2020-06-25 04:24:25
你可以使用模运算符%来代替这么多串联的or。有关操作器的信息,请参阅here。
下面是要替换的代码行:
if del_number == 2 or del_number == 4 or del_number == 6 or del_number == 8 or del_number == 10:这将是替代方案:
elif del_number % 2 == 0:将if更改为elif的原因是,我们首先希望确保数字为<= 10。因此,我们的第一个条件if将测试数字是否为> 10。如果它通过了这个标准,那么就会出现带有模运算符的elif部分。总之:
try:
del_number = int(input("Input a number 1 - 10: "))
if del_number > 10 or del_number < 0:
print("Not a valid number")
elif del_number % 2 == 0:
print("The number you have entered is an even number")
else:
print("The number you have entered is a odd number")
except:
print("You have entered a letter/letters not a number 1 - 10")发布于 2020-06-25 04:29:00
你可以使它紧凑
if del_number in [2, 4, 6, 8, 10]:
print("The number you have entered is an even number")或
if del_number % 2 == 0:
print("The number you have entered is an even number")如果你想检查del_number是偶数还是奇数
https://stackoverflow.com/questions/62563461
复制相似问题