所以,我自学了一些关于蟒蛇的知识,我已经读了大约两天的“范围”,但我似乎不知道如何解决这个问题:
我想写一个程序,在问了一些问题之后,在给定的范围内打印出一个偶数的列表.
问题如下:
所以我就这样开始了:
def main():
numbers = int(input("How many numbers are in the list: "))
lowest = int(input("Please enter the lowest range value to start with: "))
highest = int(input("Please enter the highest range value to end with: "))
for i in range (lowest, highest+2, 2):
print (i)
main ()
我知道这是错误的,数字变量什么也不做,因为我没有分配它去做任何事情。也许还有一些其他的东西
从本质上讲,我想让这个项目做的是:
打印出的应该是2,4,6,8,10,12 -总共6个数字输入从最低到最高的数值选择。
同样,如果信息输入是
我希望返回一些错误,因为用户超过了数字长度,因为选择是5。
发布于 2014-05-01 23:07:10
def main():
numbers = int(input("How many numbers are in the list "))
lowest = int(input("Please enter the lowest range value to start with: "))
highest = int(input("Please enter the highest range value to end with "))
if (highest+2 - lowest)/2 == numbers:
for i in range (lowest,highest+2,2 ):
print (i)
else:
print ('no coinciden los numeros, vuelve a intentarlo')
main ()
这个有用吗?
发布于 2014-05-01 23:02:50
如果要在用户输入不一致的输入时抛出错误(即所请求的数字与范围内的预期数字不匹配),则可以进行显式检查,如果检查未通过,则可以使用exit
进行错误检查。
from sys import exit
def main():
numbers = int(input("How many numbers are in the list "))
lowest = int(input("Please enter the lowest range value to start with: "))
highest = int(input("Please enter the highest range value to end with "))
if len(range (lowest,highest+2,2 )) != numbers:
print("The number of numbers requested is unexpected!")
exit(1)
for i in range (lowest,highest+2,2 ):
print (i)
main ()
发布于 2014-05-01 23:32:21
如果您对神秘版本感兴趣,请看下面的内容:
limit = 4
min_val = 3
max_val = 22
# output: 4, 6, 8, 10
print(
", ".join(
str(j) for i, j in
enumerate(
range(
min_val + (0 if min_val % 2 == 0 else 1),
max_val + 2,
2
)
)
if i < limit
)
)
高尔夫可以打到一条线上:
print(", ".join(str(j)for i,j in enumerate(range(min_val+(0if min_val%2==0 else 1),max_val+2,2))if i<limit))
它从min_val
开始(如果它是奇数,则为偶数),以max_val
结尾,除非更早到达最大计数limit
。对数字使用生成器表达式,并将其连接到字符串,其中的元素由,
分隔。
使用常规的for-循环来减少隐秘性:
limit = 4
min_val = 3
max_val = 22
if min_val % 2 != 0:
min_val += 1
for i, j in enumerate(range(min_val, max_val + 2, 2)):
if i >= limit:
break
print(j)
https://stackoverflow.com/questions/23418081
复制相似问题