python 之 数据类型初接触
python 之 数据类型初接触
标准数据类型
Python3 中有六个标准的数据类型:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
Python3 的六个标准数据类型中:
- 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
- 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
1,整型, 2.浮点型,3.字符串, 4.列表,5.元组,6.字符串 一.)整型(int)
======================================基本使用======================================
1、用途:存qq号,手机号,不带字母的身份证号.整数型适用场景.. 2、定义方式
age = 18 age = int(18)
int('dsjfjdsf')
int('1.1') int只能转纯数字的字符串,小数点都不行 进制转换 其他进制转10进制
二进制转十进制 0,1
10 1*(2**1) + 0*(2**0) 2
八进制转十进制 0-7
235 2*(8**2) + 3*(8**1) + 5*(8**0)
十六进制转十进制 0-9 A-F
217 2*(16**2) + 1*(16**1) + 7*(16**0)
print(int('1100',2)) int可以传第一个参数,表示的是第一个参数到底是什么进制 然后转成十进制
print(int('14',8))
print(int('c',16)) 10进制转其他进制
10进制转二进制
print(bin(12)) 0b1100 0b表示后面的数字是二进制数
10进制转八进制
print(oct(12)) 0o14 0o表示后面的数字是八进制数 14 >>> 1*(8**1) + 4*(8**0))
10进制转16进制
print(hex(12)) 0xc 0x表示后面的数字是十六进制数 3、常用操作+内置的方法
======================================该类型总结====================================
存一个值
有序or无序
有序:但凡有索引的数据都是有序的
不可变 可变类型与不可变类型
"""
可变类型:值改变的情况下,id不变,说明你改的是原值
不可变类型:值改变的情况下,id一定变
"""
x = 10
print(id(x))
x = 11
print(id(x)) 二. 浮点型
用途:精准的标记,运算
作用:薪资 身高 体重
定义方式:
salary = 1.1 float(1.1)
res = float('1.11')
print(type(res))
*****字符串********字符串********字符串********字符串********字符串********字符串**
======================================基本使用======================================
三.字符串 1、用途:描述性数据
2、定义方式:'' , """ """ ,
s = 'hello baby' str('hello baby')
s1 = str([1,2,3,4])
print(type(s1))
s2 = str({'name':'jason','password':123})
print(type(s2)) 1、按索引取值(正向取+反向取) :只能取
s = 'hello big baby~'
print(s[0])
2、切片(顾头不顾尾,步长):从一个大的字符串中截取一段新的小字符串
左边的固定就是头,右边固定就是位 没有说按数字来分头尾
print(s[0:5]) hello
print(s[0:10:1]) hello 步长不写默认是1
print(s[0:10:2]) 步长表示隔几个取一个
了解负数取值
print(s[-1])
print(s[0:5:-2]) 切片取值默认是从左往右的
print(s[5:0:-1]) 切片取值默认是从左往右的
print(s[-1:-10:-1]) 3、长度len:统计的是字符串中字符的个数
s1 = ' '
print(len(s1))
4、成员运算in和not in: 判断一个子字符串是否存在于一个大的字符串中
print('egon' in 'egon is dsb and egon is sb')
print('g' in 'egon is dsb and egon is sb')
print('jason' not in 'egon is dsb and egon is sb') 5、去掉字符串左右两边的字符strip,不管中间的
username = input('>>>:').strip()
if username == 'jason':
print('good job')
strip()默认去除字符串首尾的空格
使用内置的方法统一采用 句点符(.)
name1 = 'jason'
name2 = ' jason '.strip()
print(name1 == name2)
name3 = '$$$$$eg$on$$$$'
print(name3.strip('$')) name4 = '% ¥jason&*)'
print(name4.strip('% ¥)'))
调用字符串的方法并没有改变字符串本身 rstrip() lstrip()
name5 = '$$$$jason$$$$'
print(name5.lstrip('$')) left左边
print(name5.rstrip('$')) right右边 6、切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成列表,进而进行取值
data = 'jaso n|123| handsome'
print(data.split('|'))
username,password,info = data.split('|')
print(username,password,info)
强调:split切分出来的数据类型是一个列表
print(data.split('o')) 切割的顺序其实从左往右的
print(data.split('o',1)) 切割的顺序其实从左往右的
print(data.rsplit('o',1)) 切割的顺序其实从左往右的
如果不指定那么split和rsplit效果是一样 7、循环
for i in data:
print(i) 1、strip,lstrip,rstrip 2、lower,upper
s = 'JaS1oN'
res = s.lower()
print(res)
print(s)
print(s.upper())
print(s)
调用字符串的方法并没有改变字符串本身 3、startswith,endswith
s1 = 'egon is dsb'
print(s1.startswith('e')) 判断字符串是否以什么什么开头
print(s1.endswith('n')) 判断字符串是否以什么什么结尾 4、format的三种玩法(python推荐使用format做格式化输出)
第一种 按位置占位 跟%s原理一致
str1 = 'my name is {} my age is {}'.format('jason',18)
str1 = 'my name is {} my age is {}'.format(18,'jason',)
print(str1)
第二种 按索引占位
str1 = 'my {1} name is {0} my {0} age is {0}'.format('egon',18)
print(str1)
第三种 指名道姓占位(关键字传参)
str1 = 'my {name} name is {age} my {name} age is {name}'.format(name='jason',age=18)
print(str1) 5、split,rsplit
6、join
data = 'jason|123|handsome'
res_list = data.split('|')
print(res_list) res_str = '$'.join(res_list) 将容器类型中的多个元素通过指定字符拼接成一个字符串
print(res_str)
l = ['1','a','b']
res = '|'.join(l)
print(res) 7、replace
str = 'egon is dsb and egon is sb he has a BENZ'
res = str.replace('egon','kevin',1)
print(res)
print(str) 8、isdigit 判断字符串中包含的是否为纯数字
while True:
age = input('>>>:')
if age.isdigit():
age = int(age)
if age > 28:
print('阿姨好')
else:
print('你他妈的能不能好好输') l=[564,654,6549879,465,132,1,89,c ,8735,4]
l.append('asd') 1、find,rfind,index,rindex,count
s = 'kevin is dsb o and kevin is sb'
print(s.find('dsb')) 返回的是d字符所在的索引值
print(s.find('xxx')) 找不到的时候不报错返回的是-1
print(s.find('i',0,3)) 还可以通过索引来限制查找范围
print(s.index('o')) 返回所传字符所在的索引值
print(s.index('i',0,3)) 返回所传字符所在的索引值
print(s.count('n')) 统计字符出现的次数 2、center,ljust,rjust,zfill
s9 = 'jason'
print(s9.center(12,'*'))
print(s9.ljust(40,'$'))
print(s9.rjust(40,'$'))
print(s9.rjust(40,' '))
print(s9.zfill(40)) 3、expandtabs s10 = 'a\tbc'
print(s10.expandtabs(100)) 4、captalize,swapcase,title
s12 = 'hElLo WoRLD sH10'
print(s12.capitalize()) Hello world 首字母大写
print(s12.swapcase()) 大小写互换
print(s12.title()) 每个单词的首字母大小 5、is数字系列
num1=b'4' bytes
num2=u'4' unicode,python3中无需加u就是unicode
num3='壹' 中文数字
num4='Ⅳ' 罗马数字
''.isnumeric(): unicode,中文数字,罗马数字 只要是表示数字都识别
print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric()) ''.isdecimal(): unicode 只识别普通的阿拉伯数字
print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal()) ''.isdigit() :bytes,unicode 通常情况下使用isdigit就已经满足需求了
print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit()) 3、常用操作+内置的方法
======================================该类型总结====================================
存一个值
有序(有序:但凡有索引的数据都是有序的)
不可变类型 l=[asd,654,56486,7,51,3,546,7,94,64]
l.append('5')
print(l)
作用:多个装备,多个爱好,多门课程,多个女朋友等 定义:[]内可以有多个任意类型的值,逗号分隔
my_girl_friends=['alex','wupeiqi','yuanhao',4,5] 本质my_girl_friends=list([...])
或
l=list('abc')
l1=list({'name':'jason','password':'123'})
print(l1)
list内部原理就是for循环取值 然后一个个塞到列表中去 优先掌握的操作:
1、按索引存取值(正向存取+反向存取):即可存也可以取
l = [1,2,3,4]
print(l[0:4:1])
print(l[0::])
print(l[5::-1])
print(id(l))
l[0] = 69
print(id(l))
print(l)
2、切片(顾头不顾尾,步长)
l = [11,22,33,44,55]
l1 = [99,88,77,66]
[11,22,33,44,55,99,88,77,66] 1.尾部添加一个66
l.append(66) 注意append值能将被添加的数据当作列表的一个元素
print(l) 2.任意位置添加元素
l.insert(2,96) 通过索引在任意位置添加元素
print(l) 注意insert值能将被添加的数据当作列表的一个元素 3.添加容器类型数据
l.append(l1)
l.insert(-1,l1)
l.extend(l1) 内部原理for循环l1一个个追加到列表的尾部
l.extend([1,])
print(l)
list.extend
3、长度
print(len(l))
4、成员运算in和not in
print( 444 in l)
5、往列表中添加元素(******)
append
insert
extend 6、删除
print(l)
del l[2] del适用于所有的删除操作
print(l) res1 = l.pop() 尾部弹出
res2 = l.pop()
res3 = l.pop()
print(res1,res2,res3) res1 = l.pop(0) 可以指定索引 按照索引弹出元素
print(res1) res = l.remove(33) 指定要删除的元素的值
print(l)
print(res) s = 'haha'
print(s)
del s
print(s)
7、循环
for i in l:
print(i)
Python3 支持 int、float、bool、complex(复数)。
在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
像大多数语言一样,数值类型的赋值和计算都是很直观的。
内置的 type() 函数可以用来查询变量所指的对象类型。
在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
- 1、Python可以同时为多个变量赋值,如a, b = 1, 2。
- 2、一个变量可以通过赋值指向不同类型的对象。
- 3、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
- 4、在混合计算时,Python会把整型转换成为浮点数。
# 装饰器 加餐 请问 打印顺序是什么???/ def outter3(fun3):
print(3) def inner(*args,**kwargs): print(33)
res=fun3(*args,**kwargs)
print(333)
return res
return inner return inner
def outter2(fun2):
print(2) def inner(*args, **kwargs):
print(22)
res = fun2(*args, **kwargs)
print(222)
return res
return inner
def outter1(fun1):
print(1)
def inner(*args, **kwargs):
print(11)
res = fun1(*args, **kwargs)
print(111)
return res
return inner
@outter3 # out3(ou2)
@outter2 # out2(out1)
@outter1 # out1(ad)
def the_ad():
print('i am ad') the_ad() # 谜题揭晓 123 33 22 11 'I AM AD ' 111 222 333
python 之 数据类型初接触的更多相关文章
- 初接触BurpLoader工具
初接触burp工具 菜鸟一枚,现在在接触一段时间测试,我在测试功能性的时候,想着网站被黑案例那么多,我是不是也应该弄弄安全性测试了,所以就有了下边的第一次接触BurpLoader工具来测试手机的app ...
- python 基本数据类型分析
在python中,一切都是对象!对象由类创建而来,对象所拥有的功能都来自于类.在本节中,我们了解一下python基本数据类型对象具有哪些功能,我们平常是怎么使用的. 对于python,一切事物都是对象 ...
- python常用数据类型内置方法介绍
熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...
- 软工实践练习-Git初接触
第一次听到Git,有点不知所云,听了实践课老师的讲解,才明白了Git作为最先进的分布式版本控制系统的重要性. 至于Git的安装和使用仍旧是自己摸索着去完成了,当然在这过程中也是遇到了很多的问题. 接下 ...
- vi初接触
vi初接触 它有三种模式: 一 一般模式 二 编辑模式 三 命令行模式 介绍几种比较常用的吧 -- 退出:q 写入:w 强制:! (以上可叠加) 显示行号:set nu 取消:set nonu 跳转到 ...
- 闲聊之Python的数据类型 - 零基础入门学习Python005
闲聊之Python的数据类型 让编程改变世界 Change the world by program Python的数据类型 闲聊之Python的数据类型所谓闲聊,goosip,就是屁大点事可以咱聊上 ...
- 我和Python的第一次亲密接触 - 零基础入门学习Python001
我和Python的第一次亲密接触 让编程改变世界 Change the world by program 小甲鱼经常说,学习一门编程语言就是要深入其中,要把编程语言想象为你的女朋友你的情人,这样你学习 ...
- python自学笔记(二)python基本数据类型之字符串处理
一.数据类型的组成分3部分:身份.类型.值 身份:id方法来看它的唯一标识符,内存地址靠这个查看 类型:type方法查看 值:数据项 二.常用基本数据类型 int 整型 boolean 布尔型 str ...
- ExtJS初接触 —— 了解 Ext Core
ExtJS初接触 —— 了解 Ext Core Ext Core是一款和jQuery媲美的轻型JS库,基于MIT许可.对于Dom的操作,我个人还是比较喜欢用jQuery.当然如果项目中用的是ExtJS ...
随机推荐
- spring boot 入口源码分析
public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); / ...
- Hadoop Yarn REST API未授权漏洞利用
Hadoop Yarn REST API未授权漏洞利用 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一 ...
- Parrot os KDE还是MATE版本
在经历了KDE桌面痛苦折磨后,准备转投MATE的怀抱,不得不说Parrot KDE的ram的占有和windows 10差不多,大量的图形化处理,让我本来不多的内存更加血上加霜. 所以,关于版本的推荐, ...
- Johnson-Trotter(JT)算法生成排列
对于生成{1,……,n}的所有n!个排列的问题,我们可以利用减治法,该问题的规模减一就是要生成所有(n-1)!个排列.假设这个小问题已经解决了,我们可以把n插入到n-1个元素的每一种排列中的n ...
- Redis 的原理与应用场景及数据库关系
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一. Redis 是什么? Redis是一个开源的使用ANSIC语言编写.支持网络.单进程单线程.可基于 ...
- Java实现 LeetCode 572 另一个树的子树(遍历树)
572. 另一个树的子树 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树.s 的一个子树包括 s 的一个节点和这个节点的所有子孙.s 也可以看做它自身的一棵子树 ...
- Java实现 LeetCode 559 N叉树的最大深度(遍历树,其实和便利二叉树一样,代码简短(●ˇ∀ˇ●))
559. N叉树的最大深度 给定一个 N 叉树,找到其最大深度. 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数. 例如,给定一个 3叉树 : 我们应返回其最大深度,3. 说明: 树的深度不 ...
- Java实现统计方案
统计方案 题目描述 在一无限大的二维平面中,我们做如下假设: 1.每次只能移动一格: 2.不能向后走(假设你的目的地是"向上",那么你可以向左走,可以向右走,也可以向上走,但是不可 ...
- Java实现 蓝桥杯VIP 算法提高 字符串比较
算法提高 字符串比较 时间限制:1.0s 内存限制:512.0MB 独立实现标准字符串库的strcmp函数,即字符串比较函数,从键盘输入两个字符串,按字典序比较大小,前者大于后者输出1,前者小于后者输 ...
- 一口气说出9种分布式ID生成方式,面试官有点懵
一.为什么要用分布式ID? 在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征? 1.1.什么是分布式ID? 拿MySQL数据库举个栗子:在我们业务数据量不 ...