python 备忘 (二)

Python技巧精粹

1. 字符串格式化 和r定义的字符串

format%两种格式化

print("name:{name}".format(name="harryhare"))
print("name:{0}".format("harryhare"))
print("name:%s"%("harryhare"))

# or:
name="harryhare"
print(f"name:{name}")

所以,
format需要注意的是对{}本身的输出,用{}反转义
%需要注意%的输出,用%反转义

print("name:{{name}}".format(name="harryhare"))
print("name:%%s"%("harryhare"))

然后就是r"raw_string"这样定义的字符串也是反转义的,但是却是对\n 这样的字符的反转义

print(r"\n") #会输出字符串"\n"而不是换行

为什么要写这一段呢?因为当正则表达式定义用到字符串的格式化时需要小心。
例子:

VOWELS = "aeiouy"
CONSONANT = "bcdfghjklmnpqrstvwxz"
#方法一:
pattern1 = re.compile(r"([{consonant}])[{vowels}]".format(consonant=CONSONANT, vowels=VOWELS))
pattern2 = re.compile(r"([{vowels}])\1{{2}}".format(vowels=VOWELS))#这个地方注意{{2}}
#方法二:
pattern1 = re.compile(r"([%s])[%s]"%(CONSONANT, VOWELS))
pattern2 = re.compile(r"([%s])\1{2}"%(VOWELS))

另外两种字符串,

# '''text''',应该只是可以换行而已
mulitline='''aaa
aaa
aaa
'''
# 和 mulitline='aaa\naaa\naaa\n'等价

# `text` 定义的字符串
x= `1+1` #x='2'
y= `x*3` #y="'222'"

2. global

默认函数中对定义在外部的变量只读
如果需要在函数中改变全局变量需要用global声明

x=0
def change_x():
    global x
    x=123

change_x()
print(x) #123

3.zip() 是个神奇的函数

m=[[1,2,3],[1,2,3],[1,2,3]]
print(m)  # [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
print(*m) #  [1, 2, 3] [1, 2, 3] [1, 2, 3]
print(list(zip([1,2,3],[1,2,3],[1,2,3]))) # [(1, 1, 1), (2, 2, 2), (3, 3, 3)]
print(list(zip((1,2,3),(1,2,3),(1,2,3)))) # [(1, 1, 1), (2, 2, 2), (3, 3, 3)]
print(list(zip(*m))) # [(1, 1, 1), (2, 2, 2), (3, 3, 3)]

4. 复数运算

j 复数单位(Go中复数单位是i

import math # math 不支持复数 
import cmath # cmath支持复数运算
print(math.sqrt(-1)) # ValueError: math domain error
print(cmath.sqrt(1)) # (1+0j)

5. pip使用异常 No module named ‘pip’

windows 下 pip install upgrade pip 后会报这类错误,
可能是因为旧的版本卸载掉了,新的版本还没有装好就报错了,
先恢复下pip

python -m ensurepip

然后升级pip

python -m pip install --upgrade pip
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值