在下面的代码中,Python如何知道单独打印每个字母?我真的无法绕过它。
for letter in 'Python':
print 'Current Letter :', letter
它知道将字符串'Python'分成6个单独的字符串。它是如何做到的?
答案 0 :(得分:0)
字符串是单个字符串的sequence。因此,当您迭代它时,您将获得序列中的每个单字符串。您还可以按照其他序列类型使用索引和切片操作。
答案 1 :(得分:0)
Python如何做到这一点?就这样:
>>> import dis
>>> def f(text):
... for letter in text:
... print(letter)
...
>>> dis.dis(f)
2 0 SETUP_LOOP 24 (to 27)
3 LOAD_FAST 0 (text)
6 GET_ITER
>> 7 FOR_ITER 16 (to 26)
10 STORE_FAST 1 (letter)
3 13 LOAD_GLOBAL 0 (print)
16 LOAD_FAST 1 (letter)
19 CALL_FUNCTION 1 (1 positional, 0 keyword pair)
22 POP_TOP
23 JUMP_ABSOLUTE 7
>> 26 POP_BLOCK
>> 27 LOAD_CONST 0 (None)
30 RETURN_VALUE
然而,这里的重要教训就是迭代序列(如字符串)或其他迭代允许您使用每个可迭代的元素(在这种情况下为单个字符)。
答案 2 :(得分:0)
让我思考这个问题的最简单方法是记住“'字母”字样。很容易被你想要称之为的任何东西取代,它只是一个占位符。
为了说明,我们来代替字母'在你的循环中使用名称' Dave'。
for Dave in 'Python':
print 'Current letter : ', Dave
没有'戴夫'在字符串Python中。但是这仍将打印出字符串' Python中的每个字母。这是因为当你设置你的循环迭代一个字符串时,正如你在这里所做的那样,你告诉python,无论你想要它做什么,在这种情况下打印',都需要完成字符串中的每个项目。
for stuff in 'my_string':
do stuff to every letter in my_string
此外,由于您是StackExchange的新手,欢迎使用。由于要回答的问题太多,为了节省每个人的时间,如果您在此处发布问题之前进行了非常彻底的谷歌搜索,以确定答案是否存在,那么效果最佳。我确信有很多好的资源可以帮助你理解这些概念!祝你好运。