第三天 python基础

函数的定义方式

无参函数

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

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)

结果:

['E:\\pytest\\2019年6月13日', 'E:\\pytest', 'C:\\Users\\16968\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip', 'C:\\Users\\16968\\AppData\\Local\\Programs\\Python\\Python37\\DLLs', 'C:\\Users\\16968\\AppData\\Local\\Programs\\Python\\Python37\\lib', 'C:\\Users\\16968\\AppData\\Local\\Programs\\Python\\Python37', 'C:\\Users\\16968\\AppData\\Roaming\\Python\\Python37\\site-packages', 'C:\\Users\\16968\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages', 'C:\\Users\\16968\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages\\beautifulsoup4-4.6.3-py3.7.egg']
['E:\\pytest\\2019年6月13日', 'E:\\pytest', 'C:\\Users\\16968\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip', 'C:\\Users\\16968\\AppData\\Local\\Programs\\Python\\Python37\\DLLs', 'C:\\Users\\16968\\AppData\\Local\\Programs\\Python\\Python37\\lib', 'C:\\Users\\16968\\AppData\\Local\\Programs\\Python\\Python37', 'C:\\Users\\16968\\AppData\\Roaming\\Python\\Python37\\site-packages', 'C:\\Users\\16968\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages', 'C:\\Users\\16968\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages\\beautifulsoup4-4.6.3-py3.7.egg', 'E:/pytest/2019年6月13日']

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'>

第三天 python基础

还有另一种方法:

#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))

结果:
第三天 python基础

{'name': 'zxy', 'sex': 'man'}
<class 'dict'>
上一篇:'java' 'adb 'python'不是内部或外部命令,也不是可运行的程序 或批处理文件


下一篇:Beyond Compare破解方式