函数四部分和文件操作

函数四部分:
函数名:是使用函数的依据
函数体:是完成功能函数的代码块
函数返回值:是用来接收函数完成的反馈信息
函数参数:是完成函数需要的信息
函数定义:
def fn(参数n):
  print(参数n)
  return 参数n
fn(参数n)
函数分类:函数体,返回值,参数列表
函数体:空函数、非空函数
函数参数:有参函数、无参函数
返回值:空函数,空函数return、有一个返回值的return、有多个返回值的return(是以元组形式存放数据)
函数的嵌套使用
# # 数字比较大小:
# # 两个数字比大小
def max_2(n1,n2):
if n1>n2:
return n1
# # 三个数字比大小
def max_3(n1,n2,n3):
m2=max(n1,n2,n3)
return m2
# # 四个数字比大小
def max_4(n1,n2,n3,n4):
m3=max(n1,n2,n3,n4)
return m3
print(max_4(50,20,90,40))
# # 函数分类
# # 按照函数体
# # 空函数
def fn():
pass
# # 非空函数
def fn():
print('雨一直下!')
fn()

name1=input('name1:')
name2=input('name2:')
def fn(name1,name2):
print('欢迎%s和%s光临' %(name1,name2))
# name1=input('name1:')
# name2=input('name2:')
fn(name1,name2)
# # 按照参数列表
# # 有参函数
def fn(num):
print('欢迎%s来到老男孩' %num)
num=input('num:>>>')
fn(num)
# # 无参函数
def fn():
print('雨一直下,气氛不算融洽')
fn()
# 按照返回值
# 没有return
def max():
print('好嗨哦!')
print('气死了')
print('你最好啦')
max()
# #有return
def num():
print('好high哦')
print('haohoahoa')
return #return就相当于while循环中的break
print('wulalaala')
num()
# 有一个返回值的return
def num_max(n1,n2,n3):
if n1>n2 and n1>n3:
return n1
elif n1<n2 and n2>n3:
return n2
else:
return n3
res=num_max(12,23,45)
print(res)
# 有多个返回值的return
def msg(n1,n2):
r1=n1+n2
r2=n1/n2
r3=n1-n2
r4=n1*n2
return r1,r2,r3,r4
print(msg(12,2))
# 函数的嵌套
def fn1():
print('胡歌最帅!')
fn2()
def fn2():
print('不,王力宏最帅!')
fn3()
def fn3():
print('谁也影响不了鸣人在我心中的地位!')
fn1()
'''

今日内容

字符编码:人所能理解的语言与计算机所能理解的二进制01语言进行交流的媒介

编码表:两种对应关系的结构(人语言与计算机语言)

Unicode utf-8 gbk

unicode 与utf-8 的关系

Unicode 是2字节汉字2字节英文,占有空间相对较大,读取效率高

utf-8中汉字是3-6给字节,英文是1个字节,一般来说编码都是用英文编写,所以utf-8相对占用空间少,读取效率低

Unicode与utf-8采用的是同一张编码表,utf-8是Unicode的一种具体体现方式,变长存储类型,Unicode实在内存中存储,硬盘中是utf-8存储。

utf-8变产的优点是:在大量的数据运行中,是以英文为主,所以utf-8更省空间,传输速度更快。

字符与字节

s1=u' unicode

s2=b' bytes

s3=r' 原义字符串

编码和解码

将u编成b print(u''ecode('utf-8'))

将b编成u print(b''decode('utf-8'))

ex print(u'你好‘ encode('utf-8')) u-b

print(b'print(u'你好‘ encode('utf-8'))' decode('utf-8')) b-u 你好

文件操作:打开文件-操作文件-关闭文件

打开文件f=open('文件名’,‘执行read或者write',encoding='utf-8')

操作文件:

f.read() .......全部读取

f.readline() ........读取一行

f.readlines() ..........读取全部行

文件的去重

s=set()

for line in f:

  print(line)

  s.add(line)

print(s)

关闭文件f.close()

文件模式w

主模式:r:读|w:写|a:追加

从模式:b:按照字节操作|t:按照字符操作|+:可读可写

从模式跟在主模式之后

文件不存在会创建新文件|文件存在会先清空文件,在操作文件

今日内容总结:

元组tuple:可以存放多个值,是有序排列,不可变类型。

定义:是用来记录同种属性的多个值,可以被for循环遍历。

t=(1,) #在最底层就是t=tuple(1,)

元组也可以存放多个类型的值,比如元组中可以存放列表

t=(1,2,3,4,['a','s','d','f'],'abc') 然后这个类型中的列表是可变类型,列表里面的值改变,元组id不变,但其实元组本身并没有被改变



只是改变了列表的内部值的,元组存储的id没有变化,所以元组是不可变类型。

元组的常用方法:

t=(1,2,'a','b',['s','1','3'],4)

1.索引:正向取和反向取值 print(t[0]) print(t[-1])

2.切片:由索引可以引出切片。 print(t[开始:要切长度:步长]) print(t[ : : ])

3.长度:len计算长度 print(len(t))

4.成员判断in 和not in 返回值是True或者False

print(‘a' in t ) True

print('aaa' in t) False

5.没有增删改查

6.可以被for循环遍历取值

for i in t:

print(i)

注意:元组中的数据不可以发生改变,如果要改变元组中的数据,可以将元组转换成列表

l=list(t)

t=tuple(l)

字典dict:可以存放多个不同类型的值,是可变类型,字典是按照key取值,无序

dic={1,2,3} 在底层则是dic=dict{1,2,3}

d=dic(a=1,b=2,c=3)

d={}.fromekeys(k,v)

1.字典是无序的,所以不可以索引取值,所以也没有切片,那么字典取值是按照key来取值,还有一种是get取值

d1=dic.get(key,None) #一般来说,get后面的默认值为None,如果不写就会直接是默认值,规定默认值的话则是打印规定值

d2=dic.get(key,'该值不存在’)

声明:字典的key为不可变类型,一般都有int,float,str,tuple

value 可以是任意类型的值。

.get(k,) ..........用来取值

.append ........用来加值

.update........用来增加值

.pop ..........用来删除指定值的key,删除具有返回值

.popiteam ........用来随机删除,返回值是key:value

.remove ..........用来移除指定元素

del ...............通用删除 ,没有返回值

.copy ...........用来进行复制,是一个浅copy

.fromkeys(key,value) ...............自定义{},key可以自定义,完了以后遍历key,每个value值是一样的

.setdefault ..........判断一个key值是否在列表中,不在就添加

dic[k]=v d=dic(a=1,b=2)

集合set():数据具有唯一性,可以用来去重,无序存储,无key五index,无法取值

交集 & 。。。。。两个集合的共同元素

并集 | 。。。。。。两个集合的所有元素

差集 —。。。。。前面一个集合去掉与后面的集合相重合的元素,只剩只有前面的集合元素

对称差集 ^ ..........除掉两个集合都有的共同元素,显示两个集合的元素

.add .............添加元素

.pop .............随即删除元素

.remove ..........有ele的删除,没有则异常

*******去重

set() 本身就有去重的功能

l=['a','b','c'] 去重 s=set(l) 已经去重,然后可以再次转换成列表 l=list(s)

.isdisjoint ........判断是否有交集 True/False

posted @ 2019-04-24 08:05  mcc61  阅读(265)  评论(0编辑  收藏  举报