python set 集合,文件操作,函数以及函数的参数

集合set

# -*- coding:utf-8 -*-
# Author:Jone
#集合 无序不可重复

list1 = [2,1,4,6,4,5]
list1 = set(list1)
print(list1)
#定义set的两种方式
#list2=set([2,2,5,6])
list2 = {2,2,5,6,7}
print(list2)
#取交集
print(list1.intersection(list2))
print(list1 & list2)
print("&")
#取并集
print(list1.union(list2))
print(list1 | list2)
print("|")
#求差集
print(list1.difference(list2))
print(list1 - list2)
print(list2.difference(list1))
print(list2 - list1)
print("-")
#判断是不是子集
print(list1.issubset(list2))
#是不是父集
print(list1.issuperset(list2))
#对称差集 取互相没有的
print(list1.symmetric_difference(list2))
print(list1 ^ list2)
print("^")
#没有交集返回true
print(list1.isdisjoint(list2))
list3 = {2,4,6}
list4 = {1,5,7}
print(list3.isdisjoint(list4))

#添加
list3.add(111)
list3.update([1,2,7])
print(list3)

#删除
list3.remove(111)
print(list3)
#随机删 ??
print(list3.pop())
print(list3.discard(123))
#存在即删除
list3.discard(7)
#判断是否存在
print( 2 in list3)
print( 2 not in list3)


print("===========pop===============")
list3 = [234,2341,234123,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
list3 = set(list3)
print(list3)
list3.pop()
print(list3)
list3.pop()
print(list3)
list3.pop()
print(list3)
list3.pop()
print(list3)

 

文件操作

# -*- coding:utf-8 -*-
# Author:Jone
'''
r 模式 读
w 模式 打开文件会创建一个文件 所以相当于会删除已有的文件
a 模式 是追加
r+    读写  读和追加的模式 write 会写到文件末尾
w+    写读 先创建一个文件然后再写 接着读取, 写的内容也只能在末尾
a+    追加读写
rb    以二进制的方式读取文件
wb    以二进制的方式写文件  写的内容必须 是byte
rU或者r+U 会把 \r \n \r\n  自动转换为 \n
写的内容只能在末尾
'''

file = open("yesterday","r",encoding="utf-8") # this is file handle
#data = file.read()
#print(data)

#readlines 一次性读取了所有的行 只适合读小文件
for index,line in enumerate(file.readlines()):
    if index == 2:
        print("------分割--------")
        continue
    print(line.strip())

file.close()
#这种方式 就是一行行去读
file = open("yesterday","r",encoding="utf-8")
while True:
    data = file.readline()
    if data == "":
        break
    else:
        print(data.strip(),"-------------")
print("#####################")
#这种方式 就是一行行去读 效率比较高
file = open("yesterday","r",encoding="utf-8")
for line in file:
    print(line.strip())
#文件读完 光标到最后 如果想重新读
#看文件读取的位置 记录字符数
file = open("yesterday","r",encoding="utf-8")
print(file.tell())
print(file.readline())
print(file.readline())
print(file.readline())
print(file.tell())
#重置文件读取的位置 参数可以是任意的第几个字符
file.seek(0)
print(file.readline())

print(file.encoding)
#返回操作系统python操作文件接口的编号
print(file.fileno())

#从缓存中刷到硬盘里
file.flush()

#从头清空文件,如果参数是10 表示从10的位置后
file = open("yesterday","a",encoding="utf-8")
file.seek(10)
file.truncate(10)
file.close()

在Python 2.7 后,with又支持同时对多个文件的上下文进行管理,即:
#with 帮组自动关闭文件
with open("yesterday","r",encoding="utf-8") as f:
    for line in f:
        print(line)
#打开多个文件
with open("yesterday","r",encoding="utf-8") as f, \
        open("yestarday2","r",encoding="utf-8") as f2,\
        open("yesterday","r",encoding="utf-8"):
    for line in f:
        print(line)

 

函数

简单理解 java中的方法

格式

def function_name(args):

return

return 可以写也可以不写

如果一个函数没有返回值 在调用该方法的时候

eg:

def func1():

print("123")

a = func1()# a 接收到的值 None

 

返回值 也可以是

return 1,2,3,[1,2,3]

返回的对象将会以一个元组的形式返回

 

函数的参数

 

参数可以是形参,也可以是实参

形参可以设置默认值

def func(name,age,sex="m"):
    pass

实参分为 位置参数和关键参数 关键参数必须放在位置参数之后

eg:

def func(name,age,sex):
    pass
func("zhangsan",12,"男")# 位置参数
func("lisi",age= 12,sex = "男") 关键参数

 

非固定参数

两种

def func1(name,age,*args):
    print(name,age,args)

func1(1,25,123123) #args是元组的形式输出

def func2(name,age,**kwargs):
    print(name,age,kwargs)

func2(1,2,qq="1",qqw="2")#kwargs是字段的形式输出

 

局部变量和全局变量

 

局部变量的作用范围

name = "zhangsan"
def change_name(name):
    print("before:",name)
    name = "lisi"
    print("after:",name)
change_name(name)
print(name)

全局变量 函数内一般是改不了的 一般不推荐修改全局变量

company = "company"
def change_name(name):
    #global company #加这个 在函数内修改后会全局生效
    print("before:",name)
    name = "lisi"
    company = "company1"
    print("after:",name)
name = "zhangsan"
change_name(name)
print(name)
print(company)

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值