热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基础数据类型补充以及二次编码

基础数据类型补充以及二次编码一.基础数据类型补充1.字符串(str)首字母大写#.capitalize()namemeetsname.capitalize()print(s)#Me
基础数据类型补充以及二次编码

一.基础数据类型补充

1.字符串(str)

  • 首字母大写

# .capitalize()
name = "meet"
s = name.capitalize()
print(s) #Meet

  • 每个单词首字母大写

# .title()
name = "meet alex"
s = name.title()
print(s) #Meet Alex

  • 大小写反转

# .swapcase()
name = "MeeT"
s = name.swapcase()
print(s) #mEEt

  • 居中–填充

# .center()
name = "meet"
s = name.center(10,"*")
print(s) #***meet***

  • 查找(从左向右,之查找一个)

# .find() .index()
name = "meet"
s = name.find("e")
print(s) #1 #find查找不存在的就返回-1
s = name.index("t")
print(s) #3 #index查找不存在的就报错

  • 拼接

# .join()
name = ["meet","alex"]
s = "_".join(name) #拼接符.join(可迭代对象)
print(s) #meet_alex

  • 格式化

1.%s
2.f
3.name.format()
按照索引位置进行填充
name = "alex{},{}"
print(name.format(1,2)) # alex1,2
按照索引值进行填充
name = "alex{1},{0}"
print(name.format("a","b")) #alexb,a
按照关键字进行填充
name = "alex{a},{b}"
print(name.format(a=1,b=2)) #alex1,2

2.列表

定义方式 list(可迭代对象) + * 元素都是共用的

  • 排序(默认升序)

# lst.sort()
lst = [1,5,3,2,4]
lst.sort()
print(lst) #[1, 2, 3, 4, 5]

  • 降序

# lst.sort(reverse=True)
lst = [1,2,3,4,5]
lst.sort(reverse=True)
print(lst) #[5, 4, 3, 2, 1]

  • 反转

# lst.reverse()
lst = [1,2,3,4,5]
lst.reverse()
print(lst) #[5,4,3,2,1]
print(lst::-1) #[5,4,3,2,1]

  • 面试题

lst = [[]]
new_lst = lst * 5
new_lst[0].append(10)
print(new_lst) #[[10], [10], [10], [10], [10]]

lst = [1,[]]
new_lst = lst * 5
new_lst[0] = 10
print(new_lst) #[10, [], 1, [], 1, [], 1, [], 1, []]
lst = [1,[]]
new_lst = lst * 5
new_lst[1] = 10
print(new_lst) #[1, 10, 1, [], 1, [], 1, [], 1, []]
lst = [[]]
new_lst = lst * 5
new_lst[0].append(10)
print(new_lst) #[[10], [10], [10], [10], [10]]
合并列表
方式一:
lst = [1,2,3]
lst1 = [4,5,6]
lst.extend(lst1)
print(lst) #[1,2,3,4,5,6]
方式二:
lst = [1,2,3]
lst1 = [4,5,6]
print(lst + lst1) #[1,2,3,4,5,6]

3.元组

tu = ("1") ()中的数据类型是数据本身
tu = (1,) --元组
元组可以 + * 不可变的共用,可变的也共用

4.字典

定义一个字典: dict(k = 1,k1 = 2)

# 随机删除
dic.popitem()
print(dic.popitem()) --返回的是被删除的键值对
# 批量添加键值对 键是可迭代对象,值是共用的
dict.fromkeys()
dic = {}
dic.fromkeys("123",[23])
print(dic) # {}
dic = {}
print(dic.fromkeys("123",[23]))
#{'1': [23], '2': [23], '3': [23]}

5.集合

空集合-- set()
空字典--{}
定义集合: set("alex") #{'a', 'e', 'l', 'x'} 迭代添加的

6.布尔值

False:
数字:0
字符串:""
列表:[]
元组:()
字典:{}
集合:()
其他:None

二.数据类型之间的转换

# 元组转列表(tuple --> list)
list(tuple)
# 列表转元组(list --> tuple)
tuple(list)
#字符串转列表(str --> list)
s = "abc"
s1 = s.split(" ")
print(s1) #['abc']#列表转字符串(list --> str)
s = ["abc"]
print("".join(s)) #abc
#字典转字符串(dict --> str)
dic = {"a":1,"b":2}
print(str(dic)) #{'a': 1, 'b': 2}
#集合转列表(set --> list)
set = {"a",1}
print(list(set)) #[1, 'a']
#列表转集合(list --> set)
lst = [1,2,3]
print(set(lst)) #{1,2,3}

python数据类型
可变:list,dict,set不可变:int,bool,str,tuple
有序:list,tuple,str,int,bool
无序:dict,set
取值方式:
索引取值:str,list,tuple
直接取值:set,int,bool
用键取值:dict

三.会遇到的坑

#列表删除:从后向前删除
# 创建一个新的列表,删除旧的列表
#字典删除:循环的时候不能改变源数据的大小(可以改变值)
# 创建一个新的字典,删除旧的字典
#集合删除:循环的时候不能改变源数据的大小
lst = [1,2]
for i in lst:
lst.append(3)
print(lst) #死循环
删除列表的坑:lst = [1,2,3,4]
for i in lst:
lst.pop()
print(lst) #[1,2]
lst = [1,2,3,4]
for i in lst:
lst.pop(0)
print(lst) #[3,4]
lst = [1,2,3,4]
for i in lst:
lst.remove(i)
print(lst) #[2,4]
成功删除的方式:
lst = [1,2,3,4]
for i in range(len(lst)):
lst.pop()
print(lst) #[]
lst = [1,2,3,4]
for i in range(len(lst)-1,-1,-1)
del lst[i]
print(lst) #[]
lst = [1,2,3,4]
for i in range(len(lst)):
del lst[-1]
print(lst) #[]
lst = [1,2,3,4]
lst1 = lst.copy()
for i in lst1:
lst.remove(i)
print(lst) #[]
删除字典的坑: #字典的迭代会改变原来的大小(不能加不能删)
dic = dict.fromkeys("12345",1)
for i in dic:
dic[i] = "123"
print(dic)
#{'1': '123', '2': '123', '3': '123', '4': '123', '5': '123'}dic = dict.fromkeys("12345",1)
dic1 =dic.copy()
for i in dic1:
dic.pop(i)
print(dic) #{}
#集合和字典都是迭代的时候不能改变原来的大小

四.二次编码

ascii –没有中文

gbk –英文8b(位) 1B(字节) 中文16b 2B

Unicode — 英文16b 2B 中文 32b 4B

utf-8 — 英文8b 1B 欧洲16b 2B 亚洲24b 3B

encode() --编码 decode() --解码
name = "你好啊"
s1 = name.encode("utf-8") # 编码
s2 = s1.decode("utf-8") #解码
print(s2)
s2 = name.encode("gbk") # 编码
print(s2.encode("gbk")) #解码
# 以什么编码集(密码本)进行编码就要用什么编码集(密码本)解码

推荐阅读
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 这篇文章主要介绍了Python拼接字符串的七种方式,包括使用%、format()、join()、f-string等方法。每种方法都有其特点和限制,通过本文的介绍可以帮助读者更好地理解和运用字符串拼接的技巧。 ... [详细]
  • 本文介绍了使用Python编写购物程序的实现步骤和代码示例。程序启动后,用户需要输入工资,并打印商品列表。用户可以根据商品编号选择购买商品,程序会检测余额是否充足,如果充足则直接扣款,否则提醒用户。用户可以随时退出程序,在退出时打印已购买商品的数量和余额。附带了完整的代码示例。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
author-avatar
专业文章代写
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有