转 Python学习(二)

接上:Python学习(一)

原文出处

作者:Wanglikai91 
出处:http://www.cnblogs.com/wanglikai91/ 

三、基本概念

1、常量:

一个字面意义上的常量的例子是如同5、1.23、9.25e-3这样的数,或者如同'This is a string'、"It's a string!"这样的字符串。它们被称作字面意义上的,因为它们具备 字面 的意义——你按照它们的字面意义使用它们的值。数2总是代表它自己,而不会是别的什么东西——它是一个常量,因为不能改变它的值。因此,所有这些都被称为字面意义上的常量。

2、数:

在Python中有4种类型的数——整数、长整数、浮点数和复数。

  • 2是一个整数的例子。
  • 长整数不过是大一些的整数。
  • 3.2352.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()方法来格式化字符串:

1
2
3
4
5
6
7
# Filename: str_format.py
  
age = 26
name = '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'
posted @ 2016-12-02 23:31  凯心宝牙  阅读(146)  评论(0编辑  收藏  举报