PYTHON数据类型(进阶)
PYTHON数据类型(进阶)
一、字符串、列表、字典、元祖、集合的补充
str
#captalize 首字母大写,其余小写
s1.capitalize()
#swapcase 大小写翻转
s1.swapcase()
#每个单词首字母大写
s1='hello say3you'
s1.title()#you变成You
#居中
s1.center(30)
s1.center(20,'*')
# 找索引
s1.find('a')#找到第一个返回,找不到返回-1
s1.index('b')#找到第一个返回,找不到报错
tuple
#(3)不是元祖,(3,)才是元祖,而list、dic单元素却不受影响
tu.index('aa')
tu.count('2')
list
基本操作
#排序
l1.sort()#从小到大
l1.sort(reverse=True)#从大到小
l1.reverse()#反转
#相加
l1+l2
#与数字相乘
l1*3
删除
#这种删除并不能满足要求,循环删除过程已经改变列表元素序号
l1 = [11, 22, 33, 44, 55]
for index in range(len(l1)):
if index % 2 == 1:
l1.pop(index)
print(l1)
#下面可以的
l1 = [11, 22, 33, 44, 55]
new_l1 = []
for index in range(len(l1)):
if index % 2 ==0:
new_l1.append(l1[index])
l1 = new_l1
print(l1)
- 提示:循环一个列表的时,最好不要改变列表的大小,这样会影响你的最终的结果
字典
#字典也有update(必须是键值对),set也有update(迭代增加),list也有extend(迭代增加)
dic = {'name': '老胡', 'age': 28}
dic.update(hobby='美女', hight='175')
dic.update([(1, 'a'),(2, 'b'),(3, 'c'),(4, 'd')]) # 面试会考,列表内元祖对
dic.update(((1, 'a'),(2, 'b'),(3, 'c'),(5, 'd'))) #元祖内元祖对
#fromkeys的用法,就是from各种key而共用value
dic = dict.fromkeys([1,2,3],[])#可迭代对象哦
dic[1].append(66)#所有value都会变,他们是连体的。
不要遍历字典过程中去改变字典的大小,会报错
dic = {'k1': '太白', 'k2': 'barry', 'k3': '白白', 'age': 18}
for key in dic:
if 'k' in key:
dic.pop(key)
print(dic)
#报错
#下面才可以
l1 = []
for key in dic:
if 'k' in key:
l1.append(key)
print(l1)
for i in l1:
dic.pop(i)
print(dic)
#下面也可以
for key in list(dic.keys()): # ['k1', 'k2', 'k3','age']
if 'k' in key:
dic.pop(key)
print(dic)
各种“零”
#0,''(),[],{},set(),None
ll=[0,'',(),[],{},set(),None]
for list in ll:
print(bool(list))
二、编码进阶
- 先给个报错
s1 =b'中国'
^
SyntaxError: bytes can only contain ASCII literal characters.
再明确几个计算机系统中的概念
当在文本框打字时,显示的是内存中的内容(unicode编码),当保存后,就是通过该软件编码后的数据(当然呈现在你面前是进过软件解码的)
python屏幕打印其实已经经过了IO操作了,也就是内存的数据已经写入pycharm并打印出来,也就是内存的数据经过utf-8编码并经过utf-8解码。所以!!!!!所有print(s),s是什么就打印什么
s1 = '中国'
b1 = s1.encode('utf-8') # 编码
print(b1,type(b1)) #打印结果就是 b'\xe4\xb8\xad\xe5\x9b\xbd'
print(s1)#打印结果就是中国
对于python中在字符前加b,例如b'hello',其实就是将其进行asicii编码,print时,进行asicii解码,所以能呈现b'hello'。而对于中文来说,b'中国'是错误的,因为不能进行ascii编码,而如2中例子中描述,解码时,byte类型解码通过acsii解不出,只能呈现b'\xe4\xb8\xad\xe5\x9b\xbd'
对于文件操作,必须制定编码,否则就按照windows默认编码gbk来。但是对于pycharm软件,我们打印时并没有制定编码,我认为,因为是在pychar软件内部操作,所以自动有编码和解码过程,例如
s='中古'
print(s)#中国经历了utf-8编码写入pycharm,然后utf-8解码读出来,中国!!!
PYTHON数据类型(进阶)的更多相关文章
- Python基础(四) 基础拾遗、数据类型进阶
一.基础拾遗 (一).变量作用域 外层变量,可以被内层变量直接调用:内层变量,无法被外层变量使用.这种说法在其它语言中适用,在python中除了栈以外,正常的变量作用域,只要执行声明并在内存中存在,该 ...
- python 数据类型---布尔型& 字符串
python数据类型-----布尔型 真或假=>1或0 >>> 1==True True >>> 0==False True python 数据类型----- ...
- Python 数据类型及其用法
本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组 ...
- Python-Day4 Python基础进阶之生成器/迭代器/装饰器/Json & pickle 数据序列化
一.生成器 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面 ...
- day01-day04总结- Python 数据类型及其用法
Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点 ...
- Python数据类型及其方法详解
Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知 ...
- Python学习笔记(五)--Python数据类型-数字及字符串
Python数据类型:123和'123'一样吗?>>> 123=='123'False>>> type(123)<type 'int'>>> ...
- python数据类型之元组、字典、集合
python数据类型元组.字典.集合 元组 python的元组与列表类似,不同的是元组是不可变的数据类型.元组使用小括号,列表使用方括号.当元组里只有一个元素是必须要加逗号: >>> ...
- 1 Python数据类型--
常见的Python数据类型: (1)数值类型:就是平时处理的数字(整数.浮点数) (2)序列类型:有一系列的对象并排或者排列的情况.如字符串(str),列表(list),元组(tuple)等 (3)集 ...
随机推荐
- C++扬帆远航——4(百钱百鸡)
/* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:baiji.cpp * 作者:常轩 * 完成日期:2016年3月 ...
- electron+vue制作桌面应用--自定义标题栏
electron会默认显示边框和标题栏,如下图 我们来看一下如何自定义一个更加有(gao)意(da)思(shang)的标题栏,例如网易云音乐这种 首先我们要把默认的标题栏删掉,找到主进程中创建窗体部分 ...
- web前端 关于浏览器兼容的一些知识和问题解决
浏览器兼容 为什么产生浏览器兼容,浏览器兼容问题什么是浏览器兼容: 所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况. 浏览器兼容产生的原因: 因为不 ...
- 解决oninput事件在中文输入法下会取得拼音的值的问题
在做搜索等功能时,很多时候我们需要实时获取用户输入的值,而常常会得到类似 w'm 这样的拼音.为了解决这个问题,我在网上搜索了下相关问题,发现了两个陌生的事件:compositionstart 和 c ...
- python数据分析工具 | pandas
pandas是python下强大的数据分析和探索工具,是的python在处理数据时非常快速.简单.它是构建在numpy之上的,包含丰富的数据处理函数,支持时间序列分析功能,支持灵活处理缺失数据. pa ...
- ES6引入的Reflect对象目的何在?
Reflect对象其实就是为了取代Object对象.取代原因有一下几点: 1)Object对象的一些内部方法放在了Reflect上面,比如:Object.defineProperty.主要是优化了语言 ...
- iPhone UIButton图标与文字间距设置【转】
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 150, 50)]; [button setTitle:@& ...
- C# BASS音频库 + 频谱基本用法
效果图: 使用了 BASS.dll. BASS.NET.dll 和 PeakMeterCtrl.dll 前面两个负责播放 最后一个负责绘制频谱,本文重点讲的是频谱部分,播放音频部分注意一点 ...
- WEB渗透 - 万能密码
asp万能密码 'or'='or' aspx万能密码 1: "or "a"="a 2: ')or('a'='a 3:or 1=1-- 4:'or 1=1-- 5 ...
- pikachu——暴力破解
前述: 前面学习了sqli-labs 和 DVWA,也算是初步涉足了web漏洞,了解了一些web漏洞的知识.所以在pikachu上面,会更加仔细认真,把前面没有介绍到的知识点和我一边学习到的新知识再补 ...