【python语言基础】疑难点整理1_凡先生的笔的博客-CSDN博客
【python语言基础】疑难点整理2_凡先生的笔的博客-CSDN博客
- 7.3.6 形参的可变长度
- 在定义函数时,可变长度参数主要有两种形式:单星号参数和双星号(**)参数。
- 单星号参数是在形参名前加一个星号(*),把接收到的多个实参组合在一个元组内,以形参名为元组名。
-
def calcuScore(*scores): #单星号形参用于把接收到的实参组合为元组 sum = 0 for n in scores: sum = sum + n print("分数:", *scores,end=' ') #打印元组scores的所有元素 return (sum, sum/len(scores)) sum1,av1 = calcuScore(78) #第一次调用,scores接收1个实参78 print("总分=",sum1,"平均分=",av1) sum2,av2 = calcuScore(78,88) #第二次调用,scores接收2个实参78,88 print("总分=",sum2,"平均分=",av2) sum3,av3 = calcuScore(78,88,95) #第三次调用,scores接收3个实参78,88,95 print("总分=",sum3,"平均分=",av3) # 程序运行结果: # 分数: 78 总分= 78 平均分= 78.0 # 分数: 78 88 总分= 166 平均分= 83.0 # 分数: 78 88 95 总分= 261 平均分= 87.0
- 双星号参数是在形参名前加两个星号(**),把接收到的多个实参组合在一个字典内,以形参名为字典名。
def dict1(**p): #双星号形参用于把接收到的实参组合为字典
for item in p.items( ): #items()返回字典的所有"键-值"对
print(item) #打印字典的"键-值"对
dict1(x=1,y=2,z=3) #调用函数,传送实参给形参
# 程序运行结果:('x', 1) ('y', 2)('z', 3)
7.3.7 实参的序列解包
为含有多个变量的函数传递参数时,可以使用Python中的列表、元组、集合、字典以及其它可迭代对象作为实参,并在实参名前加一个星号,Python解释器将自动进行序列解包,然后,将序列中的元素值依次传递给相同数量的单变量形参。
def unPacking(a,b,c):
print(a+b+c)
#调用函数unPacking(a,b,c),实参分别为列表、元组、字典、字典的“值”和集合
lst = [1,2,3]
print(lst,": ",end=' ')
unPacking(*lst) #列表解包
tup = (1,2,3)
print(tup,": ",end=' ')
unPacking(*tup) #元组解包
dic = {1:'a',2:'b',3:'c'}
print(dic,": ",end=' ')
unPacking(*dic) #字典解包,默认使用字典的“键”
print(dic.values(),": ",end=' ')
unPacking(*dic.values()) #字典的“值”解包
set1 = {1,2,3}
print(set1,": ",end=' ')
unPacking(*set1) #集合解包
#程序运行结果:
#[1, 2, 3] : 6
#(1, 2, 3) : 6
#{1: 'a', 2: 'b', 3: 'c'} : 6
#dict_values(['a', 'b', 'c']) : abc
#{1, 2, 3} : 6
8.1使用集合推导式创建集合
- 使用集合推导式来创建集合,集合推导式与列表推导式类似,例如,
-
>>> { x*x for x in range(-3,3) } #{0, 9, 4, 1} >>> { s for s in ("Python","We","like")} #{'Python', 'like', 'We'} >>> fruit = [ 'banana', 'apple', 'morello', 'strawberry', 'pinapple' ] >>> {len(item) for item in fruit } #{5, 6, 7, 8, 10}
8.2集合的运算符
-
运算符
功能描述
x in
如果x包含在集合s中,则返回True;否则返回False
x not in
如果x包含在集合s中,则返回False;否则返回True
s == t
如果集合s和t包含相同的元素,则返回True,否则返回False
s != t
如果集合s和t不包含相同的元素,则返回True,否则返回False
s <= t
如果集合s的每一个元素都包含在集合t中,则返回True,否则返回False
s < t
如果集合s<= t 且s != t,则返回True,否则返回False
s | t
返回集合s和t的并集
s & t
返回集合s和t的交集
s - t
返回集合s和t的差集
s ^ t
返回集合s和t的对称差
- 8.3集合的方法
-
方法
功能描述
s.union(t,...)
等同s | t,新建集合,去除重复元素
s.intersection(t,...)
等同s & t,新建集合
s.difference(t,...)
等同s - t,以s为主来新建集合
s.symmetric_difference(t)
等同s ^ t,新建集合
s.intersection_update(t,...)
等同s &= t,s集合原地修改
s.difference_update(t,...)
等同s -= t,s集合原地修改
s.symmetric_difference_update(t)
等同s ^= t,s集合原地修改
s.issuperset(t)
如果集合s是t的父集,则返回True,否则返回False
s.isdisjoint(t)
如果集合s和t没有共同元素,则返回True,否则返回False
s.issubset(t)
如果集合s是t的子集,则返回True,否则返回False
- 8.4字典
>>> keys = ["Sun","Mon","Tue","Wed","Thur","Fri","Sat"]
>>> values = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]
>>> abbr = dict(zip(keys,values))
>>> print(abbr)
# {'Sun': 'Sunday', 'Mon': 'Monday', 'Tue': 'Tuesday', 'Wed': 'Wednesday', 'Thur': 'Thursday', 'Fri': 'Friday', 'Sat': 'Saturday'}
#还使用字典推导式来创建集合,字典推导式与列表推导式类似,例如
>>> { x:x*x for x in range(5) }
#{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
方法 | 功能描述 |
字典名.keys( ) | 以元组类型返回字典所有的“键” |
字典名.values( ) | 以元组类型返回字典所有的“值” |
字典名.items( ) | 以元组类型返回字典所有的“键-值”对 |
>>> specials = {"小赵":"通信","小钱":"电子工程","小孙":"自动化"}
#遍历字典所有的“键”
>>> for key in specials.keys(): #等价于for key in specials:
print(key, end=' ')
#小赵 小钱 小孙
>>> for value in specials.values(): #遍历字典所有的“值”
print(value, end=' ')
#通信 电子工程 自动化
>>> for item in specials.items(): #遍历字典所有的元素
print(item, end=' ')
#('小赵', '通信') ('小钱', '电子工程') ('小孙', '自动化')
for key,value in specials.items(): #遍历字典所有的元素
print('({},{})'.format(key,value), end=' ')
#(小赵,通信) (小钱,电子工程) (小孙,自动化)
9.1 文件概述
- 文件按照数据在计算机中存储的组织形式分为两种,文本文件和二进制文件:
- 文本文件:存储的是常规字符串,由若干文本行组成,通常美行以换行符’\n’结尾。文本文件是把文件中的字符按照某种编码规则进行了编码,例如ASCII、UTF-8等。Python程序使用的文本文件是Unicode字符集中的字符序列,通常分为一些行(字符序列中有换行符)
- 二进制文件:数据以二进制的形式存储于文件中,普通文本编辑工具一般无法打开编辑,二进制文件是把对象内容以字节串(bytes)进行存储,无法用记事本或其它普通文本处理软件直接进行编辑,通常也已无法被人类直接阅读和理解,需要使用专门的软件进行解码后读取、显示、修改和执行。常见的如图形图像文件、音频视频文件、可执行文件、资源文件、各种数据库文件、各类office文档等都属于二进制文件。
open(file, mode=’r’, encoding=None )
模式 | 描 述 |
r | 读取模式打开;默认 |
w | 写入模式打开;若文件已经存在,则清除已有文件内容;若文件不存在,创建文件 |
a | 附加模式打开;将数据内容附加写入到文件末尾;若文件不存在,则创建文件 |
x | 排他性创建文件,写模式打开;若果文件已经存在,报FileExistsError错误 |
b | 二进制模式打开 |
t | 文本模式打开;默认 |
+ | 更新文件,不单独存在。’r+’表示保留原文件内容,从头开始读写;’w+’表示清除文件已有内容;’x+’与’w+’类似,但排他性的创建文件;’a+’与’w+’类似,但不清除文件已内容,从最后开始读写 |
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)