python实训第二天
相关基础命令及操作总结:
#insert(位置,数值)
#count() 查看个数
#index()查看索引
#clear() 清空
# list1.clear()
# print(list1)
#copy() 浅拷贝
list2=list1.copy()
#值得拷贝,地址不同
list3=list1
#地址赋值#list3完全全部拷贝,追踪整个过程 地址相同
#深拷贝from copy import deepcopy
#浅拷贝:list1的列表中外层值改变对其不影响
深拷贝:把list1中的所有值完全拷贝到一个新的地址中
#extend() 合并
#reverse()list1.reverse()print(list1)
#sort() 排序
#字典的内置方法(无序)
#1、按照key取存值
dict1 = {'name':'李梦凡','age':18,'sex':'girl','school':'ahpu'}
#根据key取值
print(dict1['school'])#print(dict1['sal']) #报错
print(dict1.get('school'))print(dict1.get('sal')) #不会报错
print(dict1.get('school','患难'))print(dict1.get('sal','15000')) #不会报错
#len print(len(dict1))
#删除
#del dict1['name']
#print(dict1)
#pop() key
#dict1.pop('name')
#根据字典中国的key取值对应的值赋给name
name = dict1.pop('name')print(dict1)print('name')
#随机取出字典中某一个值dict1.popitem()print(dict1)
#key,values,itemprint(dict1.keys()) #所有kryprint(dict1.values())
#循环for key in dict1:
print(key)
#update()print(dict1)
dict2={"work":"student"}
dict1.update(dict2)print(dict1)
元祖类型(在小括号呢,以逗号隔开存放多个值)不可改变 列表可以改变
1、按索引取值
2、切片
3、长度
4、成员运算 in和not in
5、循环
tuple1=(1,2,3)print(tuple1)
print(tuple1[2])
print(tuple1[0:3])print(tuple1[0:3:2])#跳
print(len(tuple1))
print(1 in tuple1)print(5 in tuple1)
for line in tuple1:
print(line)
集合类型(无序)
一般用于去重(在大括号内{},以逗号隔开,以存放多个值,但集合会默认去重功能)
set1={1,2,3,4,2,1}print(set1)
set1=set()
set2={}print(set1)print(set2)
#文件读写基本使用
#open
#对文本进行操作
#open('文件的绝对路径(copy path)/文件的名字.txt',操作模式,指定字符编码)
#f:称之为 句柄
# r:避免转义符
#打开文件会产生两种资源:1、python解释器和python文件的资源,程序结束python会自动回收
#2、一种操作系统打开文件的资源,文件打开后,操作系统不会帮我们回收,我们需要自己手动回收
# f = open('文件的名字.txt', mode='wt', encoding='utf-8') #在一个新的名为文件袋额名字的文件中写入,并且原有文件里面的内容不存在
# f.write('hello tank!')
# f.close()
#读文件
f = open(r'\C:\Users\李梦凡\PycharmProjects\untitled\02\文件的名字.txt','r',encoding='utf-8') #默认rt
res = f.read()print(res)
f.close()
#文件追加
f = open(r'\C:\Users\李梦凡\PycharmProjects\untitled\02\文件的名字.txt','a', encoding='utf-8') #默认at
f.write('hello,limengfan') #在原有的文件中加入新的内容f.close()
文件处理只上下文管理:with
with会自带close()功能,自动关闭
with open(r'li.txt',
'w',encoding='utf-8') as f:
f.write('life is short,u need python')
with open(r'li.txt',
'r',encoding='utf-8') as f:
res = f.read()
print(res)
with open(r'li.txt',
'r', encoding='utf-8') as f:
res = f.read()
print(res)import requests
res = requests.get('网址')print(res.content)#图片的二字流
#图片和视频操作
#写图片
with open('li.jpg','wb') as f:
f.write(res.content)
#读图片
with open('li.jpg','rb') as f:
res = f.read()
print(res)#拷贝
with open('li.jpg','rb') as f,open('meng,jpg','wb') as w:
res=f.read()
w.write(res)#一行一行读文件(若文件的大小超出内存大小会导致内存溺出
#一行一行读,一行一行写,避免内存溺出 )
with open('li.jpg/视频', 'rb') as f, open('meng,jpg', 'wb') as w:
f.read()
for line in f:
w.write(line)
#1、什么是函数
#2、(如何使用函数)
# 先定义,后调用
#3、函数的语法
#def :定义
# def 函数名(参数1、参数2、.....):
# """
#注释
# 函数的声明
# """
# 函数体代码(逻辑代码)
# return 返回值
#
# def:(全程defind) 用来声明定义函数的关键字user
# 函数名:看其名知其意
# ():括号,存放的是接受外界的参数
# 注释:用来说明函数的作用
# 函数体代码:逻辑代码
# return:返回值
#注册功能
#函数的定义阶段发生的事情
# 1、先打开python解释器
# 2、加载该python文件
# 3、python解释器只会检测语法,但只会检测python语法,不会执行函数体代码
#调用函数 函数名() 即调用函数
#egister()
def foo():
print('from foo!')
bar()
#print(
#调用阶段,会执行foo函数体代码foo()
def login():
number = 0
with open('user.text', 'r',encoding='utf-8') as f:
res = f.read()
print(res)
username, password = res.split(':')
flag = True
while flag:
user = input('请输入用户名:').strip()
if username == user:
if number == 3:
break
while number < 3:
pwd = input('请输入密码:').strip()
if password == pwd:
print('登录成功!')
flag = False
break
else:
print('登录失败!')
number += 1
else:
print('用户名不存在,请重新输入!')
login()1