博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python Day02
阅读量:4982 次
发布时间:2019-06-12

本文共 5544 字,大约阅读时间需要 18 分钟。

一.今日内容

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

#列表常用方法 1.insert() #插入 #list1.insert(2,'ahpu') #print(list1) 2.pop() #取出 3.remove() # 移除 4.count() #查看值的个数 #print(list1.count('lee')) 5.index() #查看值的索引 #print(list1.index('anhui')) 6.clear() #清空列表值 #print(list1.clear()) 7.copy() #浅拷贝 #list1列表中外层值的改变对其不造成影响,但对其可变类型修改会随之改变值 list2=list1.copy() print(list2,‘添加前’) list3=list1 print(list3,‘添加前’) list1.append('jason') print(list2,'添加后') print(list3,‘添加后’)
list1[8].append('lee') print(list2) print(list3)
8.entend() # 合并 list1=[1,2,3,4] list2=[2,3,4,5] list1.extend(list2) print(list1) 9.reverse() #反转 list1.reverse() print(list1) 10.sort() #排序 list3=[1,3,5,7,9,12] list4=[1,2,3,4,5,6,7,8,9] list3.sort() print(list3) list4.sort(reverse=True) print(list4) 11. from copy import deepcopy      #深拷贝 #把list1中的所有值完全拷贝到一个新的地址中,进而与list1完全隔离开 from copy import deepcopy list4=deepcopy(list1) list1.append('lee') print(list4) ''' #list1=['lee',18,'male',3.0,9,'anhui',[1,2]]
#字典的常用方法 ''' 1.按key取值,可存可取 #按key取值学校 print(dict1.get('school')) print(dict1['age']) #get() #第一个参数是字典的key #第二个参数是默认值,如果key存在,取key值,否则取默认值 print(dict1.get('school','华理工')) print(dict1.get('school')) 2.len print(len(dict1)) 3.成员运算 in 和 not in print('name' in dict1) print('female' in dict1) print('sal' not in dict1) 4.删除 del dict1['name'] print(dict1) 5.pop() #根据字典中的key值取出对应值给dict2 dict2=dict1.pop('name') print(dict2) #随即取出字典中的某个值 dict1.popitem() print(dict1) 6.#keys,values,items print(dict1.keys()) print(dict1.values()) print(dict1.items()) 7.循环 循环字典中的所有key for key in dict1:      print(key) 8.update() print(dict1) dict2={'work':'student'} #把dict2加入到dict1字典中 dict1.update(dict2) print(dict1) ''' #dict1={'name':'狗','age':18,'sex':'male','school':'ahpu'}
#元组(在小括号内,以逗号隔开,存放多个值)的基本运算 #元组与列表的区别:元组是不可变类型,列表是可变类型 ''' 1.安索引取值 print(tuple[2]) 2.切片(顾头不顾尾) print(tuple1[0:6]) #步长 print(tuple1[0:6:2]) 3.长度 print(len(tuple1)) 4.成员运算in 和 not in print(1 in tuple1) print(1 not in tuple1) 5.循环 for line in tuple1:     print(line) ''' #tuple1=(1,2,3) #print(tuple1)
#集合类型 #在{}内,以逗号隔开,存放多个值,但集合带有自动去重复功能 set1={1,1,2,3,4,5} print(set1)
#集合是无序的 set1=set({1,2,3,4,5,6,}) set2=set({4,5,3,2,6,1}) set3=set() set4={} print(set1) print(set2)

2.字符编码

 把字符集中的字符编码为指定集合中某一对象(例如:比特模式、序列、8位组或者),以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。

1. UTF-8

  UTF-8是一种变长编码方式,使用1-4个字节进行编码。UTF-8完全兼容ASCII,对于ASCII中的字符,UTF-8采用的编码值跟ASCII完全一致

2.Unicode

  Unicode是指一张表,里面包含了可能出现的所有字符,每个字符对应一个数字,这个数字称为码点(Code Point),如字符'H'的码点为72(十进制),字符'李'的码点为26446(十进制)。Unicode表包含了1114112个码点,即从000000(十六进制) - 10FFFF(十六进制)

3.文件处理

#文件读写基本使用 ''' 1.对文本进行操作 #写文件 open(参数1:文件的名字,参数2:模式,参数3:指定字符编码方式) #f:句柄 #f=open('1.txt',mode='wt',encoding='utf-8') f=open(r'/D:/pycharm/pycharm_files/1.txt',mode='wt',encoding='utf-8') f.write('bbc') f.close() #读文件 f=open(r'/D:/pycharm/pycharm_files/1.txt','r',encoding='utf-8') res=f.read() print(res) f.close() #文件追加 f=open(r'/D:/pycharm/pycharm_files/1.txt',        'a' #默认at模式         encoding='utf-8') f.write('hello world') f.close() '''

 

2.文件处理-上下文管理:with with会自带close功能,在文件处理以后自动关闭文件 写入 with open(r'files/1.txt',        'w',         encoding='utf-8') as f:     f.write('lie') 读取 with open(r'files/1.txt',        'w',         encoding='utf-8') as f:     res=f.read()     print(res) 追加     with open(r'files/1.txt',        'w',         encoding='utf-8') as f:     res=f.write('ssss')     print(res) 3.图片与视频的处理

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

 

 

4.函数基础

 

1、什么是函数?

函数相当于工具,需要事先准备好,在需要用时再使用。

2、如何使用函数?

函数必须先定义、后调用。

'''

# 3、函数的语法:

# def 函数名(参数1,参数2...):

# """
# 注释
# 函数的说明
# 水杯,用来盛水与喝水
# """
# 函数体代码(逻辑代码)
# return 返回值
'''
def: (全称defind) 用来声明定义函数的关键字。
函数名: 看其名、知其意。
(): 括号,存放的是接收外界的参数。
注释: 用来说明函数的作用。
函数体代码: 逻辑代码。
return: 后面跟函数的返回值。
'''

# 调用函数: 函数名 + 括号 即调用函数.

# register()

 

'''

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

'''

def register():

'''
此函数注册功能
:return:
'''

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

pwd = input('请输入密码:').strip()
re_pwd = input('请确认密码:').strip()

if pwd == re_pwd:

user_info = f'用户名:{user},密码:{pwd}'

with open(f'{user}.txt', 'w', encoding='utf-8') as f:

f.write(user_info)

else:

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

 

二.作业

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

f.write('用户名:lm,密码:1000.\n用户名:lm1998,密码:123456.')

def login():

user = ''
pwd = ''
dict1 = {}
with open('file1.text','rt',encoding='utf-8')as w:
for line in w:
line = line.split('\n')[0].split(',')
for data in line:
if '用户名'in data:
user = data[4:]
else:
pwd = data[3:]
dict1[user] = pwd
while True:
user1 = input('请输入用户名:').strip()

if user1 in dict1 :

i = 1
while i <= 3:
pwd1 = input('请输入密码:').strip()
if pwd1 == dict1[user1]:
print('登陆成功!')
break
else:
i = i + 1
else:
print('密码错误超过三次!')
else:
print('用户不存在!')
break

login()

运行结果
请输入用户名:lm1998
请输入密码:123
请输入密码:111
请输入密码:121

密码错误超过三次!

转载于:https://www.cnblogs.com/lee-L/p/11010341.html

你可能感兴趣的文章
Moctf--Pubg题目
查看>>
ORM框架与mysql数据库的无缝对接
查看>>
在centos上使用yum安装rabbitmq-server
查看>>
SpringBoot项目如何打War包
查看>>
Managing Dynamic Objects in C++
查看>>
计算excel列的名字
查看>>
自助Linux之问题诊断工具strace
查看>>
JDBC为什么要使用PreparedStatement而不是Statement
查看>>
delphi调用LUA函数来处理一些逻辑
查看>>
MySQL下分页查询数据
查看>>
解题报告 幸福的道路
查看>>
Windows Service
查看>>
数据结构小练习
查看>>
jQuery的选择器
查看>>
python time模块
查看>>
省市区联动
查看>>
省选专练POI2015Logistyka
查看>>
CCPC2016合肥现场赛
查看>>
layui 框架之秒传文件 (前端分段 MD5 型成秒传)
查看>>
Asp.net 在刷新或提交页面后保持滚动条的位置
查看>>