Подтвердить что ты не робот

Связь между строковым модулем и str

В чем разница или связь между строкой и строкой?

import string 
print str
print string 
4b9b3361

Ответ 1

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 предоставляет дополнительные функции и константы, которые полезны при работе со строками.

Ответ 2

Как и 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'

Ответ 3

Существует некоторое перекрытие между строковым модулем и типом str, главным образом по историческим причинам. В ранних версиях объектов Python str не было методов, поэтому все манипуляции с строками выполнялись с помощью функций из строкового модуля. Когда методы были добавлены к типу str (в Python 1.5?), Функции остались в строчном модуле для совместимости, но теперь просто перешли к эквивалентному методу str.

Однако строковый модуль также содержит константы и функции, которые не являются методами на str, такие как форматирование, перевод символов и т.д.

Ответ 4

"string" - это модуль, который предоставляет функции обработки строк, str - это встроенная функция, которая преобразует объект в строковое представление. Нет связи между ними.

Ответ 5

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.