Python序列示例

时间:2016-11-16 00:40:32

标签: python sequences

我正在学习Python,我们正在学习关于序列的课程,我们已经给出了这个示例代码,但我有一些关于它的问题;

word = input("Word? ")
letter = input("Letter? ")
i = 0
found = False
while not found and i != len(word):
    found = word[i] == letter
    i = i + 1
if found :
    print("letter ", letter, " found in word ", word, " at position ", i -1)
else:
    print("letter ", letter, " not found in word ", word)
  1. 在找到的行上发生了什么= word [i] == letter

  2. 为什么print语句会在i-1

  3. 中找到一封信

    我对此非常陌生,所以如果你能为ELI5提供非常有帮助的话。 谢谢你提前。

3 个答案:

答案 0 :(得分:0)

  1. 如果程序正在查看的字母(word[i])等于letter,则布尔变量found变为true,否则,循环将一直持续到单词的结尾或直到找到letter

  2. 由于i已在其上方while循环中增加,因此无论是否找到letter

答案 1 :(得分:0)

欢迎使用python。回答你的问题:

  1. 此语句将found分配给比较的值 在word[i]letter之间。换句话说,found需要 问题答案的boolean值:

    "is `word[i]` equal to `letter`?"
    
  2. 您使用i-1代替i,因为不会阻止循环 即使在找到它时也会递增i

答案 2 :(得分:0)

  1. False:正如您所看到的,在之前的一点中 您将found设置为word[i] == letter的程序。这种类型的变量是 通常称为"布尔标志"。在你的for循环中,值的 word设置为布尔表达式i,其中 用简单的英语表示:如果索引为letter的{​​{1}}的值为 等于变量found的值返回true,否则返回true 返回false

  2. 在print语句中,当布尔标志>>> string = "string" >>> string[0] # what is the value of the character at postion zero? 's' >>> string[1] # what is the value of the character at postion one? 't' >>> etc.. (见上面的答案)为真时,它将打印匹配发生的索引。您可能已经了解到,每个字符串中的每个字符都有特定的索引。例如

    {{1}}