Какова логика (‘ str (i) ‘)?

#python

#python

Вопрос:

Я новичок в программировании и нажимаю на эту строку:

 print('My name is')
for i in range(5):
   print('Jimmy Five Times ('   str(i)   ')')
 

Я не понимаю эту часть (‘ str(i) ‘)’), если быть более конкретным, знак до и после str(i) [особенно знак после str(i)] .

Я знаю, что знак предназначен для конкатенации строк, но в приведенной выше строке что с чем сочетается?

И в чем разница между первым примером и, скажем:

 print('My name is')
for i in range(5):
    print('Jimmy five times '   str(i))
 

Может кто-нибудь привести пример для аналогичного, но сложного примера для такого использования?

Спасибо.

редактировать: я понял, что строка Jimmy пять раз ( , а не Jimmy пять раз, что левая и правая скобки меня смутили. Спасибо всем за ваши быстрые ответы.

Комментарии:

1. Вы сравнили результаты обоих ваших примеров? Это должно рассказать вам все, что вам нужно знать.

2. В первом примере объединены 3 строки: (1) 'Jimmy Five Times (' , (2) str(i) и (3) ')' . Также лучший способ написать это print(f'Jimmy Five Times ({i})') и вообще не использовать конкатенацию строк.

3. Альтернативой может быть f-строка, например print(f'Jimmy Five Times ({i})') , где {i} python указывает заменить текущее значение i в этой позиции строки.

4. и если вы решили ее, пожалуйста, отметьте один из принятых ответов (щелкнув галочку) или опубликуйте свой собственный ответ.

Ответ №1:

конкатенирует строки или, если операнды являются числами, добавляет их. Здесь вам нужно сделать str(i) , потому что if i не является строкой, тогда python пытается добавить их как целые числа, что невозможно. И окончание ')' добавит закрывающие круглые скобки к строке, а второй пример не добавляет круглые скобки. Посмотрите сами, первый будет:

 My name is
Jimmy Five Times (0)
Jimmy Five Times (1)
Jimmy Five Times (2)
Jimmy Five Times (3)
Jimmy Five Times (4)
 

И второй:

 My name is
Jimmy five times 0
Jimmy five times 1
Jimmy five times 2
Jimmy five times 3
Jimmy five times 4
 

Ответ №2:

Знак в контексте строк используется для конкатенации строк.

В частности, в этом примере операнд не определен для string и int ( i является целым числом), поэтому сначала вам нужно преобразовать его в string by str(i) , а затем вы можете связаться со строками.

Ответ №3:

Объяснение

Знак в контексте строк используется для конкатенации строк.

В частности, в этом примере операнд не определен для string и int (i — целое число), поэтому сначала вам нужно преобразовать его в string by str(i) , а затем вы можете связаться со строками.

Вывод

Вывод первого:

 My name is
Jimmy Five Times (0)
Jimmy Five Times (1)
Jimmy Five Times (2)
Jimmy Five Times (3)
Jimmy Five Times (4)
 

И вывод второго:

 My name is
Jimmy five times 0
Jimmy five times 1
Jimmy five times 2
Jimmy five times 3
Jimmy five times 4
 

Лучшие решения

использование f' строк python 3.6 up

 print(f'Jimmy Five Times ({i})')
 

использование .format

 print('My name is')
for i in range(5):
   print('Jimmy Five Times ({0})'.format(i))
 

Ответ №4:

Для первого упомянутого кода первая строка ‘Jimmy Five Times (‘ объединяется с str(i) , а затем она str(i) дополнительно объединяется с ‘)’, поэтому конечный результат :

 Jimmy Five Times (0)
Jimmy Five Times (1)
Jimmy Five Times (2)
Jimmy Five Times (3)
Jimmy Five Times (4)