python 新手函数基础(函数定义调用值传递等)

Posted 马里亚纳仰望星空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 新手函数基础(函数定义调用值传递等)相关的知识,希望对你有一定的参考价值。

1、编程的集中主要方式:

  面向过程 》类 》》关键字class 

     面向函数》函数 》》 关键字def

   面向过程》 过程 》》 关键字def 

 

2、python 函数是逻辑和结构化的集合。函数的定义和调用:

# Author : xiajinqi
# 函数
def  _print() :
    print("hello world")
    return 0

#函数调用
x= _print()
# 函数返回结果
print(x)

def  _print() :
    print("hello world1")
    return 0

#过程 本质就是没有返回结果的函数
def  _print() :
    print("hello world2")

#函数调用
x= _print()
# 函数返回结果
print(x)


E:\Users\xiajinqi\PycharmProjects\twoday\venv\Scripts\python.exe E:/Users/xiajinqi/PycharmProjects/twoday/function.py
hello world
0
hello world2
None

Process finished with exit code 0


3、函数的相互调用,以及使用函数的有点,减少重复代码,扩展性强。是逻辑更加清晰合理。

 

# Author : xiajinqi
# 函数
import sys,time
def logger():
    time_format =%Y-%m-%d
    time_current = time.strftime(time_format)
    with open("test100.txt","a+",encoding="utf-8")  as f :
        f.write("log end %s \n" %time_current)
    return 0


def test2() :
    logger()
    print("第一次写入")
    return 0

def test1() :
    logger()
    print("第二次写入")
    return 0

def test3() :
    logger()
    print("第三次写入")
    return 0

def test4() :
    logger()
    print("第四次写入")
    return 0

test1()
test2()
test3()
test4()


4、函数的值传递 。返回值。return 后面的代码不执行。并且return可以返回任意值。元组,数组等任意多个值,返回多个值时候是一个元组

# 函数值传递,简单传递
def _print_name(x):
    print("你的名字是 %s" %x)
    return 0

_print_name("xiajinqi")

# Author : xiajinqi
# 函数值传递,定义返回值
def _print_name(x):
    print("你的名字是 %s" %x)
    return x,[test1,test2,text3],test
    print("return 后面的语句不执行")

_print_name("xiajinqi")




print(_print_name(xiajinqi‘))

E:\Users\xiajinqi\PycharmProjects\twoday\venv\Scripts\python.exe E:/Users/xiajinqi/PycharmProjects/twoday/function.py 你的名字是 xiajinqi 你的名字是 xiajinqi (‘xiajinqi‘, [‘test1‘, ‘test2‘, ‘text3‘], ‘test‘)


Process finished with exit code 0


 

5.函数值传递的几种方式。值传递、

# Author : xiajinqi
# 函数值传递,定义返回值
def _print_name(x,y):
   print(x,y)

def _print_name1(x,y,z):
   print(x,y,z)


x = 100
y = 200

_print_name(100,y=300)  # 位置参数和关键字参数

_print_name1(100,200,z=100) #
_print_name1(100,z=100,200) #报错,关键字参数不能再位置参数前面

6、不定参数的使用

# Author : xiajinqi
# 函数值传递,定义返回值
def _print_name(x,y):
   print(x,y)

def _print_name1(x,y,z):
   print(x,y,z)

#默认参数 _print_name2(x,y=11,z)报错,位置参数不能再形式参数前面
def _print_name2(x,y=11,z=222):
   print(x,y,z)

# 不定参数
def _print_name4(x,*args):
    print(x)
    print(args)
    print(args[1])

#    传一个字典,把关键字转化为字典
def _print_name5(**kwargs):
    print(kwargs)

x = 100
y = 200
test= [test1,test2,test3]
test1 = {name:xiajinqi,age:222}

_print_name(100,y=300)  # 位置参数和形式参数

_print_name1(100,200,z=100) #
#_print_name1(100,z=100,200) #报错,位置参数不能在形式参数前面
_print_name2(100,2222,1000)
_print_name4(100,*["100","200",300])
_print_name4(*test)
_print_name5(**test1) 
_print_name5(**{name:xiajinqi})


7、全局变量和局部变量:

# 字符串,整形等不能在局部变量中修改,列表、字典等可以在局部变量可以直接修改,如果不想改变,可以设置为元组
name = "xiajinqi"
age =88  #全局变量
name1 = [test,xiajinqi,wangwu]
def change_name():
    age =100  #作用范围为函数范围内,只改变对全局变量没有影响
    global name  #申明为全局变量
    name = "test"
    return 0

def change_name2():
    name1[0] = test2
    return 0


change_name()
print(age)
change_name2()
print(name1)


E:\Users\xiajinqi\PycharmProjects\twoday\venv\Scripts\python.exe E:/Users/xiajinqi/PycharmProjects/twoday/function.py
88
[test2, xiajinqi, wangwu]

Process finished with exit code 0

 




以上是关于python 新手函数基础(函数定义调用值传递等)的主要内容,如果未能解决你的问题,请参考以下文章

PHP基础

深入解答11道Python基础面试题

C语言 函数值传递和址传递

python函数

Python新手学习基础之函数-可变参数*

Python定义函数时,不同参数类型的传递