Python基础(一)-变量、字符串、数
变量
变量是可以赋值给值得标签,也可以说变量指向特定得值。
-
变量名只能包含字母、数字和下划线。变量名能以字母或下划线开头,但不能以数字开头;
-
变量名不能包含空格,但能使用下划线来分割其中的单词;
-
不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词;
-
变量名应简短又具有描述性;
-
慎用小写字母l和大写字母O,因为它们可能被人看错;
同时给多个变量赋值
可在一行代码中给多个变量赋值,这有助于缩短程序并提高其可读性。
>>> x, y, z = 0, 0, 0
常量
常量类似于变量,但其值在程序的整个生命周期内保持不变。Python没有内置的常量类型,但Python成员会使用全大写来指出某个变量视为常量,其值应始终不变:
MAX_CONNECTIONS = 5000
在代码中,要指出应将特定的变量视为常量,可将其字母全部大写。
数
整数
在Python中,可对整数执行加减乘除运算。
浮点数
Python将所有带小数点得数据称为浮点数。大多数编程语言使用了这个术语,它指出了这样一个事实:小数点可出现在数得任何位置。
整数和浮点数
将任意两个数相除时,结果总是浮点数,即便这两个数都是整数且能整除:
>>> 4/2 2.0
在其他任何运算中,如果一个操作数是一个整数,另一个操作数是浮点数,结果也总是浮点数:
>>> 1 + 2.0 3.0 >>> 3.0 ** 2 9.0
无论是哪种运算,只要有操作数是浮点数,Python默认得到得总是浮点数,即便结果原本为整数也是如此。
数中的下划线
当书写很大的数时,可使用下划线将其中的数字分组,使其更清晰易读:
>>> universe_age = 14_000_000_000 >>> print(universe_age) 14000000000
Python运算符,优先级从高到底
字符串
字符串操作
文本是程序需要处理的最常见的数据形式。
处理字符串
字符串字面量
在python中输入字符串相当简单的:它们以单引号开始和结束。
双引号
字符串可以用双引号开始和结束。使用双引号的一个好处,就是字符串中可以使用单引号字符。
spam = "That is Alice's cat."
因为字符串以双引号开始,所以Python知道单引号是字符串的一部分,而不是表示字符串的结束。
转义字符
“转义字符”让你输入一些字符,它们用其他方式是不可能放在字符串里的。转义字符包含一个倒斜杠(\)。
spam = 'Say hi to Bob\'s mother '
原始字符串
”原始字符串“完全忽略所有的转义字符,打印出字符串中的所有倒斜杠
print(r'That is carol\'s cat.')
用三重引号的多行字符串
在Python中,多行字符串的起止是3个单引号或3个双引号。”三重引号“之间的所有引号、制表符或换行,都被认为是字符串的一部分。Python的代码块缩进规则不适用于多行字符串。
多行注释
虽然#号表示这一行是注释,但多行字符串常常用作多行注释。
字符串下标和切片
字符串像列表一样,使用下标和切片。可以将字符串’Hello world!‘看成是一个列表,字符串中的每个字符都是一个表项,有对应的下标。
字符计数包含了空格和感叹号,所以'Hello world!'有12个字符,H的下标是0,!的下标是11。
请注意,字符串切片并没有修改原来的字符串。可以从一个变量中获取切片,记录在另一个变量中。
字符串的in和not in操作符
用in或not in连接两个字符串得到的表达式,将求值为布尔值True或False。
>>> 'Hello' in 'Hello World' True >>> 'Hello' in 'Hello' True >>> 'HELLO' in 'Hello World' False >>> '' in 'spam' True >>> 'cats' not in 'cats and dogs' False
有用的字符串方法
字符串方法upper()、lower()、isupper()和islower()
upper()和lower()字符串方法返回一个新字符串,其中原字符串的所有字母都被相应地转换为大写或小写。字符串中非字母字符保持不变。
>>> spam = 'Hello world!' >>> spam = spam.upper() >>> spam 'HELLO WORLD!' >>> spam = spam.lower() >>> spam 'hello world!'
请注意,这些方法没有改变字符本身,而是返回一个新字符串。
如果字符串只有字母,并且所有字母都是大写或小写,isupper()和islower()方法就会相应的返回布尔值True,否则, 该方法放回False。
>>> spam = 'Hello world!' >>> spam.islower() False >>> spam.isupper() False >>> 'HELLO'.isupper() True >>> 'abc12345'.islower() True
因为upper()和lower()字符串本身返回字符串,所以也可以在返回的字符串上继续调用字符串方法。
>>> 'Hello'.upper() 'HELLO' >>> 'Hello'.upper().lower() 'hello' >>> 'Hello'.upper().lower().islower() True
isX字符串方法
- 这些方法返回一个布尔值,描述了字符串的特点。
- isalpha()返回True,如果字符串只包含字母,并且非空。
- isalnum()返回True,如果字符串只包含字母和数字,并且非空。
- isdecimal()返回True,如果字符串只包含数字字符,并且非空;
- isspace()返回True,如果字符串只包含空格、制表符和换行,并且非空;
- istitle()返回True,如果字符串仅包含以大写字母开头、后面都是小写字母的单词
字符串方法startswith()和endswith()
startswith()和endswith()方法返回True,如果它们所调用的字符串以该方法传入的字符串开始或结束。否则,方法返回False。
>>> 'Hello word!'.startswith('Hello') True >>> 'Hello word!'.endswith('world!') True >>> 'abc123'.startswith('12') False >>> 'abc123'.endswith('12') False
字符串方法join()和split()
join()方法在一个字符串上调用,参数是一个字符串列表,返回一个字符串。返回的字符串由传入的列表中每个字符串连接而成。
>>> ', '.join(['cats', 'rats', 'bats']) 'cats, rats, bats >>> ' '.join(['My', 'name', 'is', 'Simon']) 'My name is Simon'
请注意,调用join()方法的字符串,被插入到列表参数中每个字符串的中间。要记住,join()方法是针对一个字符串而调用的,并且传入一个列表值。
split()方法正好相反,它针对一个字符串嗲用,返回一个字符串列表。
>>> 'My name is Simon'.split() ['My', 'name', 'is', 'Simon']
默认情况下,字符串'My name is Simon'按照各种空白字符分隔,诸如空格、制表符或换行符。这些空白字符不包含在返回列表的字符中。也可向split()方法传入一个分隔字符串,指定它按照不同的字符串分割。
>>> 'MyABCnameABCisABCSimon'.split('ABC') ['My', 'name', 'is', 'Simon'] >>> 'My name is Simon'.split('m') ['My na', 'e is Si', 'on']
用rjust()、ljust()和center()方法对齐文本
rjuest()和ljust()字符串方法返回调用它们的字符串的填充版本,通过插入空格来对齐文本。这两个方法的第一个参数是一个整数长度,用于对其字符。
>>> 'Hello'.rjust(10) ' Hello' >>> 'Hello'.rjust(20) ' Hello' >>> 'Hello World'.rjust(20) ' Hello World' >>> 'Hello'.ljust(10) 'Hello '
rjust()和ljust()方法的第二个可选参数将指定一个填充字符,取代空格字符。
>>> 'Hello'.rjust(20, '*') '***************Hello' >>> 'Hello'.ljust(20, '-') 'Hello---------------'
center()字符串方法与ljust()与rjust()类似,但它让文本居中,而不是左对齐或右对齐。
>>> 'Hello'.rjust(20, '*') '***************Hello' >>> 'Hello'.ljust(20, '-') 'Hello---------------' def printPicnic(itemsDict, leftWidth, rightWidth): print('PICNIC ITEMS'.center(leftWidth + rightWidth, '-')) for k,v in itemsDict.items(): print(k.ljust(leftWidth,'-') + str(v).rjust(rightWidth)) picnicItems = {'sandwiches': 4 , 'apples': 12, 'cups': 4, 'cookies': 80000} printPicnic(picnicItems, 12, 5) printPicnic(picnicItems, 20, 5)
用strip()、rstrip()和lstrip()删除空白字符
strip()字符串方法将放回一个新的字符串,它的开头或末尾都没有空白字符。
rstrip()和lstrip()方法将删除左边或右边额空白字符。
用pyperclip模块考本粘贴字符串
pyperclip模块有copy()和paste()函数,可以向计算机的剪贴板发送文本,或从它接收文本。