格式化字符串
-
使用原始字符串
如果字符串又很多反斜杠,请使用原始字符串
转义字符允许你在字符串字面量中插入原本不能包含的文本。
#其中的\是将'转义成字符串,而不是结束的'
index = 'Zophie\'s chair'
原始字符串是具有 r 前缀的字符串字面量,它不把反斜杠是为转义字符,而是作为普通的字符。
print(r'C:\user\data\Spam')
它不是一种不同的字符串数据类型,而只是用来输入包含多个反斜杠字符的字符串的边界方式。
常用来输入正则表达式或windows文件路径的字符串。
-
f-string格式化
使用f-string格式化字符串,也被称为字符串插值,用来嵌套其他字符串的字符串。
name, day, weather = 'AI', 'Sunday', 'sunny'
print(f'{name}, Today is {day} and it is {weather}')
#大括号中也可以包含完整的表达式
width, lenght = 10, 20
print(f'{width} * {lenght} = {width * lenght}')
#使用括号形式
width, lenght = 10, 20
print(f'{width} * {lenght} = {{width * lenght}}')
Python风格的字典
为了避免出现keyError的错误,可以使用get来进行
使用enumerate()而不是range()
当在一个列表或者其他序列上循环时,一般会使用range()和len()函数来生成从0到-1的索引整数。
an_list = ['aaa', 'bbb', 'ccc', ]
for i in range(len(an_list)):
print(i,an_list[i])
range(len())的传统写法比较直接,但不够理想,因为它的可读性不好。可以使用enumertate()来进行替换。
an_list = ['aaa', 'bbb', 'ccc', ]
for i,an in enumerate(an_list):
print(i, an)
如果不需要索引,那么就直接迭代即可。
an_list = ['aaa', 'bbb', 'ccc',]
for an in an_list:
print(an)
使用with语句替代open()和close()
如果不想出现调用后未关闭的情况。
try:
fileObj = open('test.txt','w')
eggs = 24 / 0
fileObj.close()
except:
print('错误')
这样调用后,会出现错误,但不能关闭文件,导致文件损坏。
更好的做法时使用with语句,它可以在执行顺序离开with语句块时,自动调用close()
with open('test.txt', 'w') as fileObj:
fileObj.write('Hello world!')
用is跟None做比较而不用==
==相等运算符时比较两个对象的值,而is身份运算符时比较两个对象的身份。将某个值跟None比较时,大多数情况应使用is,而非==
在特殊情况下,如果使用了运算符重载,即使spam指向None,表达式spam ==None也会等于True。
spam is None 将检查spam变量中的值是否真的是None,由于None是NoneType数据类型唯一的值,因此在任何Python程序中只有一个None对象。当变量指向None时,is None比较表达式总是为True.
class SomeClass:
def __eq__(self, other):
if other is None:
return True
spam = SomeClass()
spam == None
True
spam is None
False
如果时判断是否为None,那么建议使用is来进行判断。而判断True或False的时候,应该使用 if spam 或 if not spam
标签:None,spam,Python,lenght,list,语法,print,字符串,替换 From: https://www.cnblogs.com/xinbing/p/18098437