Python~Day3

学习内容:
 

函数的定义方式

无参函数

不需要接收外部传入的参数

def foo():
    print('from foo') foo()

结果:

from foo

有参函数

需要接收外部传入的参数

def login(user,pwd):
    print(user,pwd)

login('zxy','111')

结果:

zxy 111

传参缺一不可

比较两个数的大小

def max2(x,y):
    if x > y: print(x) else: print(y) max2(10,20)

结果:

20

空函数

在一些比较难实现的功能,会导致暂时无法继续编写代码。
所以在一般在生产开发中,可以事先定义好函数

def func():
pass # pass代表什么都不做

函数的返回值

在调用函数时,需要接收函数体内部产生的结果,用return返回值

def max2(x,y):
    if x > y: return x else: return y res = max2(10,20) print(res)

结果:

20

函数对象(函数名指向的内存地址)

def func():
    pass def func2(): pass dict1 = { '1': func, '2': func2 } choice = input('请输入功能编号:').strip() if choice in dict1: dict1[choice]()

结果:

请输入功能编号:1
<function func at 0x000001FE2BC18D08> 请输入功能编号:2 <function func2 at 0x0000022190C18D90>

函数嵌套

嵌套定义:
在函数内,定义函数

嵌套调用:

def func1():
print('func1...') def func2(): print('func2...') def func3(): print('func3...') # ... return func3 return func2 func2 = func1() func3 = func2() func3()

结果:

func1...
func2...
func3...

另一种表现形式

def func1():

    print('func1...') def func2(): print('func2...') def func3(): print('func3...') # ... func3() func2() func1()

结果:

func1...
func2...
func3...

名称空间

python解释器自带的:内置名称空间

自定义的py文件中,定着最左边定义的:全局名称空间

函数内部定义的:局部名称空间

模块与包

#import 模块名

内置模块:

time

json

os

sys

time模块

import time             # 导入time模块
print(time.time()) # 获取时间戳 # 等待2s time.sleep(2) print(time.time())

结果:

1560410196.7074902
1560410198.7119384

os模块

import os
# 判断zxy.txt文件是否存在
print(os.path.exists('zxy.txt'))    # True
print(os.path.exists('zxy1.txt')) # False print(os.path.exists(r'E:\pytest\2019年6月13日\zxy.txt')) # True print(os.path.dirname(__file__)) # 获取当前文件所在的根目录

结果:

True
False
True

sys模块

import sys
# 获取python在环境变量中的文件路径
print(sys.path)

sys.path.append(os.path.dirname(__file__)) #追加当前文件所在的根目录到环境变量中 print(sys.path)

json模块

import json

user_info = {
'name': 'zxy',
'sex': 'man' } # dumps: 序列化 # 1.把字典转换成json数据 # 2.再把json数据转换成字符串 res = json.dumps(user_info) print(res) print(type(res)) with open('user.json', 'wt', encoding='utf-8') as f: f.write(res) # loads:反序列化 with open('user.json','rt', encoding='utf-8') as f: res = f.read() user_dict = json.loads(res) print(user_dict) print(type(user_dict))

结果:

{"name": "zxy", "sex": "man"}
<class 'str'> {'name': 'zxy', 'sex': 'man'} <class 'dict'>

还有另一种方法:

#dump
with open('user_info.json', 'wt', encoding='utf-8') as f: # dump 自动触发f.write() json.dump(user_info, f) # load with open('user_info.json', 'rt', encoding='utf-8') as f: # res = f.read() # user_dict = json.loads(res) # # load:自动触发f.read() user_dict = json.load(f) print(user_dict) print(type(user_dict))

结果:

{'name': 'zxy', 'sex': 'man'}
<class 'dict'>

爬虫学习

 
 

函数的定义方式

无参函数

不需要接收外部传入的参数

def foo():
    print('from foo') foo()

结果:

from foo

有参函数

需要接收外部传入的参数

def login(user,pwd):
    print(user,pwd)

login('zxy','111')

结果:

zxy 111

传参缺一不可

比较两个数的大小

def max2(x,y):
    if x > y: print(x) else: print(y) max2(10,20)

结果:

20

空函数

在一些比较难实现的功能,会导致暂时无法继续编写代码。
所以在一般在生产开发中,可以事先定义好函数

def func():
pass # pass代表什么都不做

函数的返回值

在调用函数时,需要接收函数体内部产生的结果,用return返回值

def max2(x,y):
    if x > y: return x else: return y res = max2(10,20) print(res)

结果:

20

函数对象(函数名指向的内存地址)

def func():
    pass def func2(): pass dict1 = { '1': func, '2': func2 } choice = input('请输入功能编号:').strip() if choice in dict1: dict1[choice]()

结果:

请输入功能编号:1
<function func at 0x000001FE2BC18D08> 请输入功能编号:2 <function func2 at 0x0000022190C18D90>

函数嵌套

嵌套定义:
在函数内,定义函数

嵌套调用:

def func1():
print('func1...') def func2(): print('func2...') def func3(): print('func3...') # ... return func3 return func2 func2 = func1() func3 = func2() func3()

结果:

func1...
func2...
func3...

另一种表现形式

def func1():

    print('func1...') def func2(): print('func2...') def func3(): print('func3...') # ... func3() func2() func1()

结果:

func1...
func2...
func3...

名称空间

python解释器自带的:内置名称空间

自定义的py文件中,定着最左边定义的:全局名称空间

函数内部定义的:局部名称空间

模块与包

#import 模块名

内置模块:

time

json

os

sys

time模块

import time             # 导入time模块
print(time.time()) # 获取时间戳 # 等待2s time.sleep(2) print(time.time())

结果:

1560410196.7074902
1560410198.7119384

os模块

import os
# 判断zxy.txt文件是否存在
print(os.path.exists('zxy.txt'))    # True
print(os.path.exists('zxy1.txt')) # False print(os.path.exists(r'E:\pytest\2019年6月13日\zxy.txt')) # True print(os.path.dirname(__file__)) # 获取当前文件所在的根目录

结果:

True
False
True

sys模块

import sys
# 获取python在环境变量中的文件路径
print(sys.path)

sys.path.append(os.path.dirname(__file__)) #追加当前文件所在的根目录到环境变量中 print(sys.path)

json模块

import json

user_info = {
'name': 'zxy',
'sex': 'man' } # dumps: 序列化 # 1.把字典转换成json数据 # 2.再把json数据转换成字符串 res = json.dumps(user_info) print(res) print(type(res)) with open('user.json', 'wt', encoding='utf-8') as f: f.write(res) # loads:反序列化 with open('user.json','rt', encoding='utf-8') as f: res = f.read() user_dict = json.loads(res) print(user_dict) print(type(user_dict))

结果:

{"name": "zxy", "sex": "man"}
<class 'str'> {'name': 'zxy', 'sex': 'man'} <class 'dict'>

还有另一种方法:

#dump
with open('user_info.json', 'wt', encoding='utf-8') as f: # dump 自动触发f.write() json.dump(user_info, f) # load with open('user_info.json', 'rt', encoding='utf-8') as f: # res = f.read() # user_dict = json.loads(res) # # load:自动触发f.read() user_dict = json.load(f) print(user_dict) print(type(user_dict))

结果:

{'name': 'zxy', 'sex': 'man'}
<class 'dict'>

爬虫学习

猜你喜欢

转载自www.cnblogs.com/szzb/p/11037768.html
今日推荐