我是一名新程序员,我在理解循环和循环方面遇到了很多麻烦。在什么情况下我会知道使用for循环以及在什么情况下我会知道使用while循环?
另外,你能告诉我这两个代码是什么意思吗?我有很多困惑。
1功能:
def every_nth_character(s, n):
""" (str, int) -> str
Precondition: n > 0
Return a string that contains every nth character from s, starting at index 0.
>>> every_nth_character('Computer Science', 3)
'CpeSee'
"""
result = ''
i = 0
while i < len(s):
result = result + s[i]
i = i + n
return result
**** s [i]是什么意思?****
第二功能:
def find_letter_n_times(s, letter, n):
""" (str, str, int) -> str
Precondition: letter occurs at least n times in s
Return the smallest substring of s starting from index 0 that contains
n occurrences of letter.
>>> find_letter_n_times('Computer Science', 'e', 2)
'Computer Scie'
"""
i = 0
count = 0
while count < n:
if s[i] == letter:
count = count + 1
i = i + 1
return s[:i]
s [i]和s [:i]是什么意思??
答案 0 :(得分:1)
S是一个字符列表'计算机科学'[“C”,“o”,“m”,“p”...],我是列表S中每个项目/字符的索引位置,所以在你的情况下你已经声明你的循环计算S中的每个第三(3)项,只要S中有项目,即S [i] = [C],S [i] = [p],S = [e],S [i] = C,S [i] = p,其中i是S中的每个第三个元素。 在第二种情况下,您已将i定义为值为0的变量,在每个循环后i增加+1,i = i + 1,[:i]表示返回S中的元素直到最新的循环切片,例如“计算机科学”+一个额外的循环将给你“计算机科学”(i = 9(S中当前S /数字循环字符的范围) - &gt; i + 1(增加+1) - &gt; i = 10 (i = 10,S [i] = 10表示S中的前10个索引位置/字符]
答案 1 :(得分:0)
关于 和 循环中的差异的第一个问题已完全回答here。
字符串和索引:
<强>循环:强>
例如:
x = 0
while x < 5:
print x
x = x + 1
打印0到4之间的数字。变量x在每次运行时增加+1,当x达到值5时循环结束。
熟悉Python文档页面,它将在未来帮助你很多,特别是在基本的东西。谷歌搜索: Python (你的python版本)文档