接上:
三、基本概念
1、常量:
一个字面意义上的常量的例子是如同5、1.23、9.25e-3这样的数,或者如同'This is a string'、"It's a string!"这样的字符串。它们被称作字面意义上的,因为它们具备 字面 的意义——你按照它们的字面意义使用它们的值。数2总是代表它自己,而不会是别的什么东西——它是一个常量,因为不能改变它的值。因此,所有这些都被称为字面意义上的常量。
2、数:
在Python中有4种类型的数——整数、长整数、浮点数和复数。
2
是一个整数的例子。- 长整数不过是大一些的整数。
3.23
和52.3E-4
是浮点数的例子。E标记表示10的幂。在这里,52.3E-4
表示52.3 * 10
-4。(-5+4j)
和(2.3-4.6j)
是复数的例子。
3、字符串:
字符串是字符的序列 。字符串基本上就是一组单词。
几乎在每个Python程序中都要用到字符串,所以以下内容非常重要。
如何在Python中使用字符串:
- 使用单引号('):可以用单引号指示字符串,如'Quote me on this'。所有的空格和制表符都照原样保留。
- 使用双引号("):在双引号中的字符串与单引号中的字符串的使用完全相同,例如"What's your name?"。
- 使用三引号('''或"""):利用三引号,可以指示一个多行的字符串。我们可以在三引号中自由的使用单引号和双引号。例如:
'''This is a multi-line string. This is the first line. This is the second line. "What's your name?," I asked. He said "Bond, James Bond." '''
转义符
假设我们要在一个字符串中包含一个单引号('),可以通过转义符来完成这个任务。例如,这个字符串是What's your name?。我们不能用'What's your name?'来指示它,因为Python会弄不明白这个字符串从何处开始,何处结束。所以,你需要指明单引号而不是字符串的结尾,这里我们用反斜杠\'来指示单引号。所以可以把字符串表示为'What\'s your name?'。另一个表示这个特别的字符串的方法是"What's your name?",即用双引号。类似地,要在双引号字符串中使用双引号本身的时候,也可以借助于转义符。另外,转义符\\来指示反斜杠本身。
注意:在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。例如:
"This is the first sentence.\ This is the second sentence."
等价于"This is the first sentence. This is the second sentence."
自然字符串
如果我们想要指示某些不需要如转义符那样的特别处理的字符串,那么需要指定一个自然字符串。自然字符串通过给字符串加上前缀r或R来指定。例如r"Newlines are indicated by \n"。
注意:
- 字符串是不可变的:即我们定义了一个字符串以后我们将不能改变它的值,这跟C++等语言的字符串是不同的。
- 按字面意义级连字符串:如果把两个字符串按字面意义相邻放着,他们会被Python自动连接。例如,'What\'s' 'your name?'会被自动转为"What's your name?"。
- 在Python中没有专门的char数据类型。确实没有需要有这个类型。
- 单引号和双引号字符串是完全相同的。
- 一定要用自然字符串处理正则表达式,否则会需要使用很多的反斜杠。例如,后向引用符可以写成'\\1'或r'\1'。
格式化方法:
我们可以通过使用format()方法来格式化字符串:
# Filename: str_format.py age = 26name = 'Swaroop' print('{0} is {1} years old'.format(name, age))print('Why is {0} playing with that python?'.format(name))
输出:
C:\Users\Administrator>python D:\python\str_format.py Swaroop is 26 years old Why is Swaroop playing with that python?
工作原理:
- 我们可以通过在字符串后面使用format()方法来将相应的格式和参数整合到字符串中。
- 例子中{0}对应的是format()的第一个变量name,{1}对应的是其第二个变量age。
- 注意,我们也可以使用name + ' is ' + str(age) + ' years old' 来达到同样的效果,不过更麻烦,而且容易出错, 这里format()方法会自动代替这里的强制转换,同时,因为变量和字符串本身分离,方便了更改。
format()方法还有更多的用法:
>>> '{0:.3}'.format(1/3) # 为1/3保留3为小数 '0.333' >>> '{0:_^11}'.format('hello') #输出hello,占11位,两边用'_'填充,优先填充右边,如果填充数小于字符长度,按原字符输出 '___hello___' >>> '{name} wrote {book}'.format(name='Swaroop', book='A Byte of Python') # 按变量名匹配 'Swaroop wrote A Byte of Python'