python 函数

def say(): #函数名
print('hello')#函数体
#函数不调用是不会被执行的
# say() #调用函数
#函数的参数
def calc(a,b): #形参, 形式参数
#位置参数,必填参数
res = a * b
print('%s * %s = %s'%(a,b,res))

# calc(7,8) #实参,实际参数
def op_file(file_name,conent=None):
#默认值参数,它是非必填的
f = open(file_name,'a+',encoding='utf-8')
f.seek(0)
if conent:#不为空代表写
f.write(conent)
f.flush()
else:
all_users = f.read()
return all_users #调用完函数之后,返回什么结果
f.close()
# res = op_file('a.txt')
# print(res)
def haha():
#函数里面遇到return函数就立即结束了
for i in range(5):
print(i)
if i==3:
return #只写一个return的话,就返回None
# res = haha()
# print(res)
import string
def check(pwd):
#长度6-11
#字母和数字吧
if len(pwd)>5 and len(pwd)<12:
if set(pwd) & set(string.ascii_letters) and set(pwd) & set(string.digits):
print('密码合法')
else:
print('密码不合法')
else:
print('密码不合法')
# res = check('asd1234') #函数里面如果没有return的话,默认返回None
# print(res)
# l = [1,6,8,2,4,8,9]
# print(l.sort())
# print(l)
def is_float(s):
s = str(s)
if s.count('.')==1:#小数点个数
s_list = s.split('.')
left = s_list[0] #小数点左边
right = s_list[1] #小数点右边
if left.isdigit() and right.isdigit(): #正小数
return True
elif left.startswith('-') and left.count('-')==1 and \
left.split('-')[1].isdigit() and \
right.isdigit(): #判断合法负小数
return True
return False


# 1.98
# -2.50
# retrun True
# retrun False
# 1.98
# 1.98.23
# -1.90
# 需求分析:
#1、 小数点个数 .count()
# 2、按照小数点进行分割 1.98 [1,98] s.87 98.s1
#3、正小数:小数点左边是整数 右边也是整数 .isdigits()
# 负小数:小数点左边是以负号开头,但是只有一个负号,右边也是整数 -9.85

money = 500

def test(consume): # 500
return money - consume

def test1(money):
return test(money) + money

money = test1(money)
print(money)

不固定参数
def syz(a,*args):  #参数组
print(a)
username = args[0]
pwd = args[1]
age = args[2]

# syz('niuhanyang','2423',2323)
# syz('1s','sdf')
def syz2(time,**kwargs): #关键字参数
print(kwargs)

syz2('sdf')
syz2(name='nhy',age=38,time='20180912')
syz2('2018',name='nhy',age=38,addr='回龙观',home='河南')
syz2(time='xx',xx='xxx')

#1、必填参数还是非必填的
#2、它有没有限制参数个数
#3、它是把传过来的参数放到哪里

递归
def test1():
num = int(input('please enter a number:'))
if num%2==0:#判断输入的数字是不是偶数
return True #如果是偶数的话,程序就退出了,返回true
print('不是偶数请重新输入!')
return test1()#如果不是偶数的话继续调用自己,输入值
# print(test1())#调用test

#少用递归,递归最多递归999,递归的效率不高。
i = 0
def test():
global i
i+=1
print(i)
test()
test()
 
posted @ 2018-04-17 13:53  我已不爱凯蒂  阅读(166)  评论(0编辑  收藏  举报