基础知识
with 语句
with关键字可以用来启动一个新的代码块,就像try一样,但目的却是截然不同的。通过使用with块,你将定义一个特定的上下文,并在该上下文中执行代码块的内容。然而美妙之处在于,你在with语句中提供的对象将用来确定上下文的含义。
例如,可以在with语句中使用open(运行文件的上下文中的某些代码。在这种情况下,with还提供了as子句,进而允许在当前上下文中执行时返回一个对象以供使用。
with open(file_neme,'rb') as file:
return len(file.readlines())
#这样在运行完with代码快后,会自动执行将文件给关闭。
#这的作用在很多情况下都使用
三元表达式
def test_value(value):
return 'The value is'+('just right.' if value <100 else 'too big!'
区别与与像c++和Java
的 表达式?value1:valu2;
字符串格式化元组
print('Hello %s,%s,%s'%('xiao hua','xiao wang','xiao li'))
#或者
name = ('xiao hua','xiao wang','xiao li')
print('Hello %s,%s,%s'%name)
序列解包
domain,tld = 'python.com'.split('.')
>>>domain
'python'
针对string类型的split()函数。它主要是切割字符串,结果返回由字符串元素组成的一个列表.
列表解析式
output = [str(value) for value in range (10) if value>5]
print(output)
>['6','7','8','9']
集合解析式
集合是无序的
output = {str(value) for value in range (10) if value>5}
print(output)
>{'6','7','8','9'}
字典解析式
字典是无序的,冒号是区分集合与字典的因子。
output = {value:str(value) for value in range (10) if value>5}
print(output)
>{6:'6',7:'7',9:'9',8:'8'}
空集合与空字典
#空集合
test=set()
#空字典
test={}
函数
让参数个数不定
通过在参数名称前添加一个星号
def add (*items):
self.item.extend(items
列表元素排序个性化
def get_price(house):
return house.price
houses.sort(key=get_price)
lambda
lambda函数体实际上就是它的返回值。没有显式的return语句,所以整个函数体实际上只是用于返回一个值的单个表达式,这就是lambda形式如此简洁却又易于阅读的一个重要原因。但我们也是有代价的:只知许使用单个表达式;不能使用任何控制结构,如try、with或while代码块;不能在函数体内分配变量;并且对于多步操作,如果不将它们绑定到同一个表达式中,则无法执行这些操作。
a = lambda :"Hellw"
print(a())
>"Hellw"
b = lambda x:x*x
print(b(3))
>9
类
super()函数
常见解释,该函数允许在子类的重写
方法中调用基类的方法。
class A(odject):
def fun(self):
print('A')
class B(A):
def __init__(self):
print('B')
def fun(self):
return super(B,self).fun()