Python3 的函数(2)

栏目: Python · 发布时间: 6年前

内容简介:Python3 的函数(2)

1、形参和实参

def MyFun(x):
    return x ** 3

y = 3
print(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)
3
6
9
12
15

>>> bc(1,2,3,4,5,base=5)
5
10
15
20
25

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 = 520
fun(var)
print(var)
var = ' Hi '

def fun1():
    global var
    var = ' Baby '
    return fun2(var)

def fun2(var):
    var += 'I love you'
    fun3(var)
    return var

def 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 0

string = 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))
            

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算统计

计算统计

Geof H.Givens、Jennifer A.Hoeting / 王兆军、刘民千、邹长亮、杨建峰 / 人民邮电出版社 / 2009-09-01 / 59.00元

随着计算机的快速发展, 数理统计中许多涉及大计算量的有效方法也得到了广泛应用与迅猛发展, 可以说, 计算统计已是统计中一个很重要的研究方向. 本书既包含一些经典的统计计算方法, 如求解非线性方程组的牛顿方法、传统的随机模拟方法等, 又全面地介绍了近些年来发展起来的某些新方法, 如模拟退火算法、基因算法、EM算法、MCMC方法、Bootstrap方法等, 并通过某些实例, 对这些方法的应用进行......一起来看看 《计算统计》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具