内容回顾

  • 作业讲解

    1.前期不熟练的情况下一定要先写注释
    2.一定要仔细思考每一行代码的含义
    3.自己不会的代码或者不熟练的代码一定要多敲多练

    数据类型内置方法简介

    所有的数据类型基本上都自带了一些操作以及通过点的方式调用自带的方法

    整型相关操作

    类型转换
    int()
    十进制转其他进制
    bin()
    oct()
    hex()
    其他进制转十进制
    int()
  • 浮点型相关操作

    类型转换
    float()
    """
    python对数字不敏感
    """
  • 字符串相关操作

    类型准换
    str()
    字符串必须要掌握的操作
    1.索引取值
    2.切片操作
    3.间隔、方向、步长
    4.统计字符串中字符的个数 len()
    5.移除字符串首尾指定的字符 strip() lstrip() rstrip()
    6.按照指定的字符切割字符串
    7.字符串格式化输出 format() f'{变量名}'
    字符串必须要了解的操作
    1.大小写相关
    upper() lower() isupper() islower()
    2.判断字符串中是否是纯数字
    isdigit()
    3.判断字符串的开头或者结尾
    startwith() endwith()
    4.统计字符串中字符出现的次数
    count()
    5.替换字符串中指定的字符
    replace()
    6.字符串拼接
    join() +
    7.索引相关操作
    index() find()
    8.补充操作
    title() swapcase()
  • 列表相关操作

    类型转换
    list()
    必须要掌握的操作
    1.索引取值
    2.切片操作
    3.间隔 方向 步长
    4.统计列表中数据值的个数 len()
    5.索引修改数据值 l1[0] = 值
    6.列表添加数据值 append() insert() extend() +
    7.列表删除数据值 del l1[0] remove() pop()
    8.排序 sort()
    9.翻转 reverse()
    10.统计列表中数据值出现的次数 count()
  • 可变与不可变类型

    可变类型
    值改变 内存地址不变
    不可变类型
    值改变 内存地址肯定变

内容概要

  • 作业讲解
  • 字典相关操作
  • 元组相关操作
  • 集合相关操作
  • 字符编码(理论)

内容详细

作业讲解

1.基于字符串充当数据库完成用户登录(基础练习)
data_source = 'jason|123' # 一个用户数据
获取用户用户名和密码 将上述数据拆分校验用户信息是否正确 # 定义用户真实数据
data_source = 'jason|123'
# 1.获取用户名和密码
username = input('username>>>:').strip()
password = input('password>>>>:').strip()
# 2.切割字符串 获取真实用户名和密码
real_name, real_pwd = data_source.split('|')
# 3.校验用户名和密码是否正确
if username == real_name and password == real_pwd:
print('登录成功')
else:
print('用户名或密码错误') 2.基于列表充当数据库完成用户登录(拔高练习) # 多个用户数据
data_source = ['jason|123', 'kevin|321','oscar|222']
data_source = ['jason|123', 'kevin|321', 'oscar|222']
# 1.先获取用户输入的用户名和密码
username = input('username>>>:').strip()
password = input('password>>>>:').strip()
# 2.循环获取列表中每一个真实数据
for data in data_source: # 'jason|123' 'kevin|321'
real_name, real_pwd = data.split('|') # jason 123
if username == real_name and password == real_pwd:
print('登录成功')
break
else:
print('用户名或密码错误') data_source = ['jason|123', 'kevin|321', 'oscar|222']
username = input('username>>>:').strip()
password = input('password>>>:').strip()
user_data = f'{username}|{password}' # username + '|' + password
if user_data in data_source:
print('登录成功')
else:
print('用户名或密码错误') 3.利用列表编写一个员工姓名管理系统
输入1执行添加用户名功能
输入2执行查看所有用户名功能
输入3执行删除指定用户名功能
'''分析 用户输入的不同 可以执行不同的代码'''
ps: 思考如何让程序循环起来并且可以根据不同指令执行不同操作
提示: 循环结构 + 分支结构
# 1.先定义一个专门存储用户名的列表
data_list = []
# 2.添加循环结构
while True:
# 3.先打印项目功能 供用户选择
print("""
1.添加用户
2.查看用户
3.删除用户
""")
# 4.获取用户想要执行的功能编号
choice_num = input('请输入您想要执行的功能编号>>>:').strip()
# 5.根据不同的功能编号执行不同的分支代码
if choice_num == '1':
# 6.获取用户输入的用户名
username = input('请输入您的用户名>>>:').strip()
# 7.判断当前用户名是否已存在
if username in data_list:
print('用户名已存在')
else:
# 8.列表添加用户名
data_list.append(username)
print(f'用户名{username}添加成功')
elif choice_num == '2':
# 9.循环打印每一个用户数据
for name in data_list:
print(
f"""
------------user info---------
用户名:{name}
------------------------------
""")
elif choice_num == '3':
# 10.获取用户想要删除的用户名
delete_username = input('请输入您想要删除的用户名>>>:').strip()
# 11.先判断用户名是否存在
if delete_username in data_list:
data_list.remove(delete_username)
print(f'用户名{delete_username}删除成功')
else:
print('你个傻帽 用户名不存在 删毛线啊!!!')
else:
print('很抱歉 暂时没有您想要执行的功能编号')

字典相关操作

1.类型转换
dict()
字典的转换一般不使用关键字 而是自己动手转
2.字典必须要掌握的操作
# print(dict([('name','pwd'),('jason',123)])) # {'name': 'pwd', 'jason': 123}
user_dict = {
'username': 'jason',
'password': 123,
'hobby':['read','music','run']
} # 1.按k取值
# print(user_dict['username']) # 'jason
# print(user_dict['phone']) # k不存在会直接报错
# 2.按内置方法get取值(推荐使用)
# print(user_dict.get('username')) # jason
# print(user_dict.get('age')) # None
# print(user_dict.get('username','没有呦 嘿嘿嘿')) # jason 键存在的情况下获取对应的值
# print(user_dict.get('age','没有呦 嘿嘿嘿')) # 没有呦 嘿嘿嘿 键不存在的情况下第二个值
# 3.修改值数据
# user_dict['username'] = 'tony'
# print(user_dict) # {'username': 'tony', 'password': 123, 'hobby': ['read', 'music', 'run']}
# print(id(user_dict))
# print(user_dict)
# 4.新增键值对
# user_dict['age'] = 18 # 键不存在则新增键值对
# print(user_dict)
# 5.删除数据
# del user_dict['username']
# print(user_dict) # {'password': 123, 'hobby': ['read', 'music', 'run']} # res = user_dict.pop('password')
# print(user_dict) # {'username': 'jason', 'hobby': ['read', 'music', 'run']}
# print(res) # 123
# 6.统计字典中键值对的个数
# print(len(user_dict)) # 3
# 7.字典三剑客
# print(user_dict.keys()) # 一次性获取字典所有的键 dict_keys(['username', 'password', 'hobby'])
# print(user_dict.values()) # 一次性获取字典所有的值 dict_values(['jason', 123, ['read', 'music', 'run']])
# print(user_dict.items()) # 一次性获取字典的键值对数据 # dict_items([('username', 'jason'), ('password', 123), ('hobby', ['read', 'music', 'run'])])
# for k,v in user_dict.items():
# print(k,v)
# username jason
# password 123
# hobby ['read', 'music', 'run']
# 8.补充说明
# print(dict.fromkeys(['name', 'pwd', 'hobby'], 123)) # 快速生成值相同的字典 # res = dict.fromkeys(['name', 'pwd', 'hobby'], [])
# print(res) # {'name': [], 'pwd': [], 'hobby': []}
# res['name'].append('jason')
# res['pwd'].append(123)
# res['hobby'].append('study')
# print(res) # {'name': ['jason', 123, 'study'], 'pwd': ['jason', 123, 'study'], 'hobby': ['jason', 123, 'study']}
'''
当第二个公共值是可变类型 的时候一定要注意 通过任何一个键修改都会影响所有
'''
# user_dict.setdefault('username','tony')
# print(user_dict) # 键存在则不修改 结果是键对应的值
# res = user_dict.setdefault('age',123)
# print(user_dict,res) # 键不存在则新增键值对结果是新增的值 # user_dict.popitem() # 弹出键值对 后进先出
# print(user_dict)

元组相关操作

1.类型转换
tuple()
ps:支持for循环的数据类型都可以转成元组
2.元组必须掌握的方法
t1 = (11,22,33,44,55,66)
# 1.索引取值
# 2.切片操作
# 3.间隔 、方向
# 4.统计元组内数据值的个数
# print(len(t1)) # 6
# 5.统计元组内某个数据值出现的次数
# print(t1.count(11))
# 6.统计元组内指定数据值的索引值
# print(t1.index(22))
# 7元组内如果只有一个数据值那么逗号不能少
# 8.元组内索引绑定的内存地址不能被修改(部分区分 可变与不可变)
# 9.元组不能新增或删除数据

集合相关操作

1.类型转换
set()
集合内数据必须是不可变类型(整型 浮点型 字符串 元组)
集合内数据也是无序的 没有索引的概念
2.集合需要掌握的方法
去重
关系运算
ps:只有遇到上述两种需求的时候才应该考虑使用集合
3.去重
s1 = {11,22,33,4,4,55,5,566,7,44,4,4,44,4,4,}
print(s1)
l1 = [11,22,33,22,33,22,11,11,22,33,22,22,11,11]
s1 =set(l1)
l1 = list(s1)
print(l1)
4.关系运算
群体之间做差异化校验
eg:两个微信账户之间 有不同的好友 有相同的好友
f1 = {'jason','tony', 'jerry', 'oscar'} # 用户1的好友列表
f2 = {'jack', 'jason','tom','tony'} # 用户2的 好友列表
# 1.求两个人的共同好友
# print(f1 & f2) # {'jason', 'tony'}
# # 2.求用户1 独有的好友
# print(f1 - f2) # {'oscar', 'jerry'}
# # 3.求两个人所有的好友
# print(f1 | f2) # {'tony', 'oscar', 'tom', 'jerry', 'jason', 'jack'}
# 4. 求两个人各自独有的好友
# print(f1 ^ f2) # {'oscar', 'tom', 'jerry', 'jack'}
# 5.父集 子集
# print(f1 > f2) # False
# print(f2 < f1) # False

字符编码理论

该知识点理论特别多 但是结论很少 代码使用也很短
1.字符编码只针对文本数据
2.会议计算机内部存储数据的本质
3.既然计算机内部只认识01 为什么我们却可以敲出人类各式各样的字符
肯定存在一个数字跟字符的对应关系 存储该关系的地方称为>>>:字符编码本
4.字符编码发展史
4.1一家独大
计算机是由美国人发明的,为了能够让计算机识别英文
需要发明一个数字跟英文字母的对应关系
ASCII码:记录了英文字母跟数字的对应关系
用8bit(字节)来表示一个英文字符
4.2群雄割据
中国人
GBK码:记录了英文、中文与数字的对应关系
用至少16bit(2字节)来表示一个中文字符
很多生僻字还需要使用更多的字节
英文还是用8bit(1字节)来表示
日本人
shift_JIS码:记录了英文、日文与数字的对应关系
韩国人
Euc_kr码:记录了英文、韩文与数字的对应关系
"""
每个国家的计算机使用的都是字节定制的编码本
不同的国家的文本数据无法直接交互 会出现"乱码"
"""
4.3天下一统
unicode 万国码
兼容所有国家语言字符
起步就是两个字节来表示字符
utf系列 :utf8 utf16 ...
专门用于优化unicode存储问题
英文还采用一个字节 中文三个字节

字符编码实操

1.针对乱码不要慌 切换编码慢慢试即可
2.编码与解码
编码:将人类的字符按照指定的编码编码成计算机能够读懂的数据
字符串.encode()
解码: 将计算机能够读懂的数据按照指定的编码编码成人能够读懂
bytes类型数据.decode()
3.python2与python3差异
python2默认的编码ASCII
1.文件头
# encoding:utf8
2.字符串前面加u
u'你好啊'
python3默认的编码是utf系列(unicode)

python进阶之路8 字典、元组、集合内置方法 编码理论的更多相关文章

  1. python之字符串,列表,字典,元组,集合内置方法总结

    目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...

  2. 元组/字典/集合内置方法+简单哈希表(day07整理)

    目录 二十三.元组内置方法 二十四.字典数据类型 二十五 集合内置方法 二十五.数据类型总结 二十六.深浅拷贝 补充:散列表(哈希表) 二十三.元组内置方法 什么是元组:只可取,不可更改的列表 作用: ...

  3. Python基础部分:10、数据类型的内置方法和字符编码

    目录 一.数据类型内置方法 1.字典dict内置方法 1.1.类型转换 2.字典必须要掌握的方法 2.1.取值方式 2.2.修改内部数据值 2.3.删除数据 2.4.统计字典中键值对个数 2.5.字典 ...

  4. python 入门基础21 --面向对象_多态、内置方法、反射

    内容: 1.接口思想 2.抽象类思想 3.多态 4.内置方法 5.反射 1.接口思想 建立关联的桥梁,方便管理代码 接口类:用来定义功能的类,位继承它的子类提供功能 该类的功能方法一般不需要实现体,实 ...

  5. python day21 ——面向对像-反射 getattr,内置方法

    一.反射:用字符串数据类型的变量名来访问这个变量的值 上代码^_^ # class Student: # ROLE = 'STUDENT' # @classmethod # def check_cou ...

  6. Python面向对象 --- 类的设计和常见的内置方法

    面向对象:一种基于面向过程的新的编程思想.也就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节:这种思想是将数据作为第一位,而方法或者说是算法作为其次,这是对数据一种 ...

  7. 小白基础Python重要的字符串详解String的内置方法

    String的内置方法: st='hello world  {name} is {age}'  {}  特殊内容需要识别format print(st.count('1')) 统计元素个数 print ...

  8. python字典操作和内置方法

    一 字典基本介绍 python中只有字典是映射结构,通过key取值,并且key是不可变数据类型,而value可以是任意数据类型. 字典通过一个花括号,里面存放key:value的数据结构来定义.理论上 ...

  9. python中的集合内置方法小结

    #!/usr/local/bin/python3 # -*- coding:utf-8 -*- #集合性质:需要传入一个list,且不含重复的元素,无序 list_1=[1,2,1,4,5,8,3,4 ...

  10. 列表&元组的内置方法

    标红为元组可以使用

随机推荐

  1. JS---HelloWorld

    1.功能效果图 2.代码实现 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  2. Windows版 PostgreSQL 利用 pg_upgrade 进行大版升级操作

    最近 PostgreSQL 15 版本正式发布了,新版本的各种特性和好处本文就不展开介绍了,主要介绍一下 Windows 环境下 PostgreSQL 大版本升级的方法,我们现在的几个数据库都是运行在 ...

  3. day01-3-界面显示&用户登录&餐桌状态显示

    满汉楼01-3 4.功能实现02 4.2菜单界面显示 4.2.1功能说明 显示主菜单.二级菜单和退出系统功能 4.2.2代码实现 先搭建界面显示的大体框架,具体的功能后面再实现 创建MHLView类: ...

  4. java:找不到符号

    出现这种情况的原因之一:实体类的字段修改过.实体类中的变量名修改.然而其他地方调用的字段名还是修改之前的变量.

  5. R数据分析:扫盲贴,什么是多重插补

    好多同学跑来问,用spss的时候使用多重插补的数据集,怎么选怎么用?是不是简单的选一个做分析?今天写写这个问题. 什么时候用多重插补 首先回顾下三种缺失机制或者叫缺失类型: 上面的内容之前写过,这儿就 ...

  6. maven的下载、安装、配置,idea中配置Maven

    下载 下载链接: 点击下载地址 : 找到:对应版本的包下载 安装 下载后的压缩包解压出来,然后将解压后的包放到日常安装软件的位置即安装成功,当然取决于个人意愿,也可以不移动. 打开安装包后的目录结构简 ...

  7. 20_Vue如何监测数组类型数据发生改变的?

    通过上一节,我们知道了vue检测对象数据发生改变的原理 但是还有个api我们没有讲解,Vue.set(): 这个API比较适合在理解了对象检测的原理后进行讲解 案例准备 html <!-- 创建 ...

  8. Python基础之函数:1、函数的介绍及名称空间

    目录 一.函数 1.什么是函数 2.函数的语法结构 3.函数的定义与调用 4.函数的分类 5.函数的返回值 6.函数的参数 二.函数参数 1.位置参数 2.默认参数 3.可变长参数 1.一个*号 2. ...

  9. 《ASP.NET Core技术内幕与项目实战》精简集-目录

    本系列是杨中科2022年最新作品<ASP.NET Core技术内幕与项目实战>及B站配套视频(强插点赞)的精简集,是一个读书笔记.总结和提炼了主要知识点,遵守代码优先原则,以利于快速复习和 ...

  10. 线上Electron应用具备哪些特征?

    新用户购买<Electron + Vue 3 桌面应用开发>,加小册专属微信群,参与群抽奖,送<深入浅出Electron>.<Electron实战>作者签名版. 1 ...