Python小知识
一、赋值运行
(1) 多赋值
# 多赋值
a = b = c = 0
print("a的值为:"+str(a))
print("b的值为:"+str(b))
print("c的值为:"+str(c))
'''
result:
a的值为:0
b的值为:0
c的值为:0
'''
(2)元组赋值
# 元组赋值
a,b,c = 1,2,3
print("a的值为:"+str(a))
print("b的值为:"+str(b))
print("c的值为:"+str(c))
'''
result:
a的值为:1
b的值为:2
c的值为:3
'''
(3)同步赋值
# 同步赋值
a,b = 1,2
# a=a+b,b=a同时运行,运算时都利用原始值(旧值)
a,b = a+b,a
'''
a = a + b = 1 + 2 = 3
b = a = 1(原始值)
'''
print("a的值为:"+str(a))
print("b的值为:"+str(b))
'''
result:
a的值为:3
b的值为:1
'''
(4)自操作简化
# 自操作简化
a+=1 # 自加一
a-=1 # 自减一
a*=2 # 自乘2
a/=2 # 自除2
a**=2 # 自己的2次方
二、列表索引与切片
(1)列表索引
- 正索引
list_test = [1,2,3,4,5]
# 正索引
'''
列表长度:len
list_test[n]
表示取列表的第n+1个元素
n < len
'''
print("第三个元素是:"+str(list_test[2]))
'''
result :
第三个元素是:3
'''
- 负索引
# 负索引
'''
列表长度:len
(n<0)
list_test[n]
表示取列表的倒数第|n|元素
|n| < len
'''
print("倒数第二个元素是:"+str(list_test[-2]))
'''
result :
倒数第二个元素是:4
'''
(2)列表切片
切片可以访问(取出)原列表的任意子列表,生成一个新列表。
'''
格式:[begin : end : step]
begin : 切片开始位置,从第begin+1开始,默认为0
end : 到第end个结束,默认为列表长度
step : 取数的间距
'''
list_test = [1,2,3,4,5]
# 取出子列表[2,3]
print("无间距取子列表:"+str(list_test[1:3]))
# 每隔一个元素取,这里是取出奇数
print("有间距取子列表:"+str(list_test[0:5:2]))
# 取出最后2个元素
print("取出最后2个元素:"+str(list_test[-2:]))
'''
result:
无间距取子列表:[2, 3]
有间距取子列表:[1, 3, 5]
取出最后2个元素:[4, 5]
'''
(3)很秀的操作
- 列表元素顺序反向
# 列表元素顺序反向
print("列表元素顺序反向:"+str(list_test[-1::-1]))
'''
result :
列表元素顺序反向:[5, 4, 3, 2, 1]
'''
- 替换列表某段子列表
# 替换列表某子列表
list_test[0:2] = [9,8]
print("替换列表前两个元素:"+str(list_test))
'''
result :
替换列表前两个元素:[9, 8, 3, 4, 5]
'''
- 在列表开头插入两个元素
# 在列表开头插入两个元素
list_test[:0] = [7,6]
print("在列表开头插入两个元素:"+str(list_test))
'''
result :
替换列表前两个元素:[7, 6, 1, 2, 3, 4, 5]
'''
三、字符串处理
(1)split拆分字符串
# split拆分字符串
str_test = "I am 极简XksA who are you ?"
str_test01 = "老表#X先生#XksA"
# 默认以空格为分隔符,拆分字符串
r_list = str_test.split()
print("默认空格拆分结果:"+str(r_list))
# 用指“#”拆分字符串str_test01
r_list01 = str_test01.split("#")
print("用指定字符拆分结果:"+str(r_list01))
'''
result :
默认空格拆分结果:['I', 'am', '极简XksA', 'who', 'are', 'you', '?']
用指定字符拆分结果:['老表', 'X先生', 'XksA']
'''
(2)strip删除字符串前后多余字符
str_test02 = " 我爱你 啊! \t \n"
# 默认情况下会去除字符串首尾的空格、”\t“、”\n“
strip_test = str_test02.strip()
print(strip_test)
'''
result :
我爱你 啊!
'''
# strip去除字符串前后指定字符串
str_test02 = " 我爱你 啊! 才怪"
strip_test = str_test02.strip("才怪")
print(strip_test)
'''
result :
我爱你 啊!
'''
细心的读者会发现,我们指定删除”才怪“后,前后的空格没有被删除。
也就是说我们只能指定一种模式,那要删除”才怪“,还想把空格也去除怎么办呢?
也很简单,把模式改成”才怪 “,也就是说,在指定格式里加个空格就行,那么,”怪才 “、” 怪才“、”怪 才“都是一个模式,会把字符串前后的”才“、”怪“、” “这三个字符都去掉,直到遇到不是这三个字符的字符为止。
这个小技巧很实用哦~
(3)join连接列表字符串
# join连接列表
list_test = ['2018','10','29']
r_join = "-".join(list_test)
print(r_join)
'''
result :
2018-10-29
'''
如果我们要给几个字符串用指定字符或字符串连接起来,用join方法的好处就是,不会在字符串末尾添加分隔符,比如上面代码的例子,如果我们直接遍历加-
,那可能就会产生2018-10-29-
这样的结果,需要对字符串再处理,才能得到我们想要的结果,而join
可以直接生成,代码简洁,效率高,这一点可以说超级优秀了。
(4)基本操作
- 大小写转换
str_00 = "I Love You."
str_00 = str_00.upper()
print("小写转大写:"+str_00)
str_00 = str_00.lower()
print("大写转小写:"+str_00)
'''
result :
小写转大写:I LOVE YOU.
大写转小写:i love you.
'''
- 字符与ASCII码转换
# ASCII码转化成字符
print("ASCII码65表示:"+chr(65))
print("B的ASCII码为:"+str(ord("B")))
'''
result :
ASCII码65表示:A
B的ASCII码为:66
'''
- 英文字母判断
str_00 = "D三23安生"
# 字符串的英文字母是否全部为小写字母(可以包含其他字符)
print(str_00.islower())
# 字符串的英文字母是否全部为大写字母(可以包含其他字符)
print(str_00.isupper())
# 判断字符串首写字符是否为英文大写字母
print(str_00.istitle())
- 数字字符判断
# 字符串为十进制、双字节整数(可组合)
print(str_00.isdecimal())
# 字符串为十进制、单字节、双字节整数(可组合)
print(str_00.isdigit())
# 字符串为十进制、单字节、双字节整数、汉字数字(可组合)
print(str_00.isnumeric())
- 组合字符判断
print(str_00.isalpha())
# 字符串是否为数字和字母和汉字组合(可以只包含某一类或两类)
print(str_00.isalnum())
- 其他判断
# 判断字符串是不是有效的标识符(可以用来判断变量名是否合法)
print(str_00.isidentifier())
# 判断字符串是否全部为空格
print(str_00.isspace())
灵活应用这些基本操作,让你的工作学习事半功倍。