我开始学习python的基础知识。我刚刚了解到str()将非字符串转换为字符串 - 例如:str(2)
会将2
更改为"2"
。这提出了一个问题 - 什么是字符串,它与非字符串有什么区别?我用谷歌搜索了这个,但是我发现这个问题没有得到直接回答,一般的解释对我来说并不是很清楚。
答案 0 :(得分:3)
"这提出了一个问题 - 什么是字符串,它与非字符串有什么区别?"
听起来python是你的第一语言。话虽如此,为了概念起见,字符串是文本,而非字符串'是一个数字。你会看到为什么这不是很正确,因为你编程更多,但为了理解字符串和非字符串之间的差异'这就足够了。您可以使用'非字符串'进行数学运算。 " 2"是一个字符串,但2是一个'非字符串'。添加字符串与算术添加不同。 " 2" +" 2"导致另一个字符串" 22" (此操作称为连接),但2 + 2会产生非字符串'又名NUMBER(非字符串)4,因为加法是算术加法。
答案 1 :(得分:2)
字符串是任何字符序列 - 不仅仅是数字,还有字母和标点符号以及所有Unicode。
不是字符串的东西......不是那样的。 :)(有许多东西不是字符串!字符串不是特殊的。)例如,2
是int
。你可以在int
上做数学,因为它是一个数字。但你不能像str
"2"
那样做数学;它只是我们写西方数学中的数字的方式,而不是数字本身。你也不能要求"dog"
摇尾巴,因为它不是真正的狗;它只是书面文字" dog"。
作为一个更实际的例子:
2 + 2
为您提供4
,即两个数字合并的结果。
"2" + "2"
为您提供"22"
,结合两个书面"单词"。
答案 2 :(得分:0)
只是为了对此进行另一次调整...
python中的对象带有各种属性和方法。属性倾向于表示与对象关联的数据。方法倾向于表示可以由对象执行的行为。
如果我们创建一个字符串并将其命名为 a 并查看属性/方法列表,我们会看到该列表包含了许多您想要的内容了解字符串或使用字符串。
In [91]: a = '1' # assign a string the name 'a'
In [92]: a.
a.capitalize a.format a.isupper a.rindex a.strip
a.center a.index a.join a.rjust a.swapcase
a.count a.isalnum a.ljust a.rpartition a.title
a.decode a.isalpha a.lower a.rsplit a.translate
a.encode a.isdigit a.lstrip a.rstrip a.upper
a.endswith a.islower a.partition a.split a.zfill
a.expandtabs a.isspace a.replace a.splitlines
a.find a.istitle a.rfind a.startswith
另一方面,如果我们创建一个数字并给它命名 b 并查看属性/方法列表,我们会发现它们非常不同并且专注于我们想要了解的数字或数字。
In [92]: b = 1 # assign a number the name 'b'
In [93]: b.
b.bit_length b.denominator b.numerator
b.conjugate b.imag b.real