- 布尔运算符可以直接当做1 0 来运算:
例如:
>>>a=True
>>>b=3
>>>a+b
4
2同一运算符:is 、 is not
比较地址是不是同一个
==比较值是不是相等。
例如:
>>>a=1000 >>>b=1000 >>>a==b True >>>a is b False
注意:整数缓存问题:
python仅仅将比较小的数进行缓存,范围-5~256,此时用的地址是一样的
例如:>>>a=10 >>>b=10 >>>a is b True
3 字符串的编码:
字符转换成Unicode码:
ord();
>>>ord("A")
65
>>>ord("高")
39640
十进制数转换字符
>>>chr(66)
'B'
>>>ord("淇")
28103
用三个单引号或者三个双引号来创建多行字符串
>>>resume = ''' name ="renshanwen"
company="six" age=18 lover="tom"'''
>>>print(resume)
name="renshanwen"
company="six" age=18 lover="tom"
4 转义字符:
\ 续行符
’ 单引号
" 双引号
\n 换行
\t 横向制表符
\r 回车
\ 反斜杠符号
5 字符串的拼接
用+ 直接相连
6 字符串的复制
>>>a = "sxt"*3
>>>a
"sxtsxtsxt"
7 用print打印时每次会出现一个换行符,如果不需要换行,可以用end=""实现末尾添加任何内容。
例如:
print("six",end=" ")
print("six",end="##")
print("six")
运行结果:six six##six
8 控制台上读取字符串:用input()
six six##six
>>> myname = input("请输入名字:")
请输入名字:任善文
>>> myname
'任善文'
>>>
9 str() 函数:实现数字类型转化成字符串类型
>>> str(5.20)
'5.2'
>>> str(3.14e2)
'314.0'
>>> str(True)
'True'
>>>
10 如何提取字符??? []提取字符
>>> a='abcdefghigklmnopqistuvwxyz'
>>> a
'abcdefghigklmnopqistuvwxyz'
>>> a[0]
'a'
>>> a[1]
'b'
>>> a[-26]
'a'
>>>
11 用replace() 实现字符串的替换
>>> b='123456'
>>> b.replace("1","a")
'a23456'
只能替换一个字符
b.replace(“1”,“love”)是不行的。
12 字符串截取
>>> a = "abcdefghigklmn"
>>> a[1:5] #去下标1到5
'bcde'
>>> a[:] #取所有的字符
'abcdefghigklmn'
>>> a[1:]
'bcdefghigklmn'
>>> a[:5]
'abcde'
>>> a[1:5:2] #步长为2
'bd'
>>> a[-3:]
'lmn'
>>> a[0:-3]
'abcdefghigk'
>>> a[0:-3:2]
'acegik'
>>> a[::-1]
'nmlkgihgfedcba' #直接将字符串逆序排列
>>>
13 字符串的切割:split() 和 join() 合并
>>> a = "I LOVE LIJIANCHAO"
>>> a.split()
['I', 'LOVE', 'LIJIANCHAO']
>>> a.split("LOVE")
['I ', ' LIJIANCHAO']
>>> a.split("L")
['I ', 'OVE ', 'IJIANCHAO']
>>>
join合并的代码:
>>> a=['1','2','3','4','5']
>>> "*".join(a)
'1*2*3*4*5'
>>>
注意:+ 和join的区别:+每次加都会生成一个对象,而join只生成结果的一个。
因此join的速度比+ 快的多。
import time
time01 = time.time()
a = ""
for i in range(1000000):
a += "sxt"
time02 = time.time()
print("运算时间:"+str(time02-time01))
time03 = time.time()
li = []
for i in range(1000000):
li.append("sxt")
a = "".join(li)
time04 =time.time()
print("运算时间:"+str(time04-time03))
运行结果:
运算时间:0.8975987434387207
运算时间:0.1765294075012207
>>>
14 字符串的比较:
字符串驻留机制:
对于 合法的标识符(下划线,字母,数字)启动字符串驻留机制。
例如:
a = "abd_33"
b = "abc_33"
print(a is b)
c = "dd#"
d = "dd#"
print(c is d)
str1 = "aa"
str2 = "bb"
print(str1 + str2 is "aabb")
运行结果:
False
True
False
>>>
15 判断某个字符串是否存在另一个字符串中?
a="123456789"
b="123"
c="000"
print(b in a)
print(c in a)
运行结果:
True
False
>>>
16 常用的查找方法:
len:长度
startswith():前缀是否匹配。
find():中间是否存在相同的。
count(“”):字符有几个??
find(""):字符串所在的下标
rfind(""):字符串从后向前数的下标。
isalnum():是否是全英文字母。
>>> a="我喜欢李建超!"
>>> len(a)
7
>>> a.startswith("我喜欢")
True
>>> a.find("李")
3
>>> a.rfind("李")
3
>>> a.count("!")
0
>>> a.count("李")
1
>>> a.count("! ")
0
>>> a.isalnum()
False
>>>
17 去除首尾信息
strip()去除首尾信息,lstrip():去除左边的信息 rstrip():去除右边的信息。
strip(),括号内不加任何字符串,默认去除空格。
>>> "*s*x*t*".strip()
'*s*x*t*'
>>> "*s*x*t*".strip("*")
's*x*t'
>>> "*s*x*t*".lstrip("*")
's*x*t*'
>>> "*s*x*t*".rstrip("*")
'*s*x*t'
>>> " s*x*t ".strip()
's*x*t'
>>>
18 大小写转换:
>>> a="abc"
>>> b="ABC"
>>> a.capitalize() //首字母转化成大写
'Abc'
>>> c="abc def"
>>> c.title() //每个单词的首字母转化成大写字母
'Abc Def'
>>> b.lower() //全部转化成小写字母
'abc'
>>> b.swapcase() //对所有字母进行大小写转换,大写变小写,小写变大写。
'abc'
>>> a.swapcase()
'ABC'
>>>
19 格式排版:
>>> a="abc"
>>> a.center(10,"*")
'***abc****'
>>> a.center(10)
' abc '
>>> a="abc"
>>> a.center(10,"*")
'***abc****'
>>> a.center(10)
' abc '
20 其他方法:
isalnum() 是否为数字或者字母
isalpha():是否都是字母或者汉字
isdigit():是否只是数字
isupper():是否都是大写字母
islower():是否都是小写字母
isspace():是否是空白字符。
>>> a="asnajsaj123"
>>> a.isalnum()
True
>>> b="任善文a"
>>> b.isalpha()
True
>>> c="1234567"
>>> c.isdigit()
True
>>> d=""
>>> d.isspace()
False
>>> "\t\n".isspace()
True
>>> e="ABC"
>>> e.isupper()
True
>>> "cde".islower()
True
>>>
21.字符串的格式化:
str.format()
0 1 2 是占位符和下标类似。
也可以用字符串代替。
>>> a = "亲爱的:{0},我是:{1}"
>>> a.format("任善文","李建超")
'亲爱的:任善文,我是:李建超'
>>> a.format("任先生","爱你的小暖猫!")
'亲爱的:任先生,我是:爱你的小暖猫!'
>>> b="亲爱的:{name},我是:{name2}"
>>> b.format(name="任先生",name2="小暖猫")
'亲爱的:任先生,我是:小暖猫'
>>>
22 填充与对齐:
^ < > 分别代表居中,左对齐,右对齐,后面+宽度
:后面+填充的字符,只能是一个字符,不指定的话默认填充空格。
>>> "{:*>8}".format("245")
'*****245'
>>> "{:*^8}".format("245")
'**245***'
>>> "{:*<8}".format("245")
'245*****'
>>>