В чем разница или связь между строкой и строкой?
import string
print str
print string
В чем разница или связь между строкой и строкой?
import string
print str
print string
str
является встроенной функцией (фактически class), который преобразует свой аргумент в строку. string
является module, который обеспечивает общий string.
>>> str
<class 'str'>
>>> str(42)
'42'
>>> import string
>>> string
<module 'string' from '/usr/lib/python3.1/string.py'>
>>> string.digits
'0123456789'
Другими словами, str
объекты представляют собой текстовое представление некоторого объекта o
, часто создаваемого вызовом str(o)
. Эти объекты имеют определенные методы, определенные на них. Модуль string
предоставляет дополнительные функции и константы, которые полезны при работе со строками.
Как и Stephan202: str - это встроенная функция, которая просто используется для преобразования элемента в строку. Он также имеет множество полезных методов. Например:
>>> str(100)
'100' # converts integer into string.
>>> str.lower('foobar')
'FOOBAR'
Теперь поговорим о String. Это модуль python, который имеет очень интересные функции. Один из них Template thingy
>>> from string import Template
>>> t = Template('$foo is a test')
>>> t.substitute (foo='this')
'this is a test' # Replaces $foo variable with 'this'
Существуют и другие полезные методы. Предположим, вы хотите, чтобы все буквы ascii
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
Существует некоторое перекрытие между строковым модулем и типом str, главным образом по историческим причинам. В ранних версиях объектов Python str не было методов, поэтому все манипуляции с строками выполнялись с помощью функций из строкового модуля. Когда методы были добавлены к типу str (в Python 1.5?), Функции остались в строчном модуле для совместимости, но теперь просто перешли к эквивалентному методу str.
Однако строковый модуль также содержит константы и функции, которые не являются методами на str, такие как форматирование, перевод символов и т.д.
"string" - это модуль, который предоставляет функции обработки строк, str - это встроенная функция, которая преобразует объект в строковое представление. Нет связи между ними.
String - это модуль, но обладает той же способностью, что и класс str.
Я предлагаю ввести 'string' и набрать '.' и подождите несколько секунд, и появится всплывающий список, и вы увидите, что многие из доступных там методов также являются частью "str".
>>>dir(string)
['Formatter', 'Template', '_TemplateMetaclass', ' встроенные', ' doc', ' файл', ' имя ',' пакет ',' _float ',' _idmap ',' _idmapL ',' _int ',' _long ',' _multimap ',' _re ',' ascii_letters ',' ascii_lowercase ',' ascii_uppercase ',' atof ',' atof_error ',' atoi ',' atoi_error ',' atol ',' atol_error ',' capizeize ',' capwords ',' center ',' count ', 'digits', 'expandtabs', 'find', 'hexdigits', 'index', 'index_error', 'join', 'joinfields', 'letters', 'ljust', 'lower', 'lowercase', ' lplip ',' maketrans ',' octdigits ',' printable ',' punctuation ',' replace ',' rfind ',' rindex ',' rjust ',' rsplit ',' rstrip ',' split ',' splitfields ', 'strip', 'swapcase', 'translate', 'upper', 'uppercase', 'whitespace', 'zfill']
или вы можете сделать это:
>>>help(string)
теперь вам нужно импортировать String для использования, но str не имеет таких ограничений.
>>>help(str)
Это также дает аналогичный список.
Итак, основное отличие состоит в том, что вам нужно импортировать String, но не str.