1、声明及调用
"""
def 函数名([形参]):
函数体
"""
def say():
print("hello world")
say()
def sum_2(a, b):
"""
两个数求和
:return:
:param a: 参数1
:param b: 参数2
:return: 两个数的和
"""
return a + b
result = sum_2(1, 2) #pycharm:鼠标放在调用函数上,按ctrl+Q 可以查看函数文档注释
print(result)
注意:需要先定义函数,才能使用,因为python是解释一行,执行一行。
1.1、不带参数
import random
def generate_random():
for i in range(10):
ran = random.randint(1, 10)
print(ran)
generate_random()
1.2、固定参数及返回值
def int_sum(a, b):
sum1 = a + b
print(sum1)
return sum1
int_sum(2, 4)
1.3、可变参数
注意:可变参数必须在后面
def int_sum(*args):
print(args) # 元组 (1,2,3)
int_sum(1, 2, 3)
def int_sum1(a, *args):
print(a) # 1
print(args) # 元组 (2,3)
int_sum1(1, 2, 3)
1.3.1、关键字参数:
注意,需要在 元组参数(*args)后面
def int_sum(a, **kwargs):
print(a, kwargs) # 1 {'c': 'sdf', 'b': 2}
int_sum(1, c="sdf", b=2)
def int_sum1(a, *args, **kwargs):
print(a, args, kwargs)
tuple1 = (2, 3)
dict1 = {"aa": 1, "bb": 2}
int_sum1(1, *tuple1, **dict1)
1.4、默认参数
注意:默认参数需要在非默认参数后面
def int_sum(a, b=10, c=8):
print(a, b, c)
int_sum(1, 2)
int_sum(1, c=3)
2、函数变量作用域
a = 1
def func():
b = 2
def inner_func():
c = 3
print(a, b, c)
inner_func()
func()
a = 1
def func():
global a
b = 2
a += 1
print(a)
def inner_func():
global a
nonlocal b
c = 3
a += 100
b += 100
c += 100
print(a, b, c)
inner_func()
func()
3、装饰器
def decorate(func):
a = 12
def wrapper(*args, **kwargs):
func(*args, **kwargs)
print("装饰器---》", a)
return wrapper
@decorate
def house(name):
print("毛坯房",name)
house("sdf")
def outer(b):
print("b:----", b)
def decorate(func):
a = 12
print("a:----", a)
def wrapper(*args, **kwargs):
func(*args, **kwargs)
print("装饰器---》", a)
return wrapper
return decorate
@outer(10)
def house(name):
print("毛坯房", name)
house("sdf")
4、系统函数
4.1、输入:input
变量的输入
name = input("请输入你的名字:")
4.2、查看类型:type
查看变量的类型
pytonp"
type(name)
print(type(name))
4.3、输出、打印:print
将内容输出到控制台, 打印
# 默认打印会换行
print("hello")
print("hello", end="") #以""代替换行符,
print("hello", end="---") # 以---代替换行符
print("world")
#格式化输出
name = "小明"
id = 1
age = 18
money = 9000.80
up = 25
print("名字:%s" % name)
print("年龄:%d" % age)
print("年龄:%06d" % id)
print("工资:%f" % money)
print("工资:%.2f" % money)
print("工资:%.f%%" % up)
print("名字:%s,年龄:%d,工资:%.2f" % (name, age, money))
-------------
名字:小明
年龄:18
年龄:000001
工资:9000.800000
工资:9000.80
工资:25%
名字:小明,年龄:18,工资:9000.80
4.4、类型转换
num = int("123")
type(num)
num = float("123.0")
print(type(num))
# 把字符串当初16进制格式转换成整数
int("1a2c",16)
str(34)
bool(100) #True
bool(0) #False
bool('False') #True
bool('')#False
bool(None) #False
#数字0、空字符串、空列表、空元组、空集合、空字典、空数据None都转为False
4.5、查看对象属性和方法:dir
dir(demo) #查看demo函数的所有属性和方法
4.6、查看变量在内存中地址:id
#查看变量的地址
id(name)
4.7、进制转换
bin(8)
oct(8)
hex(8)
4.8、eval
eval('a=1+1')
将字符串当成代码执行