Python知识第十二天分享

发布于:2024-11-28 ⋅ 阅读:(15) ⋅ 点赞:(0)

假设有一个文件 num.txt,里面存储了如下的一些数字,内容如下:
10
18
30
11
12
15

编写一个 python 程序,读取文件中的内容,存储成 python 中的列表形式:

sum = 0
with open('./num.txt', 'r') as nu_f:
    list1 = nu_f.read().strip()
    print(list1)
    list2 = list(list1.split('\n'))
    print(list2)
    for i in list2:
        sum += int(i)
    print(sum)

假设有一个 python 字典如下:
user_dict = {‘name’: ‘smart’, ‘age’: 18, ‘tel’: ‘13888888888’}
编写一个 python 程序,将字典的数据写入一个 user.txt 文件中,写入格式如下:
name: smart
age: 18
tel: 13888888888

user_dict = {'name': 'smart', 'age': 18, 'tel': '13888888888'}


with open('./user.txt', 'w') as user_f:
    for key, value in user_dict.items():
        line = key+':'+str(value)+'\n'
        user_f.write(line)
print('写入完毕')

下面有一个字符串:
str1 = ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789’
#编写一个程序,从上面的字符串中随机取出4个字符,生成一个模拟验证码字符串,比如:‘a01V’
import random

str1 = ''.join(random.choices(str1, k=4))
print(str1)

Python导入模块方式讲解
“”"
Python导入模块介绍
概述
在Python语言中 一个.py文件就可看做一个模块 模块中可以写 变量 函数 类…
导入模块的几种写法:
import 模块名
必须通过 模块名.功能名()的方式调用功能 可以使用当前模块中所有函数
import 模块名 as 别名
必须通过 别名.功能名()来来调用 可以使用当前模块中的所有函数
from 模块名 import 功能名
可以通过功能名() 的方式 直接使用该模块的指定功能 但是 只能使用该功能
from 模块名 import 功能名 as 别名
可以通过 别名() 的方式直接使用该模块的指定功能 但是 只能使用该功能
from 模块名 import *
可以通过 功能名() 的方式 直接使用该模块的功能 能使用该模块的所有功能
“”"

需求 演示导入time 模块的time() ,sleep() 函数的使用
演示
导入模块的方式值 import 模块名 必须通过 模块名.功能名() 的当时来调用次功能

import time
#
print(time.time())
time.sleep(3)  # 休眠单位是S
#
import time as t

print(t.time())
t.sleep(3)

# 演示导入模块的方式之from 模块名 inport 功能名
from time import sleep, time
print(time())
sleep(3)
#
# # 演示导入模块之 from模块名之 from 模块名 import 功能名 as 别名
from time import time as t, sleep as s
s(3)
print(t())
#
# # 演示 导入模块之from 模块名 import *
from time import *
print(time())
sleep(3)

自定义模块介绍
自定义模块的调用
_name_属性:
它是一个内置的属性 任何的.py文件(模块)都默认有
在当前模块中 打印的是 main
在调用者的模块中 打印的是: 被调用模块的名字



创建
my_model1.py
功能名
即是函数


def func1():
    print('我是my_module模块的func1函数')


def func2():
    print('我是 my_module1de模块的fun2函数 ')


# main函数 程序的主入口
if __name__ == '__main__':  # 在当前模块执行
    print('我是测试代码 start-----')
    func1()
    func2()
    print('我是测试代码 end-------')
    print(f'_name_属性的值是: {__name__}')

# 自定义 my_module2模块的内容
import my_model1

# 调用功能
my_model1.fun1()
my_model1.fun2()

# 包详解  包的下边有init.py
自定义my_package包
创建
my_module1模块
并在其内部定义
method1()
和method2()
功能函数
创建my_module2模块
在其内部定义
method1()
和method2()
功能函数
# init.py 文件的内容
# __all__ = []   #默认情况是 空

# __all__属性 只针对于 from 包名 import * 导入方式有效
__all__ = ['my_model1', 'my_model2']

“”"
包 解释:
概述:
从物理上看 包就是一个文件夹 有多个模块和 init.py (初始化文件组成)
从逻辑上看 包 = 模块的一种 也可以通过 import 或者 from … import …的方式 导入
作用: 对 模块(.py)文件进行 分类管理
实际开发中 我们会有很多模块
通过包 可以实现对模块的分类管理 把类似的模块(.py文件) 放到同一个包下即可
“”"
演示 调用

# 演示 调用
# 创建
my_package包
包中有
my_module1和my_module2
两个模块
模块分别有自己的功能
导包的方式1:
import 包名.模块名
import my_package.module1
import my_package.module2

通过包名.模块名.功能名()
调用
my_package.my_module1.method1
my_package.my_module1.method2

my_package.my_module2.method1
my_package.my_module2.method2

# 导包方式
from 包名 import 模块名

可以通过
模块名.功能名()
直接调用
from my_package import my_module1
from my_package import my_module1, my_module2

from my_package import *

这种方式只会导入
__init__.py文件中的
__all__属性后边写的模块名
例如
__all__ = ['my_module1', 'my_module2']
my_module1.method1()
my_module1.method2()

匿名函数解释
入门案例
“”"
回顾 函数的定义格式
def 函数名(形参列表):
函数体
return 具体的返回值

匿名函数的介绍:
    概述:
        就是没有名字的函数
    格式:
        lambda 形参列表:函数体
    细节:
        lambda  关键字 照抄就行
        形参列表    和我们定义函数时写的形参列表一直 需要什么参数就写什么
        函数体 和我们之前一样 但是只能写成一行  就是只能单行 且可省略
    return,因为执行结果会自动返回

“”"


# 例如自定义函数 用于实现计算两个整数和
my_sum = lambda a, b: a + b
print(my_sum(10, 80))

# 计算两个整数的最大值
get_max = lambda a, b: a if a > b else b

print(get_max(12, 14))


# 自定义代码 模拟计算器 用户传入什么逻辑就计算什么方
def my_calculate(a, b, func):
    return func(a, b)


print(my_calculate(10, 32, lambda a, b: a + b))
print(my_calculate(10, 32, lambda a, b: a - b))
print(my_calculate(10, 32, lambda a, b: a * b))
print(my_calculate(10, 32, lambda a, b: a // b))
print(my_calculate(10, 32, lambda a, b: a ** b))
print(my_calculate(10, 32, lambda a, b: a if a > b else b))
print(my_calculate(10, 32, lambda a, b: a if a < b else b))

坚持分享 共同进步 手敲 如有错误 欢迎指出