新程序员:循环和循环(python)

时间:2015-10-19 11:46:30

标签: python loops

我是一名新程序员,我在理解循环和循环方面遇到了很多麻烦。在什么情况下我会知道使用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]是什么意思??

2 个答案:

答案 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

字符串和索引:

  • 变量 s 包含string值。您可能已经注意到,它已作为every_nth_character( s ,n)函数的参数提交。
  • 现在字符串中的每个字母都在某个位置,该位置称为索引。索引从0开始。因此,如果我们有一个字符串 s 包含值'foo123',那么它的第一个字符 s [0] 是' f '和最后一个字符 s [5] = 3
  • 可以使用索引字段中的“”剪切和切片字符串。参考前面的示例,我们确定了字符串 s 。现在,您只能使用 s [:3] 来获取该字符串的前三个字符,并获得'foo'作为结果。详细了解here

<强>循环:

  • while和for循环一次又一次地重复,直到达到你已经确定的极限。
  • 例如:

    x = 0 while x < 5: print x x = x + 1

    打印0到4之间的数字。变量x在每次运行时增加+1,当x达到值5时循环结束。

熟悉Python文档页面,它将在未来帮助你很多,特别是在基本的东西。谷歌搜索: Python (你的python版本)文档