6.12python作业

作业如下:

作业二:

01数据类型剩余内置方法:

1.insert()  # 插入
#第一个参数: 索引 第二个参数: 插入的值

2.pop() # 取出
3.remove()  # 移除
4.count()  # 查看某个值的个数
5.index()  # 查看值的索引
6.clear()  # 清空列表的值
7.copy()  #浅拷贝
打印直接赋值、深、浅拷贝的结果

# from copy import deepcopy #深拷贝
# # 浅拷贝: list1的列表中外层值改变对其不影响
# # 但对list1中的可变类型进行修改则会随之改变值
# # 深拷贝: 把list1中的所有值完全拷贝到一个新的地址中
# # 进而与list1完全隔离开
8.extend()  # 合并
9.reverse()  # 反转
10.sort()  # 排序
# # 列表类型:
# # 1.insert()  # 插入
# # 第一个参数: 索引  第二个参数: 插入的值
# list1 = ['tank', 18, 'male', 3.0, 9, '广东', 'tank', [1, 2]]
#
# list1.insert(2, 'oldboy')
#
# print(list1)
#
# # 2.pop()  # 取出
# # 3.remove()  # 移除
#
# # 4.count()  # 查看某个值的个数
# print(list1.count('tank'))
#
# # 5.index()  # 查看值的索引
# print(list1.index('广东'), '---广东')
#
# # 6.clear()  # 清空列表的值
# list1.clear()
# print(list1)
#
#
# # 7.copy()  # 浅拷贝
# # 将list1的内存地址浅拷贝赋值给list2
# list2 = list1.copy()
# print(list2, '添加值前')
#
# # 将list1的原地址直接赋值给了list3
# list3 = list1
# print(list3, '添加值前')
#
# # 深拷贝()
# from copy import deepcopy
# # 将list1的值深拷贝赋值给list4
# list4 = deepcopy(list1)
#
# # 追加jason到list1中国
# list1.append('jason')
#
# print(list2, '添加值后')
# print(list3, '添加值后')
#
# # 给list1中的可变列表进行追加值
# list1[8].append('tank')
#
# # 打印直接赋值、深、浅拷贝的结果
# # 浅拷贝: list1的列表中外层值改变对其不影响
# # 但对list1中的可变类型进行修改则会随之改变值
# print(list2)
# print(list3)
#
# # 深拷贝: 把list1中的所有值完全拷贝到一个新的地址中
# # 进而与list1完全隔离开
# print(list4)
#
#
# # 8.extend()  # 合并
# list1 = [1, 2, 3]
# list2 = [4, 5, 6]
# list1.extend(list2)
# print(list1)
#
# # 9.reverse()  # 反转
# list1.reverse()
# print(list1)
#
# # 10.sort()  # 排序
# list3 = [1, 3, 5, 8, 10, 2, 4, 6]
# # 升序
# # list3.sort()
# # print(list3)
#
# # 降序
# list3.sort(reverse=True)
# print(list3)


# tab : 往右空四个空格
# shift + tab : 往左减四个空格



# 一 字典的内置方法(字典是无序的)
# # 1、按照key取/存值
# dict1 = {'name': '张琦', 'age': 18, 'sex': 'male', 'school': '安徽工程大学'}
#
# # 根据key取张琦的学校
# print(dict1['school'])
# print(dict1['sal'])
#
# # get()
# # 第一个参数是字典的key
# # 第二个参数是默认值,若key存在则取key对应的值,否则取默认值
# print(dict1.get('school', '华南理工大学'))
# print(dict1.get('sal', '15000'))
#
# # 2、len
# print(len(dict1))  # 4
#
# # 3、成员运算in和not in
# print('name' in dict1)  # True
# print('sal' in dict1)  # False
# print('sal' not in dict1)  # True
#
# # 4、删除
# del dict1["name"]
# print(dict1)
#
# # pop()
# # 根据字典中的key取出对应的值赋值给变量name
# name = dict1.pop('name')
# print(dict1)
# print(name)
#
# # 随机取出字典中的某个值
# dict1.popitem()
# print(dict1)
#
# # 5、keys、values、items
# print(dict1.keys())
# print(dict1.values())
# print(dict1.items())
#
# # 6、循环
# # 循环字典中所有的key
# for key in dict1:
#     print(key)
#
# # 7、update()
# print(dict1)
# dict2 = {"work": "student"}
# # 把dict2加到dict1字典中
# dict1.update(dict2)
# print(dict1)


# 二 元组类型(在小括号内,以逗号隔开存放多个值)
# 注意: 元组与列表的区别,元组是不可变类型,列表是可变类型。

# tuple1 = (1, 2, 3, 4, 5, 6)
# print(tuple1)
# # 优先掌握
# # 1.按索引取值
# print(tuple1[2])
#
# # 2.切片(顾头不顾尾)
# print(tuple1[0:6])  # (1, 2, 3, 4, 5, 6)
#
# # 步长
# print(tuple1[0:6:2])  # (1, 3, 5)
#
# # 3.长度
# print(len(tuple1))  # 6
#
# # 4.成员运算 in 和 not in
# print(1 in tuple1)  # True
# print(1 not in tuple1)  # False
#
# # 5.循环
# for line in tuple1:
#     print(line)


# 三 集合类型(一般用于去重)
# 在{}以逗号隔开,可存放多个值,但集合会自带默认去重功能。
# set1 = {1, 2, 3, 4, 2, 1, 3, 4}
# print(set1)
#
# # 集合是无需的
# set1 = set()
# set2 = {}
# print(set1)
# print(set2)
#
# set2['name'] = 'tank'
# print(type(set2))
View Code
 

02文本操作

写文件

读文件

文本追加模式

# 文件读写基本使用

# 对文本进行操作
# open(参数1: 文件的绝对路径/文件的名字,参数2:操作模式, 参数3: 指定字符编码)
# f: 称之为 句柄
# r: 避免转义符

# 打开文件会产生两种资源,一种是python解释器与python文件的资源,程序结束python会自动回收。
# 另一种是操作系统打开文件的资源,文件打开后,操作系统并不会帮我们自动收回,所以需要手动回收资源。

# 写文件
f = open(
    r'/python相关/python_files/安徽工程/files/文件的名字.txt',
    mode="wt",
    encoding="utf-8")

f.write('hello 安徽工程大学')

f.close()

# 读文件
f = open(
    r'/python相关/python_files/安徽工程/files/文件的名字.txt',
    'r',  # 默认rt
    encoding='utf-8')

res = f.read()
print(res)
f.close()


# 文件追加模式 a
f = open(r'/python相关/python_files/安徽工程/files/文件的名字.txt',
         'a',  # 默认at模式
         encoding='utf-8'
         )

f.write('\nhello jason')

f.close()
03.文件处理之上下文管理

# 文件处理之上下文管理: with
# with会自带close()功能,
# 会在文件处理完以后自动调用close()关闭文件
读操作
写操作
追加操作
# 文件处理之上下文管理: with
# with会自带close()功能,
# 会在文件处理完以后自动调用close()关闭文件

# 写文件
with open(r'file1.txt', 'w', encoding='utf-8') as f:
    f.write('life is short, u need python!')


# 读文件
with open(r'file1.txt', 'r', encoding='utf-8') as f:
    res = f.read()
    print(res)


# 文件追加
with open(r'file1.txt', 'a', encoding='utf-8') as f:
    f.write('\n AAA')
View Code

 03文件处理之上下文管理

 文件处理之上下文管理: with
# with会自带close()功能,
# 会在文件处理完以后自动调用close()关闭文件
# 写文件
with open(r'file1.txt', 'w', encoding='utf-8') as f:
    f.write('life is short, u need python!')


# 读文件
with open(r'file1.txt', 'r', encoding='utf-8') as f:
    res = f.read()
    print(res)


# 文件追加
with open(r'file1.txt', 'a', encoding='utf-8') as f:
    f.write('\n AAA')
View Code
扫描二维码关注公众号,回复: 6438449 查看本文章
 

04图片与视频读写操作

写入图片

读取图片

文件拷贝操作

读写视频

# import requests  # pip3 install requests
# res = requests.get(
#     '某网站.jpg')
# print(res.content)
#
# # 写入图片
# with open('大帅比.jpg', 'wb') as f:
#     f.write(res.content)
#
#
# # 读取图片
# with open('大帅比.jpg', 'rb') as f:
#     res = f.read()
#     print(res)
#
#
# # 文件拷贝操作
# with open('大帅比.jpg', 'rb') as f, open('小哥哥.jpg', 'wb') as w:
#     res = f.read()
#     w.write(res)
#
#

# 读写视频
# with open('tianyan_sys.mp4', 'rb') as f, open('tianyan_sys_copy.mp4', 'wb') as w:
#     res = f.read()
#     print(res)
#     w.write(res)


# 一行一行读文件
# with open('tianyan_sys.mp4', 'rb') as f, open('tianyan_sys_copy.mp4', 'wb') as w:

    # 一次打开文件所有内容,若文件的大小超出内存的大小会导致内存溢出
    # f.read()

    # 一行一行读取文件内容,一行一行写入文件中,避免内存溢出
    # for line in f:
    #     w.write(line)

    # res = f.read()
    # print(res)
    # w.write(res)
View Code
 

05函数基础

1、什么是函数?
函数相当于工具,需要事先准备好,在需要用时再使用。

2、如何使用函数?
函数必须先定义、后调用。
def: (全称defind) 用来声明定义函数的关键字。
函数名: 看其名、知其意。
(): 括号,存放的是接收外界的参数。
注释: 用来说明函数的作用。
函数体代码: 逻辑代码。
return: 后面跟函数的返回值。
函数在定义阶段发生的事情:
1.先打开python解释器。
2.加载05 函数基础.py 文件。
3.python解释器会帮我们检测py文件中语法,
但是只会检测python语法,不会执行函数体代码。
def register():
    '''
    此函数注册功能
    :return:
    '''
    while True:

        # 让用户输入用户名与密码
        user = input('请输入用户名:').strip()
        pwd = input('请输入密码:').strip()
        re_pwd = input('请确认密码:').strip()

        # 判断两次输入的密码是否一致
        if pwd == re_pwd:

            # 格式化字符串的三种方式

            # user_info = '用户名:%s,密码:%s' % (user, pwd)
            # user_info = '用户名:{},密码:{}'.format(user, pwd)

            # 字符串前写一个f相当于调用format方法
            user_info = f'用户名:{user},密码:{pwd}'

            # 把用户信息写入文件中
            with open(f'{user}.txt', 'w', encoding='utf-8') as f:
                f.write(user_info)

            break

        else:
            print('两次密码不一致,请重新输入!')


# 调用函数: 函数名 + 括号 即调用函数.
 register()
View Code

作业三

代码:

def login():

    for i in range (3):

        # 让用户输入用户名与密码
        user = input('请输入用户名:').strip()
        pwd = input('请输入密码:').strip()
        user1 = f'用户名:{user}'
        pwd1 = f'密码:{pwd}'
        with open(f'bcsacr.txt', 'rt', encoding='utf-8') as f:
            res = f.read()
            list = res.split(',')
            if user1 in list:
                re_pwd = input('请确认密码:').strip()
            # 判断两次输入的密码是否一致
                if pwd == re_pwd:
                    if pwd1 in list:
                        print("登录成功")
                        break
                    else:
                        print("密码错误")
                else:
                    print('两次密码不一致,请重新输入!')
            else:
                print('用户名错误')
login()

运行结果:

 

猜你喜欢

转载自www.cnblogs.com/bcsacr/p/11012954.html