概述
目录
- 函数
- 1.函数的参数
- 2.函数的返回值
- 3.形参和实参
- 4.函数文档
- 5.默认参数和关键参数
- 6.收集参数
- 7.局部变量和全局变量
- 8.global关键字
- 9.内嵌函数
- 10.闭包
- 11.函数式编程
- 12.一些函数题型
- 字典和集合
- 1.创建和访问字典
- 2.各种内置方法
- 3.创建集合
- 4.不可变集合
- 总结
函数
1.函数的参数
def add(num1,num2)
print(num1+num2)
add(1,3)
4
2.函数的返回值
在python中,并不需要定义函数的返回值类型,函数可以返回不同类型的值;而如果没有返回值,则默认返回None。
def hello();
print("Hello~")
print(Hello())
Hello~
None
3.形参和实参
形参指的是函数定义的过程中小括号里的参数,而实参则指的是函数在被调用的过程中传递进来的参数。
在形参中是打包的意思
在实参中是解包的意思
def sayHi(name):
print("嗨, %s" % name)
sayHi("小甲鱼")
嗨,小甲鱼
4.函数文档
def exchangeRate(dollar):
"""
功能:汇率转换,美元 -> 人民币
汇率:6.54
日期:2021-06-25
"""
return dollar * 6.54
exchangeRate(10)
65.4
5.默认参数和关键参数
关键参数就是在传入实参时明确指定形参都变量名,其特点就是参数之间不存在先后顺序。
默认参数使得函数的调用更加便捷。
def watchmovie(name ='黄莹',cigarette =True,beer =True,girlfriend =True):
sentence = name + '带着'
if cigarette:
sentence = sentence + '香烟'
if beer:
sentence = sentence + '啤酒'
if girlfriend:
if cigarette or beer:
sentence = sentence + '和女朋友'
else:
sentence = sentence + '女朋友'
sentence = sentence + '去看电影'
return sentence
print(watchmovie(name ='小金鱼',girlfriend =False))
6.收集参数
收集参数前面*是打包的意思
def test(*params):
print("有%d个参数" % len(params)
print("第二个参数是:,params[1])
test('f','i','s','h')
有4个参数
第二个参数是:i
object参数是一个收集参数,如果传入多个参数,将依次打印出来;sep参数指定多个参数之间的分隔符,默认是空格;end参数指定以什么字符结束打印,默认是换行符;file参数指定输出的位置;flush指定是否强制刷新缓存。
7.局部变量和全局变量
局部变量的作用范围只能在函数内部生效,它不能在函数外被引用。全局变量的作用范围更广泛。
def discount(price,rate):
final_price = price*rate
#试图修改全局变量的值
old_price = 50
print('在局部变量中修改后old_price的值是:%.2f'% old_price)
return final_price
old_price = float(input('请输入原价:'))
rate = float(input('请输入折扣率:'))
new_price = discount(old_price, rate)
print('全局变量old_price现在的值是::%.2f'% old_price)
print('打折后价格是:',old_price * rate)
8.global关键字
global可以在函数内部去修改全局变量。
count =5
def myFun():
global count
count =10
print(count)
myFun()
10
count
10
9.内嵌函数
在嵌套函数中,内部函数可以引用外部函数的局部变量:
def fun1():
x =88
def fun2():
print(x)
fun2()
fun1()
88
10.闭包
def funX(x):
def funY(y):
return x*y
return funY
temp = funX(8)
temp(5)
40
11.函数式编程
[1] lambda
lambda关键字可以用来创建匿名函数。
g =lambda x:2*x+1
g(5)
11
[2]filter
filter()函数是一个过滤器,它的作用是在海量的数据里面提取出有用的信息。
filter()这个内置函数有两个参数:第一个参数可以是一个函数也可以是None,是一个函数的话,则将第二个可迭代对象里的每一个元素作为函数的参数进行计算,把返回True的值筛选出来;如果第一个参数是None,则直接将第二个参数中为True的值筛选出来。
temp = filter(None,[1,0,False,True]
list(temp)
[1,True]
[3]map
map一般作“映射”来解释。
list =(map(lambda x:x*2,range(10)))
[0,2,4,6,8,10,12,14,16,18]
12.一些函数题型
#阶乘
def recursion(n):
result =n
for i in range(1,n):
result *=i
return result
number = int(input('请输入一个正整数:'))
result = recursion(number)
print("%d的阶乘:%d"%(number,result))
#汉诺塔
def hanoi(n,x,y,z):
if n ==1:
print(x,'-->',z)
else:
hanoi(n-1,x,z,y)
print(x,'-->',z)
hanoi(n-1,y,x,z)
n =int(input('请输入汉诺塔的层数:'))
hanoi(n,'x','y','z')
字典和集合
1.创建和访问字典
可以使用dict()内置来创建字典:
dict1 =dict((('f',10),('i',20),('s',30)))
dict1
{'f':10,'i':20,'s':30}
因为dict()函数的参数可以是一个序列(但不能是多个),所以要打包成一个元组(或列表)序列。
字典不允许同一个键出现两次,如果同一个键被赋值两次,后一个值会被记住:
courses ={"小甲鱼“:"《零基础学习python》","不二如是":《零基础学习Scratch》","小甲鱼“:"《极客python之效率革命》"}
courses
{"小甲鱼“:'《极客python之效率革命》','不二如是":《零基础学习Scratch》'}
字典是不支持拼接和重复操作的:
f = d+e
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
2.各种内置方法
(1)fromkeys(seq[,value])
fromkeys()方法用于创建并返回一个新的字典,它有两个参数;第一个参数是字典的键;第二个参数是可选的,是传入键对应的值,如果不提供,那么默认是None。
dict1 ={ }
dict1.fromkeys((1,2,3))
{1:None,2:None,3:None}
(2)keys(),values()和来item()
key()用于返回字典的键,value是()用于返回字典中所有的值,item()是返回字典中所有的键值对。
dict1={}
dict1 =dict1.fromkeys(range(32),'赞')
dict1.keys()
dict_keys([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31])
dict1.values()
dict_values(['赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞', '赞'])
dict1.items()
dict_items([(0, '赞'), (1, '赞'), (2, '赞'), (3, '赞'), (4, '赞'), (5, '赞'), (6, '赞'), (7, '赞'), (8, '赞'), (9, '赞'), (10, '赞'), (11, '赞'), (12, '赞'), (13, '赞'), (14, '赞'), (15, '赞'), (16, '赞'), (17, '赞'), (18, '赞'), (19, '赞'), (20, '赞'), (21, '赞'), (22, '赞'), (23, '赞'), (24, '赞'), (25, '赞'), (26, '赞'), (27, '赞'), (28, '赞'), (29, '赞'), (30, '赞'), (31, '赞')])
(3)get(key[,default])
get()方法提供了更宽松的方式去访问字典项,当键不存在的时候,get()方法并不会报错,只是默默的返回了一个None。
如果不知道一个键是否在字典中,可以用(in或 not in)来判断。
如果需要清空一个字典,则使用clear()方法。
a ={'姓名':'小甲鱼','密码':'123456'}
a =b
b
{'姓名':'小甲鱼','密码':'123456'}
a.clear()
a
{}
b
{}
(4)copy(),setdefault(key[,default]),update([other])
copy()方法是用于拷贝整个字典
setdefault()在字典中找不到相应的键时会自动添加
update()用于更新字典
a ={1:'one',2:'two',3:'three'}
b =a.copy()
id(a)
1680671352064
id(b)
1680671352512
a ={1:'one',2:'two',3:'three'}
b =a.copy()
id(a)
1680671352064
id(b)
1680671352512
a ={1:'one',2:'two',3:'three'}
a.setdefault(2)
'two'
a.setdefault(9)
a
{1: 'one', 2: 'two', 3: 'three', 9: None}
pets ={'米奇':'老鼠','汤姆':'猫'}
pets.update(米奇='狗')
pets
{'米奇': '狗', '汤姆': '猫'}
3.创建集合
创建集合有两种方法:一种是直接把一堆元素用大括号({})括起来;另一种是用set()内置函数。
set1 ={'小甲鱼','小金鱼','小鲤鱼'}
set2 =set(['小甲鱼','小金鱼','小鲤鱼'])
set1 ==set2
Ture
4.不可变集合
frozenset()函数就是把元素给冰冻起来:
set1.add(7)
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
set1.add(7)
AttributeError: 'frozenset' object has no attribute 'add'
总结
这已经是我学习python的第二周了,相对于Java来说,python这一编程语言稍微简单一些,但也有许多复杂的内容需要去学习,虽然已经学习两周了,但我仍有一些基础的知识没有记牢固。今天我将会把我这周学习都内容分享给大家。
以上就是我这一周学习的新的内容,这个周末小组也将进行第一次考试,有些小紧张,因为好多东西还都没有学会,但我也会继续努力的,争取在小组中取得优异的成绩。
最后
以上就是机灵耳机为你收集整理的Python基础——函数与字典和集合函数字典和集合总结的全部内容,希望文章能够帮你解决Python基础——函数与字典和集合函数字典和集合总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复