python学习-函数

"""
函数的定义:
实现了单一功能
重复使用

语法
def 函数名称(参数1,参数2.。。。):
实现函数的功能(代码段/块)
[return [值]]

# 有进有出 进:参数 出:返回值。

# 参数
1、位置参数 一个萝卜一个坑 定义形参和调用的实参位置一一对应。
2、默认参数 在定义的时候,可以给形参设置默认值。但是必须在位置参数之后。
调用的时候,默认参数可传可不传。
3、指定参数 调用的时候,形参=实参 的形式。不用按照参数的位置顺序。
4、可变参数 *args 在函数内部是元组的形式 传参的时候:值,值。。。。
**kwargs 在函数内部是字典的形式 传参的时候:键=值,键=值。。。。

# 返回值 return
1、代表函数的调用终止。game over
2、代表函数的输出。 可以是任意类型的数据。 return 数据
3、return后面可以不接返回值。代表 return None
一个函数内部,可以多个return.每一个return代表不同情形下的处理。
4、定义时,如果函数内部没有return。其实函数也是返回None
5、变量名 = 函数调用 来接收函数的返回值。

"""

# 逻辑、思想、设计思想

# 数据类型转换 - 内置 函数
# 字符串 转换成 整数。
# my_str = "12"
# int(my_str)
# print(float(my_str))
# list_m = [1,2,3]
# print(str(list_m))

str_a = "[1, 2, 3]" # 列表格式的字符串,转换成列表。
dict_b = "{'key':'value'}"

print(id(str_a))
print(id(dict_b))

# eval 列表、字典、元组。
res = eval(str_a) # json格式的数据
print(res)
print(type(res))

# 模块 .py文件就是模块。

# 想在当前py文件当中,调用其它模块里的函数

# 引入到当前文件当中,然后使用功能就好。

# 1、引入自定义模块(.py)
"""
引入的原则:相对路径 参照物:工程(project)名称对应的路径 。

包名 -> 包名 -> 模块名

from 从。。。。
import 导入 包/模块/变量
from 包 import 模块
"""
# 1、from 包[.包] import 模块 #模块相对于工程的路径来说 #引入模块
from test_case.class_20190418 import my_funcs as admin

#
print(admin.class_name)
admin.eat()

# from class_20190418.new_pack import my_model
# print(my_model.my_model)

# 模块名有命名要求:
# 1、不要以数字、下划线开头、特殊符号。也不要以中文开头。
# 2、通常来说,都是以字母开头。
# 3、不要以关键字来命名、内置函数、内置模块、不要以第三方库来命名。

# 2、import 包名.模块名.类名 # import class_20190418.my_funcs

# import 模块名 # 在工程的根目录下
import my_func_two as tw
tw.minus()

# 给导入的模块 ,取个别名。
# from 包名 import 模块名 as 别名
# import 模块名 as 别名

# 如果是要将包下所有的模块引入 *
# from class_20190417 import *

# 第三方库的引入 内置的库、你要去额外安装的。
# 固定好了的。
import os

count = 50000 #全局变量 - 在当前的py文件当中,全局可用。


# def my(): # 在函数内部定义的变量,仅在函数内部有效。局部变量。
# count = 5
# count += 10
# print(count)


def eat(money): # 想要在函数内部,改变全局变量的值。
# 用家庭基金请人吃饭。饭费为500
# global count #函数内部,声明count是全局变量。后续逻辑,count都是对全局变量的处理。
money = money - 500
print(money)
# pass # 占位符


eat(count) # money = count
print(count)

原文地址:https://www.cnblogs.com/qsmyjz/p/11261217.html