python_02

一、随堂笔记:

1.数据类型剩余的内置方法

2.字符编码

3.文件处理

4.函数基础


list1=["zhozho",18,"male",3.0,9,"广州","zhozho",["tank","ko"]]
'''
insert()插入
list1=["zhozho",18,"male",3.0,9,"广州","zhozho",["tank","ko"]]
list1.insert(3,"dudu")
print(list1)

pop()取出
remove()移除
count()查看值的个数
print(list1.count("zhozho"))
index()查看值的索引
print(list1.index("广州"),"广州")
clear()清空列表的值
copy()拷贝
#copy()与=的区别
'''
"="号是直接把相应的内存赋给变量,故改变内存中值的时候,变量的值跟者改变
copy()是将之前内存地址拷贝到另一个内存地址之中,前一个地址值改变时,copy()变量值不变
称之为浅拷贝
浅拷贝:list1的列表中的外层值改变值对其不影响,但其中
的可变类型改变时,会随之改变
list2=list1.copy();
list3=list1
print(list2)
print(list3)
list1.append("增加")
print(list2)
print(list3)

编译:

['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko']]
['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko']]
['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko']]
['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko'], '增加']

'''深拷贝
把list1中的所有值完全拷贝到另一个地址,list1中改变任何值都不改变
'''
from copy import deepcopy
list4=deepcopy(list1)
list1[8].append("ho")
print(list1)
print(list2)
print(list3)
print(list4)

编译:

['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko', 'ho'], '增加']
['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko', 'ho']]
['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko', 'ho'], '增加']
['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko'], '增加']
extend()合并
reverse()反转
sort()排序

'''
字典:
#按照key取存值
dict1={"name":"alice","age":18,"sex":"","school":"安徽工程大学"}
print(dict1["school"])
>>>安徽工程大学
#get()
若key在字对应的字典中则取value值,不在则为none,不会报错
若不存在的key值后面定义了value值,则会自动取自定义的value值
print(dict1.get("school"))
print(dict1.get("ji","ko"))
print(dict1.get ("ji"))
安徽工程大学
ko
None
# 2.len()
print(len(dict1))
#3.成员运算,判断的是字典里的key
#in \not in
#4.删除 del
# del dict1["name"]
#5.pop()
name=dict1.pop("name")
print(name)
print(dict1)
alice
{'age': 18, 'sex': '', 'school': '安徽工程大学'}
字典是无序类型,不根据索引取值
排序是无序的

Python 字典 popitem() 方法随机返回并删除字典中的一对键和值(一般删除末尾对)。

如果字典已经为空,却调用了此方法,就报出KeyError异常。

dict1.popitem()
print(dict1)
#6.keys value items(键值对)
print(dict1.keys())
print(dict1.values())
print(dict1.items())
dict_keys(['age', 'sex'])
dict_values([18, ''])
dict_items([('age', 18), ('sex', '')])
#7.循环
#循环字典中索引的key
for key in dict1:
    print(key)
#8 update()更新
dict2={"work":"student"}
dict1.update(dict2)
print(dict1)
{'age': 18, 'sex': '', 'work': 'student'}

元组:#在小括号内,以逗号隔开,存放多个值

#优先掌握,元组为不可变类型(列表为可变类型)
tuple1=(1,2,3,4,5,6)
print(tuple1)
#按索引取值
print(tuple1[1])
#切片取值,步长
print(tuple1[0:6])
#成员运算
#循环
集合:
#集合类型
#在{}内以逗号隔开,可存放多个值,但集合客默认去重功能
集合也是无序的
set1={1,2,3,5,3,2,4,7}
print(set1)
{1, 2, 3, 4, 5, 7}

{}:

set2=set()
set3={}#这里无法判断是元组还是字典
print(set2,set3)
set3["name"]="tank"
print(type(set3))

 

set2=set()
set3={}#这里无法判断是元组还是字典
print(set2,set3)
set3["name"]="tank"
print(type(set3))
set() {}
<class 'dict'>

 

#文件处理的基本使用
#open("文件的名字",mode="wt",encoding=“utf_8”)mode 为对文本操作的模式,encoding为指定的字符编码
'''
打开i文件会产生两种资源,一种是python解释器与python文件的资源,结束程序python会自动回收
 
f=open(r'E:\新建文件夹\收纳\python_project\day_02\文件的名字.txt',mode='wt',encoding='utf-8')
f.write("hello tank!!")
 f.close()

读文件

 f=open(r'E:\新建文件夹\收纳\python_project\day_02\文件的名字.txt',mode='r',encoding='utf-8')
 res=f.read()
 print(res)
文件的追加模式a打开一个文件用于追加。追加文件需要加上\n
# 如果该文件已存在,文件指针将会放在文件的结尾。
# 也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
f=open(r'E:\新建文件夹\收纳\python_project\day_02\文件.txt','a',encoding='utf-8')
 f.write('\nhello,join!')
 f.close()
文件处理之上下文管理:with   as
with会自带close功能
会在文件处理完成后自动调用close()
with open('E:\新建文件夹\收纳\python_project\day_02\文件.txt','w',encoding='utf-8') as f:
    f.write('huiihggfghh')

图片和视频的处理

获取网页图片的地址,这里为图片的URL,后缀为.jpg
#content返回的是bytes,二级制型的数据。图片、视频等都是二进制的数据
import requests
res =requests.get('http://pic53.nipic.com/file/20141115/9448607_175255450000_2.jpg')

写入图片

with open('da.jpg','wb') as f:
    f.write(res.content)

读图片

with open('da.jpg','rb') as f:
    res=f.read()
    print(res)

图片拷贝

with open('da.jpg','rb') as f,open('ta.jpg','rb') as w:
    res=f.read()
    w.write(res)
#读写视频操作与读写图片基本一致,视频后缀为.mp4

函数相关

1.什么是函数
函数相当于工具,需要实现准备好,在需要时再使用
2.如何使用函数
函数必须先定义,后调用
3.函数的语法:
def cup(参数一,参数二):
函数的声明
函数体代码(逻辑代码)
def:(全称defind)用来声明定义函数的关键字
函数名:看其名,知其意
():存放的是接收外界的参数
注释:用来说明函数的作用
函数体代码:逻辑代码
return:后面跟函数的返回值
'''
#注册功能函数
def register():
    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)三种方法使用户名与密码匹配
            user_info=f'用户名:{user},密码:{pwd}'
            with open("user.txt",'w',encoding='utf-8')as f:
                f.write(user_info)
        else:
            print("两次密码不一样,请重新输入!")
        return
#调用函数 函数名()
register()
'''
函数在定义阶段发生的事情
1.先打开python解释器
2.加载python文件(.py文件)
3.只会检测python语法,不会执行函数体代码
'''

二、作业
''
1.让用户输入用户名与密码
2.校验用户名是否存在
3.用户名存在后检验密码是否正确,若正确打印”登陆成功“
否则打印”用户名或密码错误“,并让用户重新输入
4.用户密码输入错误超过三次则退出循环
'''
def login():
    count=0
    su=0
    while True:
        if count!=3:

            user=input("please input your username:").strip()
            password=input("please input your password:").strip()
            username=""
            psw=""
            with open(r'E:\新建文件夹\收纳\python_project\day_02\登录文件',mode='rt',encoding='utf-8') as f:
                for line in f:
                    res=line.strip().split('\n')[0].split(',')
                    for i in res:
                        str=i.split(':')
                        if user in str:
                            t1=1
                           # else:t1==0
                    if password in str and t1==1:
                        su=1
                        print(f'用户{user}登陆成功!')

            print(su)
            if su==1:
                break
            else:
                count+=1
                print(f"用户名或密码输入错误!请继续输入,你还有{3-count}次机会!")


        else:
            print("登录已结束,请确定用户名或密码后再尝试!")
            break
login()

运行:

please input your username:Alice
please input your password:34
用户名或密码输入错误!请继续输入,你还有2次机会!
please input your username:Alice
please input your password:123454
用户Alice登陆成功!

登录文件:

user:Alice,password:123454
user:sily,password:5678
user:jion,password:8989

 

 
posted @ 2019-06-12 21:07  辛周  阅读(186)  评论(0编辑  收藏  举报