【问题标题】:Python while loop with stringPython while循环与字符串
【发布时间】:2015-03-25 19:17:44
【问题描述】:
string = "Northeastern Africa"
myString = string.lower()
index = 0
num_index = int(index)

length = len(myString)
num_length = int(length)
num_length = num_length - 1

while myString[num_index] >=  myString[18]:
    print(num_index)
    print(num_length)
    print(myString[num_index])
    print(num_index)
    num_index = num_index +1
    print(myString[0:num_index])
    print(" ")

为什么它只打印“northeastern”并停在下一个空格?如何让它通过完整的字符串而不停留在两个单词之间的空格?

【问题讨论】:

  • 这里的myString 是什么?
  • indexlength 已经是整数。无需再次将它们转换为整数。
  • 如果您的字符串确实以大写字母 N 开头,您的代码将无法按照您声明的方式运行。你确定它不是以n(小写)开头的吗?
  • @MartijnPieters 你知道他一开始想做什么吗?
  • 抱歉,myString = string.lower()

标签: python string loops while-loop


【解决方案1】:

您的while 循环将每个字符与最后一个字符a 进行比较,当发现不等于或大于a 的字符时停止。您的代码停在空格处,因为后者在 ASCII 表中的位置是 32:

>>> ' ' < 'a'
True
>>> ord(' ')
32
>>> ord('a')
97

您可能想创建一个比较 num_indexnum_length 的循环:

while num_index <= num_length:

如果您想遍历字符串中的所有字符,只需使用for 循环:

for character in myString:
    print(character)

可以使用enumerate()函数添加索引:

for index, character in enumerate(myString):
    print(index, character, sep=': ')
    print(myString[:index])

【讨论】:

  • 好的,我想做的是创建一个循环来计算字符串中的元音。这就是为什么我想一个字母一个字母地往下走。
  • @user3294540:然后只需使用简单的for 循环并计算您的元音! if character in 'aeiou':.
【解决方案2】:

因为myString[num_index] 值是空格 检查这个..

>>> " ">="a"
False

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 2019-02-20
    • 2013-09-09
    • 2015-12-15
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多