赋值
1. 链式赋值用于同一个对象赋值给多个变量,例如:a = b = 3
2. 解包赋值:系列数据赋值给个数相同的变量,例如:
交换两变量的值:a, b = b, a
打印斐波那契数列:
def fibonacci(n): a, b = 0, 1 for i in range(n): a, b = b, a+b print(a)
逻辑运算符: and 与, or 或, not 非 (与java中的‘短路与’、‘短路或’有些相似)
假设x and y(x or y)
1. and:x 为 True,则返回 y 的值 ;x 为 False,则不计算 y,直接返回 False。
2. or:x 为 True,则不计算 y,直接返回 True ;x 为 False,则返回 y。
print(True and 3) #3 print(3 and True) #True print(False and 3) #False print(True and False) #False print(True or 3) #True print(False or 3) #3 print(not 1) #False print(not 3.0) #False print(not 0) #True
同一运算符:同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。
1. is :is 是判断两个标识符是不是引用同一个对象
2. is not:is not 是判断两个标识符是不是引用不同对象
is 与 == 区别:is 用于判断两个变量引用对象是否为同一个,既比较对象的地址。== 用于判断引用变量引用对象的值是否相等,默认 调用对象的 __eq_ _()方法。print(3.0 == 3) #True print(3 is 3) #True print(3.0 is 3) #False
字符串
1. 字符串的本质是:字符序列。Python 的字符串是不可变的,我们无法对原字符串做任何修改。但可以将字符串的一部分复制到新创建的字符串,达到“看起来修改”的效果。Python 不支持单字符类型,单字符也是作为一个字符串使用的。2. 可以定义空字符串,长度len(str)为03. 可以使用单引号,也可使用双引号4. 可以使用’+‘或将多个字面字符串直接放到一起实现拼接,例如:print("李明说:"+'I‘m a teacher.') print('a''b''c''d')
字符串操作
1. 复制:使用*可以实现字符串复制
a = "abc" * 3 print(a) #abcabcabc
2. 不换行打印
我们前面调用 print 时,会自动打印一个换行符”\n“。有时,我们不想换行,不想自动添加换行符。我们可以自己通过print()函数的参数 end = “任意字符串”。实现末尾添加任何内容a = "abc" * 3 print(a, end="d") #abcabcabcd
3. 使用[]提取字符串中的字符,可取单个字符
4. 使用replace()函数不可改变原字符串。但是,我们确实有时候需要替换某些字符。这时,只能通过创建新的字符串来实现。
a = "abc" * 3 a.replace('c', 'd') print(a) #abcabcabc a = a.replace('c', 'd') print(a) #abdabdabd
5. 切片
切片 slice 操作可以让我们快速的提取子字符串。标准格式为:[起始偏移量 start:终止偏移量 end:步长 step][ start, end)左闭右开,如果有负值代表反向提取a = "abcdef" print(a[1:5:2]) #bd
a = "to be or not to be" print(a[::-1]) #倒序输出 b = "sxtsxtsxtsxtsxt" print(b[0::3]) #将所有的s输出
6. 字符串的函数:分词split() 与 合并join()split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。a = "to be or not to be" print(a.split()) #['to', 'be', 'or', 'not', 'to', 'be'] print(a.split('to')) #['', ' be or not ', ' be']
join()的作用和 split()作用刚好相反,a.join(list) 是以该字符串作为分隔符,把整个字符串列表拼接在一起。a = ['I', 'am', 'a', 'teacher', "!"] print(' '.join(a)) #I am a teacher !
7. 字符串比较
我们可以直接使用==, !=对字符串进行比较,是否含有相同的字符。我们使用 is / not is,判断两个对象是否同一个对象。比较的是对象的地址,即 id(obj1)是否和 id(obj2)相等。str1 = "aa" str2 = "bb" print(str1 + str2 == "aabb") #True print(str1 + str2 is "aabb") #False
in /not in 关键字,判断某个字符(子字符串)是否存在于字符串中。a = "aabb" print("ab" in a) #True print("c" in a) #False
8. 字符串常用方法总结
len(str) - 字符串长度
str1.find(str2) - 第一次出现指定字符串的下标
str1.count(str2) - 指定字符串出现了几次
str.strip(inf) - 去掉字符串首尾指定字符序列,默认为空格换行或tab