Я практикуюсь с циклами for in и у меня проблемы с этим.

places = ["phuket", "athens", "doha"]

for places in range(5):
    if places == 0:
        print("thailand," + places 0 + "is a cool place")
    else:
        print("not thailand")

Когда я пытаюсь это сделать, я получаю синтаксическую ошибку с «метками 0». Хочу напечатать таиланд, пхукет, классное место. Но независимо от того, как я форматирую места 0 (с 0 в [], с ним в ()) я просто продолжаю получать синтаксические ошибки.

0
Steve 4 Фев 2022 в 11:31
Используйте places[0] и назовите свою переменную цикла for иначе, чем places, чтобы у вас не было конфликтующих имен, например: for i in range(5) является более стандартным соглашением об именах.
 – 
Nick Parsons
4 Фев 2022 в 11:43
Это сработало, спасибо, Ник. Можете ли вы представить это как ответ, чтобы я мог его одобрить?
 – 
Steve
4 Фев 2022 в 11:48
Не беспокойтесь, ваш ответ ниже выглядит хорошо для меня :)
 – 
Nick Parsons
4 Фев 2022 в 11:54

5 ответов

Лучший ответ

Если вы используете перечисление, вы можете получить индекс цикла for. i будет 0, 1, 2, а место будет пхукет, афины, доха. И вы можете использовать другую логику в зависимости от того, что вы хотите.

places = ["phuket", "athens", "doha"]

for i,place in enumerate(places):
    if i == 0:
        print("thailand," + place + "is a cool place")
    else:
        print("not thailand")

Вы можете узнать больше здесь - https://realpython.com/python-enumerate/

1
Andrej Korjakin 4 Фев 2022 в 11:49

Используйте places[0] и назовите свою переменную цикла for иначе, чем place, чтобы у вас не было конфликтующих имен, например: for i in range(5) является более стандартным соглашением об именах – - Ник Парсонс. Это был правильный ответ:

places = ["phuket", "athens", "doha"]

for index in range(5):
    if index == 0:
        print("thailand, " + places[0] + "is a cool place")
    else:
        print("not thailand")
2
Nick Parsons 4 Фев 2022 в 11:52

Вам нужно будет использовать список places в цикле for, а также использовать правильный синтаксис для проверки условия if:

places = ["phuket", "athens", "doha"]

for place in places:
    if place == "phuket":
        print("thailand, " + place + " is a cool place")
    else:
        print("not thailand")
1
Anurag Srivastava 4 Фев 2022 в 11:42

Когда вы используете это для синтаксиса, он возвращает значение, а не индекс, поэтому ваш тест должен быть

if place == "phuket":
  
0
Kendle 4 Фев 2022 в 11:52
Это неверно, когда вы используете for places in range(5):, places является «индексом», а не значением. Кажется, вы думаете о for place in places: ?
 – 
Nick Parsons
4 Фев 2022 в 11:45
Правильно, но я хочу построить его не так, чтобы он конкретно ссылался на «пхукет», а на любые места [0]
 – 
Steve
4 Фев 2022 в 11:46
Итак, если places[0]=="London", что вы хотите напечатать? Откуда берется текст для печати? Или вы хотите проверить, есть ли в местах Пхукет.
 – 
Kendle
4 Фев 2022 в 11:48

Ниже приведены два простейших метода, которые могут легко решить вашу проблему:

Первый метод

enter image description here

Второй метод

enter image description here

0
Sunil 4 Фев 2022 в 12:09