python实习_python实习

一、随堂笔记:

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() {}

#文件处理的基本使用

#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 day作业

2 with open(r'file1.text','w',encoding='utf-8') as f:

3 f.write('用户名:xm,密码:108595.\n用户名:xm1998,密码:111008.')

4

5 def login():

6 user = ''

7 pwd = ''

8 dict1 = {}

9 with open('file1.text','rt',encoding='utf-8')as w:

10 for line in w:

11 line = line.split('\n')[0].split(',')

12 for data in line:

13 if '用户名'in data:

14 user = data[4:]

15 else:

16 pwd = data[3:]

17 dict1[user] = pwd

18 while True:

19 user1 = input('请输入用户名:').strip()

20

21 if user1 in dict1 :

22 i = 1

23 while i <= 3:

24 pwd1 = input('请输入密码:').strip()

25 if pwd1 == dict1[user1]:

26 print('登陆成功!')

27 break

28 else:

29 i = i + 1

30 else:

31 print('密码错误超过三次!')

32 else:

33 print('用户不存在!')

34 break

35

36 login()

运行结果

请输入用户名:xm1998

请输入密码:111008

请输入密码:111111

请输入密码:111260

密码错误超过三次!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值