python基础_2 变量类型和c常用函数

列表(list)

  • 添加元素("增"append, extend, insert)
  • 查找元素("查"in, not in, index, count)
  • 删除元素("删"del, pop, remove)
  • 排序(sort, reverse)

 

字典(dict)

  • 查看元素:根据键访问值,或用get
    • dict.get('age')无则返回none
    • dict.get('age',18)无则返回18
  • del删除元素,dict.clean()清空字典
  • len,key,values,items [返回一个包含所有(键,值)元祖的列表]

 

遍历:

  • enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

 

函数中修改函数外的全局变量:

  • 函数中使用global,当函数内出现和全局变量名相同对象的定义和赋值操作,理解为对全局变量进行修改,而不是修改局部变量。

 

函数参数类型:

  • 缺省参数:缺省参数的值如果没有传入,则取默认值。
  • 不定长参数:*args将几个存为元祖,**kwargs存为字典
def fun(a, b, *args, **kwargs):
    ...

fun(a=1,b=2,3,4,5,c=3,d=7)

#运行结果
a=1,b=2
args=(3,4,5)
kwargs={'c':3,'d':7}

 

引用:

  • 在python中,值是靠引用来传递来的,如a=[1,2,3],b=a,则id(a)==id(b)是True,且a.append(4),后b也为[1,2,3,4]

 

数据类型:

  • 可变类型有: 列表、字典、集合
  • 不可变类型有: 数字、字符串、元组

 

Python中函数参数是引用传递(注意不是值传递)

  • 对于不可变类型,因变量不能修改,所以运算不会影响到变量自身
  • 而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量

递归函数:


# 求n!
# n!=n*(n-1)! (n>1)
# 1!=1 (n=1)

def digui(n=1):
    if n>1:
        s=n*digui(n-1)
        return s
    else:
        return 1

 

lambda创建小型匿名函数

  • 只能返回一个表达式的值,所以匿名函数里不能直接调用print
  • 应用:作为参数传入函数

# 按字典的age键对应的值排序
stus = [
    {"name": "zhangsan", "age": 18}, 
    {"name": "lisi", "age": 19}, 
    {"name": "wangwu", "age": 17}
]
k=lambda x: x['age']
stus.sort(key= k)
#stus.sort(key= lambda x: x['age'])


#自定义函数
def sss(a,b,function):
    s=function(a,b)
    print(s)
    return s
    
sss(1,2,lambda x,y:x+y)

 

列表推导式:轻量级循环创建列表,多个 for 和 if 的组合


a=[(x,y,z) for x in range(4) for y in range(4) for z in range(2,10,4) if x%2==0 if y%2!=0]
type(a) # list
for i in a:
    print(i,end=' ')
#(0, 1, 2) (0, 1, 6) (0, 3, 2) (0, 3, 6) (2, 1, 2) (2, 1, 6) (2, 3, 2) (2, 3, 6)

a=[[x,y] for x in range(4) for y in range(4) if x%2==0 if y%2!=0]
# [[0, 1], [0, 3], [2, 1], [2, 3]]

a=[{'X':x,'Y':y} for x in range(4) for y in range(4) if x%2==0 if y%2!=0]
#  [{'X': 0, 'Y': 1}, {'X': 0, 'Y': 3}, {'X': 2, 'Y': 1}, {'X': 2, 'Y': 3}]

 

集类型:set,使用set,可以快速的完成对list中的元素去重复的功能,set、list、tuple之间可以相互转换

 

文件的打开与关闭:open(文件名,访问模式),close()

 
# 新建一个文件,文件名为:test.txt
f = open('test.txt', 'w')

# 关闭这个文件
f.close()

'''
r	以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w	打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a	打开一个文件用于追加。if该文件已存在,文件指针将会放在文件的结尾,新的内容写入到已有内容之后。
 	如果该文件不存在,创建新文件进行写入。
rb	以二进制格式打开一个文件用于只读。其他同上的 r
wb	以二进制格式打开一个文件只用于写入。其他同上的 w
ab	以二进制格式打开一个文件用于追加。其他同上的 a

r+	打开一个文件用于读写。文件指针将会放在文件的开头。
w+	打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+	打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。    
  	如果该文件不存在,创建新文件用于读写。
rb+	以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+	以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+	以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不            
   	存在,创建新文件用于读写。

'''


读数据:

  • read(num):可以从文件中读取数据,num表示要从文件中读取的数据的长度
  • read():一次性读取文件中所有的数据
  • readline():一次读文件中一行数据
  • readlines():一次性读整个文件中的内容进行读取,并返回一个列表,其中每一行数据为一个元素

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值