Python将变量值添加到具有按范围循环的列表中
我有下一个代码:Python将变量值添加到具有按范围循环的列表中,python,list,python-2.7,Python,List,Python 2.7,我有下一个代码: a = int(raw_input()) b = int(raw_input()) c = int(raw_input()) mylist = [] for i in range(a, c): mylist.append(i) print mylist 但通过这种方式,我只得到列表中的2个元素。 如果我使用范围(a,d)我将得到一个错误名称错误:名称“d”未定义 我需要将a、b和c的值添加到带有循环的mylist中。我想您可能需要: a = int(raw_in
a = int(raw_input())
b = int(raw_input())
c = int(raw_input())
mylist = []
for i in range(a, c):
mylist.append(i)
print mylist
但通过这种方式,我只得到列表中的2个元素。
如果我使用范围(a,d)
我将得到一个错误名称错误:名称“d”未定义
我需要将a、b和c的值添加到带有循环的mylist中。我想您可能需要:
a = int(raw_input())
b = int(raw_input())
c = int(raw_input())
mylist = []
for i in [a, b, c]:
mylist.append(i)
print mylist
为什么要做这样的事
for i in range(a, c):
mylist.append(i)
相反,要:
mylist = range(a, c)
现在你的评论澄清了这个问题 要在字符和数字之间切换,请使用
ord
和chr
。请注意您给变量的名称和它的值之间的差异
e、 g
Python范围从0开始,因此
范围(a,c)
不考虑c。你应该给出范围(3)
你希望这段代码具体做什么?@sloth:我相信OP想要使用for
循环打印a、b和c。但是由于他使用的是range(a,c)
,所以他的代码不会打印c
。range(a,c)
当两个参数都是int
时,程序员会创建一个从a
到c-1
的列表,所以c
会考虑在内,就像sloth说的,不清楚OP想要什么。你为什么要尝试range(a,d)
?在你的问题中,我看不到任何名为d
d的东西-也许这就是为什么python说NameError:名称“d”没有定义
我不明白你是如何得出结论,这就是OP想要的。@KobiK我想这是OP非常清楚的想法,否则他可能不会尝试range(a,d)
+1@tobias_k你也可以说他想要的是a->d
的整个范围,而不是像上面的答案那样只a、b、c、
。我很感激你为帮助我所做的努力,但对我来说,我认为最好先从OP那里得到一个明确的问题,然后给出一个答案:)。@KobiK是的,OP已经得到-3了。这个问题确实不清楚。我认为等待OP的回应是最好的选择。我的答案是,我认为这个问题最好。mylist=[a,b,c]
会更快。
def letters(start, end):
begin = ord(start)
end = ord(end)
for item in range(begin, end):
yield chr(item)
>>> for item in letters('a', 'd'):
... print item
...
a
b
c