链式赋值用于同一个对象赋值给多个变量
x=y=123
系列数据赋值给对应相同个数的变量(个数一致)
a,b,c=4,5,6
Python不支持常量,即没有与法规则限制改变一个常量的值。
+加法,-减法,*乘法,/浮点数除法,//整数除法,%模(取余),**幂
divmod()函数同时得到商和余数
浮点数,成为float
运算符和赋值符=结合可以构成增强型赋值运算符a += 1等价于a=a+1
可通过time.time()获得当前时刻,返回的值是以秒为单位,带微秒精度的浮点值。从“1970年1月1日00:00:00”开始。
True和False定义成了关键字,他们的本质还是1和0,甚至还可以和数字相加。
同一运算符用于比较两个对象的存储对象,实际比较的是对象的地址。
字符串的本质是:字符序列。单字符也是作为一个字符串使用。
直接支持Unicode,可以表示世界上任何书面语言的字符。默认就是16位Unicode编码。
内置函数ord()可以把字符转换成Unicode码。
内置函数chr()可以把十进制数字转换成对应的字符。
可以通过单引号或双引号创建字符串。
允许空字符串的存在,不包含任何字符且长度为0。
c=''
可以用+将多个字符串拼接起来。
使用*可以实现字符串复制。
不想换行可以通过参数end=“任意字符串”
>>> print("sxt",end='')
sxt>>> print("sxt",end='##')
sxt##>>>
>>> myname = input("请输入名字:")
请输入名字:Mandy
>>> myname
'Mandy'
str()可以帮我们将其他数据类型转换为字符串
>>> str(5.20)
'5.2'
可以通过在字符串后面添加[],在[]里面指定偏移量,可以提取该位置的单个字符。可正向搜索,可反向搜索。
>>> a = 'asdjfklasdjf'
>>> a
'asdjfklasdjf'
>>> a[0]
'a'
>>> a[-1]
'f'
>>> a.replace('s','4')
'a4djfkla4djf'
整个过程中,是创建了新的字符串对象,并指向了变量a,而不是修改了以前的字符串。
可以快速提取子字符串,标准格式为:
【起始偏移量start:终止偏移量end:步长step】
>>> a[1:5]
'sdjf'
>>> a[1:5:2]
'sj'
split()可以基于指定分隔符将字符串分割成多个子字符串。如果不指定分隔符,则默认使用空白字符。
>>> a = "to be or not to be"
>>> a.split()
['to', 'be', 'or', 'not', 'to', 'be']
>>> a.split("to")
['', ' be or not ', ' be']
join()用于将一系列子字符串连接起来。
>>> a = ["100","200","300"]
>>> "*".join(a)
'100*200*300'
由于效率,推荐使用join函数。
仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。
对于符合标识符规则的字符串会启用字符串驻留机制。
>>> a = "abc_33"
>>> b = "abc_33"
>>> a is b
True
>>> c = "dd#"
>>> d = "dd#"
>>> c is d
False
可以直接用==,!=对字符串比较,是否含有相同的字符。
用is/not is,判断两个对象是否同一个对象,比较的是对象的地址。
in/not in 关键字,判断某个字符串(子字符串)是否存在与字符串中。
>>> a = "ahgrefwe"
>>> "h" in a
True
>>> "s" in a
False
>>> "hgr" in a
True
>>> a = '''我是Mandy,我是一个Python新手,希望新学 期学会Python,不会挂科。'''
>>> len(a)
40
>>> a.startswith("我是")
True
>>> a.find('会')
27
>>> a.rfind('会')
36
>>> a.count('会')
2
>>> a.isalnum()
False
strip()去除字符串首尾指定信息。lstrip()去除字符串左边指定信息,rstrip()去除字符串右边指定信息。
>>> " Man ".strip()
'Man'
>>> " M a n ".strip()
'M a n'
>>> "*M*a*n*".strip("*")
'M*a*n'
>>> "*M*a*n*".rstrip("*")
'*M*a*n'
>>> a = "to be or not to be"
>>> a.capitalize() '
'To be or not to be'
>>> a.title()
'To Be Or Not To Be'
>>> a.upper()
'TO BE OR NOT TO BE'
>>> a.lower()
'to be or not to be'
>>> a.swapspace()
>>>> a.swapcase()
'TO BE OR NOT TO BE'
center(),ljust(),rjust()这三个函数用于对字符串实现排版。
>>> a.center(10,"*")
'***Man****'
>>> a.center(10)
' Man '
>>> a.ljust(10)
'Man '
>>>
str.format()增强了字符串格式化的功能。
>>> a = "名字是:{0},年龄是:{1}"
>>> b = a.format("小明",6)
>>>> b
'名字是:小明,年龄是:6'
^、<、>分别是居中、左对齐、右对齐,后边带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认用空格填充。
>>> "我是{0},我喜欢数字{1:*^8}".format("Man","666")
'我是Man,我喜欢数字**666***'
>>> "我是{0},我喜欢数字{1:*>8}".format("Man","666")
'我是Man,我喜欢数字*****666'
>>> "我是{0},我喜欢数字{1:*>20}".format("Man","666")
'我是Man,我喜欢数字*****************666'
>>> a = "我是{0},我的存款有{1:.2f}"
>>> a.format("Man",123.123)
'我是Man,我的存款有123.12'