Day 2 作业

# 列表类型

# 1.insert()#插入
list1 = ['tank', 18, 'male', 3.0, 9, '广东']
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)

# 字典的内置方法(字典是无序的)
# 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.循环
for key in dict1:
 print(key)

# 7.update()
print(dict1)
dict2 = {"work": "student"}
#把dict2加到dict1字典中
dict1.update(dict2)
print(dict1)

# 元组类型(在小括号内,以逗号隔开存放多个值)
# 注意:元组与列表的区,元组是不可变类型,列表是可变类型
tuple1 = (1, 2, 3)
print(tuple1)
# 优先掌握
# 1.按索引取值
print(tuple1[2])

# 2.切片(顾头不顾尾)
print(tuple[0:6]) # (1,2,3,4,5,6)

# 步长
print(tuple[0:6:2])

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

以上为数据类型剩余内置方法

# 文件读写基本使用
# 对文本进行操作()
# open(参数1:文件的绝对路径/文件的名字,参数2:操作模式,参数3:指定字符编码)
# f :称之为 句柄
# r :避免转义符
# 打开文件会产生两种资源,一种是python解释器与python文件的资源,在程序结束python会自动回收。
# 另一种是操作系统打卡文件的资源,文件打开后,操作系统并不会帮我们自动收回,所以需要手动回收资源。
# copy path赋值文件目录绝对路径
#有歧义的路径在之前加上r以示区分

# 写文件
f = open(r'C:\Program Files\JetBrains\PycharmProjects\untitled\file\文件的名字.txt',
             mode="wt",
             encoding="utf-8")
f.write('hello tank!')

f.close()



# 读文件
f = open(r'C:\Program Files\JetBrains\PycharmProjects\untitled\file\文件的名字.txt',
            # mode="rt", 默认rt
             'r',
             encoding="utf-8")
res = f.read()
print(res)

f.close()

#文件追加模式 a
f = open(r'C:\Program Files\JetBrains\PycharmProjects\untitled\file\文件的名字.txt',
            # mode="at", 默认at模式
             'a',
             encoding="utf-8"
              )
f.write('\nhello jason')

f.close()

以上为文件管理备注

#文件处理值上下文管理:with
#with会自带close()功能,
#会在文件处理完以后自动调用close()关闭文件

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

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

#文件追加
with open(r'file.txt','a',encoding='utf-8')as f:
    f.read('\nAAA')

以上为文件处理之上下文管理

#读写视频
with open('tianyan_sys.mp4','rb') as f, open('tianyan_sys_copy.mp4','wb')as  w:
    res = f.read()
    print(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)

以上为图片与视频读写操作

'''

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

2.如何使用函数?
函数必须先定义、后调用。
'''

# 3.函数的语法:
#
# def cup(参数1,参数2···):
#     """
#      函数的声明
#     """
#     函数体代码(逻辑代码)
#     return 返回值
'''
def:(全称defend)用来声明定义函数的关键字
函数名:看其名、知其意
():括号,存放的是接收外界的参数。
注释:用来说明函数的作用。
函数体代码:逻辑代码。
return:后面跟函数的返回值
'''
#注册功能
#先定义
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(r'file.txt', 'w', encoding='utf-8')as f:
                f.write(user_info)

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

#调用函数:函数名+括号 即调用函数。
register()


'''
函数在定义阶段发生的事情
1.先打开python解释器
2.加载05 函数基础.py文件。
3.python解释器会帮我们检测py文件中语法,但是只会检测python语法,不会执行函数体代码。
'''

def foo():
    print('from foo!')
    # bar()
   #调用阶段,会执行foo函数体代码
    foo()

以上为函数基础的一些内容

这次的作业为

编写一个函数实现以下功能

1.让用户输入用户名与密码
2.校验用户名是否存在
3.用户名存在后检验密码是否正确,若正确打印“登陆成功”
 否则打印“用户名或密码错误”,并让用户重新输入
4.用户密码输入错误超过三次则退出循环。

def login():
    i=1

    while (i<=3):
        # 让用户输入用户名和密码
        user = input('请输入用户名:').strip()
        pwd = input('请输入密码:').strip()
        with open(r'file.txt', 'r', encoding='utf-8')as f:
            res = f.read()
        res1 = res.split(' ')
        if res1[0] ==user:
            if res1[1] ==pwd:
                print('登陆成功')
                break
            else:
                print('用户名或密码错误,请重新登陆')
        else:
            print('用户名或密码错误')
        i=i+1

login()

结果截图
1.失败测试

2.成功测试

 


file文件截图

 

 

今天上课学到了很多的东西,尤其是tank老师很有趣,讲课让人印象深刻,接下来还会继续好好学python的。

 

转载于:https://www.cnblogs.com/-zcj/p/11011791.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值