Python3 的函数(2)

来源:转载

1、形参和实参

def MyFun(x): return x ** 3y = 3print(MyFun(y))

x为形参,y为实参.

2、函数文档

在函数内用单引号引起来的一段文字,在调用函数时不会输出,写函数文档可以帮组他人理解,可以用help(函数名)查看或者函数名.__doc__打印函数文档

>>> def MyFirstFunction(name): '函数文档在函数定义的最开头部分,用不记名字符串表示' print('I love you!')

3、参数

1)关键字参数

在调用参数时戴上参数名字去指定具体调用哪个参数,可以忽略参数的顺序调用函数

>>> def SaySome(name, words): print(name + '->' + words)>>> SaySome(words='让编程改变世界!', name='you')

2)默认参数

赋予形参默认值,在没给函数参数时,使用默认值

3)收集参数:搞不清要用多少参数时用收集参数,当其后还需要其他参数时需使用关键字参数

def bc(*prama,base=3):'函数实现将传入的每一个实参倍乘3,可以通过关键字参数改变base值' for each in prama: print(base*each) >>> bc(1,2,3,4,5)3691215>>> bc(1,2,3,4,5,base=5)510152025

4、求水仙花数

def Narcissus(): for each in range(100, 1000): temp = each sum = 0 while temp: sum = sum + (temp%10) ** 3 temp = temp // 10 # 注意这里用地板除 if sum == each: print(each, end='/t')print("所有的水仙花数分别是:", end='')Narcissus()
def ncs(low=0,high=1000): for each in range(low,high): if (each//100)**3+(each%100//10)**3+(each%10)**3==each: print(each) 

5、编写统计长度为2的子字符串长度在目标字符串内的个数

def findStr(desStr, subStr): count = 0 length = len(desStr) if subStr not in desStr: print('在目标字符串中未找到字符串!') else: for each1 in range(length-1): if desStr[each1] == subStr[0]: if desStr[each1+1] == subStr[1]: count += 1 print('子字符串在目标字符串中共出现 %d 次' % count)desStr = input('请输入目标字符串:')subStr = input('请输入子字符串(两个字符):')findStr(desStr, subStr)
def findstr(dis_str,sub_str): count=0 if not sub_str in dis_str: print("目标字符串中未找到子字符串") else: for i in range(len(dis_str)-1): if dis_str[i]+dis_str[i+1]==sub_str: count+=1 print("子字符串在目标字符串中共出现",count,"次") dis_str = input("请输入目标字符串:")sub_str = input("请输入子字符串(两个字符):")

6、函数与过程

函数是有返回值的,过程是无返回值的

严格来说Python里都是函数,没有过程,应为不管函数有没有返回值python都会返回一些东西,无返回时返回一个None对象

>>> def hello(): print('Hello !')>>> temp = hello()Hello FishC!>>> temp>>> print(temp)None

python可以返回多个类型不同的值

def mFun(): return '加油','追求自己想要的生活!>>> mFun()('加油', '追求自己想要的生活!')

7、变量

1)局部变量:函数里的变量

2)全局变量:在函数外的变量

注意:在函数里修改全局变量是无效的,python会新建与全局变量名字相同的局部变量

def fun(var): var = 1314 print(var, end='')var = 520fun(var)print(var)
var = ' Hi 'def fun1(): global var var = ' Baby ' return fun2(var)def fun2(var): var += 'I love you' fun3(var) return vardef fun3(var): var = ' 小天使 'print(fun1()) Baby I love you>>> var' Baby '

不到万不得已不要使用全局变量!用多了容易出BUG啊

8、判断是否是回文联

def palindrome(string): length = len(string) last = length-1 length //= 2 flag = 1 for each in range(length): if string[each] != string[last]: flag = 0 last -= 1 if flag == 1: return 1 else: return 0string = input('请输入一句话:')if palindrome(string) == 1: print('是回文联!')else: print('不是回文联!')
def elf(x): x=list(x) rex=x[:] rex.reverse() if rex==x: print('是回文联!') else: print('不是回文联!')x=input("请输入一句话:")elf(x) 

9、统计字符串

def Count(*strs):#estr every str cstr=0 for estr in strs: cstr+=1 cnum=0 cchar=0 cempty=0 celse=0 for echar in estr: if echar.isdigit(): cnum+=1 elif echar.isalpha(): cchar+=1 elif echar == ' ': cempty+=1 else: celse+=1 print('第%d'% cstr, '个字符串共有:英文字母个%d'%cchar,',数字个%d'%cnum,/ ',空格%d个'%cempty,',其他字%d符个'%celse )
def count(*param): length = len(param) for i in range(length): letters = 0 space = 0 digit = 0 others = 0 for each in param[i]: if each.isalpha(): letters += 1 elif each.isdigit(): digit += 1 elif each == ' ': space += 1 else: others += 1 print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (i+1, letters, digit, space, others)) 

分享给朋友:
您可能感兴趣的文章:
随机阅读: