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())

灵活应用这些基本操作,让你的工作学习事半功倍。