python3 认真学习的第五天,从零开始 函数

本文深入探讨了Python函数的定义、使用及高级特性,包括参数传递、默认参数、可变参数、关键字参数、函数注释等,通过实例演示了如何灵活运用这些特性进行高效编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#函数
def He(name):
    print('你好,我的名字叫做{},来自新加坡'.format(name))
>>> He('加拿大炮王')
你好,我的名字叫做加拿大炮王,来自新加坡

#注释文档
def add(x,y):
    '计算两个数的和'
    return x+y
>>> print(add.__doc__)
计算两个数的和
>>> help(add)
Help on function add in module __main__:

add(x, y)
    计算两个数的和[]
def test(flag):
    print('这是在函数中打印的信息')
    if flag:
        return
    print('这行信息只有在flag为false时才会输出')
    test(False)
    print('-'*10)

#函数参数
x=20
y='我是火车王'
def test(x,y):
    x=100
    y='im huochewang'
>>> test(x,y)
100 im huochewang
>>> x,y
(20, '我是火车王')


x={'a':30,'b':20}
y=['a','b','c']
def test1(x,y):
    x['a']=100
    y[1]='abcd'
>>> test1(x,y)
>>> x,y
({'a': 100, 'b': 20}, ['a', 'abcd', 'c'])

data={}
data['d']={}
data['name']=[]
data['products']=[]
print('请输入字典数据,key和value之间用逗号分隔')
dictStr=input(':')
list = dictStr.split(',')
keys=[]
values=[]
for i in range(len(list)):
    #key
    if i % 2 == 0:
        keys.append(list[i])
    else:
        values.append(list[i])
data['d'].update(dict(zip(keys,values)))

print('请输入姓名,多个姓名之间用逗号隔开')
nameStr=input(':')
names=nameStr.split(',')
data['name'].extend(names)

print('请输入产品,多个产品之间用逗号隔开')
propertyStr=input(':')
propertys=propertyStr.split(',')
data['products'].extend(propertys)

for key in data.keys():
    print(key,':',data[key])
#结果
请输入字典数据,key和value之间用逗号分隔
:help,帮助,commputer,计算机,world,世界
请输入姓名,多个姓名之间用逗号隔开
:bili,joho,mary
请输入产品,多个产品之间用逗号隔开
:book,bike,buul
d : {'help': '帮助', 'commputer': '计算机', 'world': '世界'}
name : ['bili', 'joho', 'mary']
products : ['book', 'bike', 'buul']

def init(date):
    date['d']={}
    date['name']=[]
    date['price']=[]

def inputlist(flag,msg):
    print(msg)
    inputStr = input(':')
    list = inputStr.split(',')
    if flag:
        return
    keys=[]
    resulf={}
    values=[]

    for i in range(len(list)):
        #key
        if i %2 == 0:
            keys.append(list[i])
        else:
            values.append(list[i])
    return dict(zip(keys,values))
def out (date):
    for key in date.keys():
        print(key,':',date[key])


data ={}
data1={}
init(data)
init(data1)
data['d'].update(inputlist(False,'请输入字典数据,key和value之间用逗号隔开'))
data['name'].extend(inputlist(True,'请输入姓名,多个姓名之间用逗号隔开'))
data['price'].extend(inputlist(True,'请输入产品,多个产品之间用逗号隔开'))

data1['d'].update(inputlist(False,'请输入字典数据,key和value之间用逗号隔开'))
data1['name'].extend(inputlist(True,'请输入姓名,多个姓名之间用逗号隔开'))
data1['price'].extend(inputlist(True,'请输入产品,多个产品之间用逗号隔开'))

out(data)
out(data1)
#输入参数
请输入字典数据,key和value之间用逗号隔开
:help,帮互,computer,计算机,world,世界
请输入姓名,多个姓名之间用逗号隔开
:bill,john,mary
请输入产品,多个产品之间用逗号隔开
:book,bike,iopd
请输入字典数据,key和value之间用逗号隔开
:nuw,新的,tset,测试,world,世界
请输入姓名,多个姓名之间用逗号隔开
:马云,马化腾,柳传志,扎克伯格
请输入产品,多个产品之间用逗号隔开
:手机,电脑,自行车,地铁,新干线咣当咣当
#结果
d : {'help': '帮互', 'computer': '计算机', 'world': '世界'}
name : ['bill', 'john', 'mary']
price : ['book', 'bike', 'iopd']
d : {'nuw': '新的', 'tset': '测试', 'world': '世界'}
name : ['马云', '马化腾', '柳传志', '扎克伯格']
price : ['手机,电脑,自行车,地铁,新干线咣当咣当']

#汉诺塔
def move(n,a,b,c):
    #a,b,c分别是三根柱子,n为套在a柱上的圆圈个数
    if n==1:
        print(a,'-->',c)
        return
    move(n-1,a,c,b)
    move(1,a,b,c)
    move(n-1,b,a,c)

n = int(input('请输入一个整数'))
#角谷猜想
while True:
    if n == 1:
        print('1')
        break
    if n % 2 == 0:
        a=n//2
        print(n,'/ 2 = ',a)
        n=a
    else:
        i=n*3+1
        print(n,' * 3 =',n)
        n=i

def geet(name,greeting):
    return '{},我是{}!'.format(greeting,name)
>>> geet('李大锤','hello')
'hello,我是李大锤!'
>>> geet(name='李大锤',greeting='hello')
'hello,我是李大锤!'
>>> geet('王大锤',greeting='hello')
'hello,我是王大锤!'

def geet(name='bill',getting='hello'):
    return '{},我的名字叫做{}'.format(getting,name)
>>> geet()
'hello,我的名字叫做bill'

def num1(x,y):
    return x - y
>>> num1(20,5)
15
>>> num1(5,20)
-15
>>> num1(x=20,y=5)
15
>>> num1(y=5,x=20)
15

def num2(x=100,y=50):
    return x - y
>>> num2()
50
>>> num2(80,30)
50
>>> num2(30,80)
-50
>>> num2(y=50,x=100)
50
>>> num2(50,y=100)
-50
>>> num2(y=100)
0
>>> num2(100,m=500)#抛出异常,系统不清楚m的值是100还是500
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: num2() got an unexpected keyword argument 'm'

def tset(*params):
    print(params)
>>> tset('hello!,myname is bill,my phonenumber:111111')
('hello!,myname is bill,my phonenumber:111111',)

def test(*parmas):
    for parma in parmas:
        print('<' + str(parma) + '>',end=' ')
>>> test('呼呼呼呼呼呼呼','不要了','嘻嘻嘻嘻')
<呼呼呼呼呼呼呼> <不要了> <嘻嘻嘻嘻> >>>

def test(value,*parmas):
    print('['+ value +']')
    for parma in parmas:
        print('<' + str(parma) + '>',end=' ')
>>> test('hello','my name is bill','but i dont like you ,do you konw')
[hello]
<my name is bill> <but i dont like you ,do you konw> >>>

def test(value,*parmas,value1,value2):
    print('['+ value +']')
    for parma in parmas:
        print('<' + str(parma) + '>',end=' ')
    print('{},我是{}'.format(value1,value2))
>>> test('hello','\n','哈哈哈哈',123456789,'我是火车王','\n',value1='救命',value2='非洲刘德华')
[hello]
<
> <哈哈哈哈> <123456789> <我是火车王> <
> 救命,我是非洲刘德华

def test(value,*parmas,value1=100,value2=200):
    print('['+ value +']')
    for parma in parmas:
        print('<' + str(parma) + '>',end=' ')
    print('{},我是{}'.format(value1,value2))
>>> test('hello','呼呼呼呼','我是火车王')
[hello]
<呼呼呼呼> <我是火车王> 100,我是200

def addnum(*num):
    result=0
    for number in num:
        result += number
    return result
>>> addnum(1,2,3,4,5,6)
21

def calculate(type,*number):
    result=0
    if type =='add':
        for num in number:
            result += num
    elif type=='sub':
        result=number[0]
        for i in range(1,len(number)):
            result -= number[i]
    elif type=='mul':
        result=1
        for num in number:
            result *= num
    elif type =='div':
        result=number[0]
        for in in range(1,len(number)):
            result /= number[i]
    elif type =='exit':
        break
    else:
        print('没有这项服务')
    return result

def number(s1,s2):
    print(s1,s2)
>>> number('hello','world')
hello world
>>> list=['hello','world']
>>> number(*list)
hello world

#传入列表参数
def number(*ss):
    for s in ss:
        print('<{}>'.format(s),end=' ')
>>> number(*'sadasf')
<s> <a> <d> <a> <s> <f> >>> number(*[1,2,3,5,6])
<1> <2> <3> <5> <6> >>>
>>> list=['hello','world']
>>> number(*list)
<hello> <world> >>>

#传入字典参数
def number(**ss):#加**号
    for item in ss.items():
        print('{}  =  {}'.format(item[0],item[1]))
>>> dict={'a':40,'b':50,'c':60}
>>> number(**dict)
a  =  40
b  =  50
c  =  60
>>> number(**{'name':'bill','age':50})
name  =  bill
age  =  50

def number(ss):#不加**号
    for item in ss.items():
        print('{}  =  {}'.format(item[0],item[1]))
>>> dict={'a':40,'b':50,'c':60}
>>> number(dict)
a  =  40
b  =  50
c  =  60
>>> number({'name':'bill','age':50})
name  =  bill
age  =  50

def add(x,y,z):
    return x+y+z
>>> add(1,2,3)
6   
>>> list=[1,2,3]
>>> add(*list)
6
>>> dict={'x':1,'y':2,'z':3}
>>> add(**dict)
6

#列表
def add2(*numbers):
    ruselt=0
    for number in numbers:
        ruselt += number
    return ruselt
>>> add2(1,2,3,4,5,6)
21
>>> add2(*list)
6
#字典
def add3(**numbers):
    ruselt=0
    for item in numbers.items():
        ruselt += item[1]
    return ruselt
>>> add3(**dict)
6
>>> dict
{'x': 1, 'y': 2, 'z': 3}
#普通
def add4(numbers):
    ruselt=0
    for item in numbers.items():
        ruselt += item[1]
    return ruselt
>>> add4(dict)
6
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值