Как циклы for работают со строковыми значениями в python? - PullRequest
0 голосов
/ 03 октября 2019

Я запутался в работе с циклами со строками.

s=input("enter a lowercase word")

counter = 0

n=0

for var in s:
    letter = s[n:var+1]

if letter == 'a' or letter == 'e' or letter == 'i' or letter == 'o' or letter == 'u':

    counter += 1

n += 1 

print('Number of vowels:', counter)

  iteration = 0

count = 0

   while iteration < 5:

      for letter in "hello, world":

      count += 1

   print("Iteration " + str(iteration) + "; count is: " + str(count))

   iteration += 1

1-й код выдает ошибку "TypeError: объект 'str' не может быть интерпретирован как целое число", поскольку2-й код работает нормально. Я подумал, что строка для цикла подсчитывается следующим образом: переменная в «apple» была эквивалентна переменной for в диапазоне (5), а 0 был связан с a, от 1 до p, от 2 до p, от 3 до l и от 4 до e. Разве это не так?

1 Ответ

1 голос
/ 03 октября 2019

Я думал, что строка для цикла подсчитывается следующим образом: переменная в «apple» была эквивалентна переменной в диапазоне (5), а 0 был связан с a, от 1 до p, от 2 до p, от 3 до lи 4 к эл. Разве это не так?

Нет, for var in "apple" работает как «a», «p», «p», «l», «e». Так что ваш код с letter = s[n:var+1] не будет работать.

s=input("enter a lowercase word")

counter = 0

for letter in s:
    if letter == 'a' or letter == 'e' or letter == 'i' or letter == 'o' or letter == 'u':
        counter += 1

print('Number of vowels:', counter)

Если вам также нужен номер (например, 0, «a», 1, «p», 2, «p» и т. Д.), Используйте enumerate():

for idx, var in enumerate("apple"):
    print(idx, var)

0 a
1 p
2 p
3 l
4 e
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...