python第三天学习复习,集合set,文件操作,函数(普通函数,递归,高阶函数),字符编码和解码

 三元运算 

age = 23
#就是if else的简单写法
a = age if age < 20 else 25

集合 set

#集合是无序切不重复的,
#当对列表去重复的时候,可以直接使用 set(list),就将list转为set,并去除中间重复的
list = [1,2,3,4,5,5,6,7,8,9,1]
s = set(list)

运行结果:可以发现将 list中重复的去掉,并且类型变成set,再使用list(set),转为list

集合操作

# Author:zylong
set1 = set([1,2,3,4,5,5,6,7,8,9,1])
set2 = set([0,2,4,6,8,10])

#交集
print(set1.intersection(set2))
print(set1 & set2)

#并集
print(set1.union(set2))
print(set1 | set2)

#差集
print(set1.difference(set2))
print(set1 - set2)

#对称差集,就是 用并集 - 交集 的结果
print(set1.symmetric_difference(set2))
print(set1 ^ set2)
#是否是子集,父集
set1.issubset(set2)
set1.issuperset(set2)

#删除
set1.remove(1)#当元素不存在时报错
set1.discard(1)#不存在不报错
#增加
set1.add(10)

#判断是否存在
print( 10 in set1)
#修改
set1.update(set2)
print(set1)

字符编码和解码

  

#python 内部编码是unicode
#编码和解码,就是 --通过重甲unicode进行转换
#如果在文件头指定编码 #-*-coding:gbk-*- 这句话的意思是指,这个文件以什么编码解析,并不是文件中的内容以什么编码解析,
# 文件中的内容还是以unicode编码,并且编码后都是字节
string = "你好"

string_to_utf8 = string.encode("utf-8")
string_utf8_to_gbk = string_to_utf8.decode("utf-8").encode("gbk").decode("gbk")#这句话最后转为的是unicode

print(string_to_utf8)
print(string_utf8_to_gbk)

文件操作

# Author:zylong
#文件的增删改查

#使用with 这种方式,with结束时,程序自动关闭程序,就是调用f.close()方法
with open("复习.py",mode="r",encoding="utf-8") as f:
    "按行读取"
    for line in f:
        print(line)
#open的打开模式

f = open("复习.py",mode="r",encoding="utf-8")
#这个是只读模式,不能写,如果调用写的方法报错
#
f1 = open("aa","w",encoding="utf-8")
#这个w方式是创建新的文件,如果文件存在,则覆盖原先文件
f1.write("你好")
f1.close()
#在文件末尾追加
f = open("aa","a",encoding="utf-8")
f.write("\n好的\n")
f.close()
#这个是读写模式打开,这种模式写,是在文件末尾追加
f = open("bb","r+",encoding="utf-8")
print(f.tell())
print(f.readline())#读取文件指针所在的往后一行 打印的结果是“你好”
print(f.tell())
f.seek(3)#这里不能设置 1,2,因为文件开头是中文,中文站三个字节,这里的是按字节位置的
print(f.readline())#打印的结果是 “好”
f.write("\naaaa\n")
f.close()
#查找,就是使用循环,使用
for line in f:#这样的效率高,这个是一行一行的读
    pass
for line in f.readlines():#这种方式是将文件内容全部加载到内存中,当文件比较大的时候效率比较低
    pass

函数:

  

# Author:zylong
#函数定义:使用def 关键字,方法名,方法体
#没写返回值的,python默认返回 none
def fun_test1():
    print("第一个函数")

#有返回值
def fun_test2():
    return 0
#有参数
def fun_test3(x,y):
    print(x)
    print(y)
#调用的时候,有两种调用方式
#1.形参[按照参数的位置,进行调用]
fun_test3(1,2)
#2.实参
fun_test3(y=2,x=1)
#函数参数上有默认值
def fun_test4(x=4,y=5):
    print(x)
    print(y)
#这种调用的时候,可以传参数,也可以不穿参数,当不传值时,使用默认值
fun_test4()
#形参必须在实参前面
fun_test3(1,y=2);
#不定参数,后面不定参数,python包装成一个元组
def fun_test5(x,*avgs):
    print(x)
    print(avgs)
#调用有两种方式
fun_test5(10,11,12,13,14,15)
fun_test5(10,*[11,12,13,14,15])
fun_test5(10,*(11,12,13,14,15))

# def fun_test6(x,**kvavgs):
#     print(x)
#     print(kvavgs)
#这样调用会报错,因为第一个形式参数,已经给x赋值了,后面的 实参有给x赋值,所以报错,可以讲参数名换一下
#这种传递的是一个字典,是以实参方式,python封装成字典
def fun_test6(a,**kvavgs):
    print(a)
    print(kvavgs)
fun_test6("a",x="b",y="c",z="d")

#多返回值
def fun_test7():
    return 0,"a",("b","c"),["d","e","e"],{"f","g"},{"name":"zhang","age":20}

res = fun_test7()
#这种将返回结果变成一个元组返回
print(res)
#递归函数,函数自己调用自己
#递归函数必须有一下三个特别:1.有明确的结束条件,2每次进入更深一层,问题规模比上一次相应减少(下一层,使用上一层的结果)3递归效率不高
#求一个数,最终不能被2整除的余数

#当需要递归函数返回值的时候,调用递归的地方必须return ,这样才能把下层的结果返回给上层
def fun_recursive(n):
    if n % 2 != 0:
        return n
    else:
        return fun_recursive(n/2)
n = fun_recursive(30)
print(n)

#高阶函数,就是函数的参数是个函数

def fun_HighOrde(x,y,f):
    print(f(x)+f(y))

fun_HighOrde(20,6,fun_recursive)

  

时间: 2024-09-29 23:33:10

python第三天学习复习,集合set,文件操作,函数(普通函数,递归,高阶函数),字符编码和解码的相关文章

Python 学习笔记 - 集合和文件操作

Set 集合 Set是一个无序而且不重复的元素集合.下面看看他有哪些基本功能 创建集合 >>> s1 = {11,22} s2 = set() s3 = set([11,22,33,4]) print(s1,s2,s3) ------------------- {11, 22} set() {33, 11, 4, 22} 把列表转换成集合,注意列表中重复的元素只保留一次 >>> li = [11,22,11,22] s1 = set(li) print(s1) ----

python第三周学习内容

1.集合: 集合的创建: list_1 = set([1,2,3,4,5]) list_2 = set([2,3,44,7,8]) 集合的特性:集合是无序的,集合可以去掉重复的元素 集合的操作:求交集: print(list_1.intersection(list_2)) #{2,3} print(list_l & list_2) #求交集,{2,3} 求并集: print(list_1.union(list_2)) #{1,2,3,4,5,7,8,44} print(list_l | list

python学习三十四天函数高阶函数定义及用法

python函数高阶函数是把函数当成一个变量,传递给函数作为参数,或者函数的返回值里面有函数,都称为高阶函数, 1,把函数作为参数传递 def dac(x,y): return x+y def test(n): print(n) test(dac) 输出结果为 函数类型function 2,把函数做为返回值,也是高阶函数 def test(x,y): return abs,x,y 输出结果为 列表,包含 函数,参数 文章来自(www.96net.com.cn) 原文地址:https://www.

python基础知识5(集合,高级特性,高阶函数)

** 删除列表中重复的元素:l = [1,2,3,1,2,3] - 强制转化列表为集合类型:list(set(l)) - 将列表转化为字典,拿出里面的所有key值: dict.fromkeys(l).keys() ** 实现switch的两种方法: - if...elif...else... - 通过字典实现: d= {"key",func} if oper in d.keys(): d[oper]() else: print "error" # 集合 ## 集合的

集合与文件操作

今天在云和学院学习了集合和文件操作 ArrayList的添加.移除.清除 string[] strs = { "阳光路上", "如果爱", "玫瑰花的葬礼", "超级英雄" }; string str = "love"; int i = 1; double d = 10.21; float f = 1.2f; ArrayList arraylist = new ArrayList(); arraylist.

Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊

函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 而函数式编程(请注意多了一个"式"字)--Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算. 我们首先要搞明白计算机(Computer)和计算(Compute)的概念. 在计算机的层次上,CPU执行的是加减乘除的指令代码

Swift 烧脑体操(三) - 高阶函数

前言 Swift 其实比 Objective-C 复杂很多,相对于出生于上世纪 80 年代的 Objective-C 来说,Swift 融入了大量新特性.这也使得我们学习掌握这门语言变得相对来说更加困难.不过一切都是值得的,Swift 相比 Objective-C,写出来的程序更安全.更简洁,最终能够提高我们的工作效率和质量. Swift 相关的学习资料已经很多,我想从另外一个角度来介绍它的一些特性,我把这个角度叫做「烧脑体操」.什么意思呢?就是我们专门挑一些比较费脑子的语言细节来学习.通过「烧

16. Python 高阶函数、匿名函数

1.      高阶函数 高阶函数就是把函数当成参数传递的一种函数 举例: def add(x, y, f): return f(x) + f(y) print (add(-8, 11, abs)) 返回结果: 19 ① map() 函数 map() 函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 举例: lst = [1, 2, 3, 4, 5, 6, 7, 8, 9] def f(x): return x * x map(

Python 高阶函数 -- Sorted

详细内容请参考廖雪峰官网,此处只是一些摘抄,心得与练习的coding. Python内置的sorted()函数就可以对list进行排序: >>> sorted([36, 5, -12, 9, -21]) [-21, -12, 5, 9, 36] sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序: >>> sorted([36, 5, -12, 9, -21], key=abs) [5, 9, -12, -21, 3