Сегодня я расскажу историю о моей ошибке копирования и вставки и о том, как строка с завершающей запятой соединилась и стала Tuple() в моей программе на Python. Как ни странно, я не знал об этой концепции до того, как совершил эту ошибку.
Итак, давайте начнем с быстрого изучения строк и кортежей в Python.
Определение: Последовательность символов, используемая для хранения текста и управления им.
Синтаксис: Заключен в одинарные кавычки ' ', двойные кавычки " " или тройные кавычки ''' '''/""" """.
Неизменяемость: Строки не могут быть изменены после создания.
# Example mystring = "Hello, World!" print(type(mystring)) #Output:mystring2 =str() print(type(mystring2)) #Output:
Определение: Неизменяемая последовательность значений.
Синтаксис: Определяется круглыми скобками ( ), разделенными запятыми.
Неизменяемость: После создания элементы нельзя изменить.
# Example mytuple = (1,2) print(type(mytuple)) #Output:mytuple2 =tuple() print(type(mytuple2)) #Output:
Теперь мы знаем о строке и кортеже, а также о том, как получить переменную типа строки или кортежа, используя либо прямое присвоение, либо классовый подход с использованием конструктора. Но у меня другая история :).
В операторе Python не требуется точка с запятой (;), запятая (,) или любой другой закрывающий символ (пробел используется для обработки блока), поэтому вы можете закончить завершающую запятую строкой типа «Аджит Кумар», потому что часто вы копируете строковый элемент из списка словаря и часто заканчиваете запятой. Вот что случилось со мной, и тогда история стала интересной.
Итак, сначала приведу пример моей конструкции.
mymistake = "Ajit Kumar", print(type(mymistake)) #Output :
Теперь следует обратить внимание на две вещи:
1) Интерпретатор Python не выдаст никаких ошибок из-за завершающей запятой строки «mymistake», иначе ошибка не будет развиваться дальше.
2) Тип переменной стал «кортеж», в отличие от первоначального намерения создать строковую переменную mymistake.
Я написал здесь, и это кажется очень простым и простым, но на отладку этой ошибки ушёл час, потому что я передавал строку в качестве аргумента методу, и ошибки были странными, и я продолжаю работать над методом и пытаюсь понять сообщение об ошибке. Например, сообщение было таким: переменная name не имеет метода low().
Если вы используете запятую без круглых скобок, Python воспринимает ее как кортеж.
Пример: mymistake = "Аджит Кумар", создает кортеж ("Аджит Кумар",).
Итак, если вы хотите создать кортеж, содержащий только элемент/элемент, вам нужно быть очень осторожным. В следующем примере продемонстрируйте, что в первом примере даже элемент находится в паре скобок (1), Python обрабатывает это как целое число, а не кортеж.
singleitem = (1) print(type(singleitem)) #Output:
Итак, чтобы создать кортеж с одним элементом, вам необходимо использовать завершающую запятую, как показано ниже:
singleitemtuple = (1,) print(singleitemtuple) #output: (1,) print(type(singleitemtuple)) #output:
И, я думаю, это причина, по которой, когда строка имеет завершающую запятую, Python воспринимает это как кортеж и создает переменную как кортеж, а не как строку.
Однако в документации Python это четко указано, и это была моя ошибка или моя халатность, что я не заметил этого и всегда использовал () для создания кортежа даже для одного элемента с обучающей запятой. Источник
В любом случае, это дало мне новые знания и возможность создать кортеж с одним элементом или несколькими элементами без использования (). Да, я попробовал использовать «конечную запятую» с большим количеством элементов для создания кортежа, и это сработало. Пример:
mylearning = "Ajit Kumar","April","python", print(mylearning) #output: ('Ajit Kumar', 'April', 'python') print(type(mymistake)) #output:
На выходных было многому поучено. Надеюсь, это будет полезно для вас. Оставьте свое обсуждение и предложение в комментариях. Мне нравится слышать о ярлыках и готовых функциях Python.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3