数字类型
1.整型(int)
用途:存QQ号,手机号等纯数字
定义方式:
age = 18 # age = int(18)
int('adx')和int('1.1')存在错误 #int只能转纯数字的字符串,有小数点的转不了
2.整型的进制转换
1).其他进制转十进制
二进制转十进制 0,1
10 #1*(2**1)+0*(2**0)
八进制转十进制 0-7
236 #2*(8**2)+3*(8**1)+6*(8**0)
十六进制转十进制 #0-7,A-F
21 #2*(16**1)+1*(16**0)
print(int('1100',2)) #int可以存第二个参数,用来表示第一个参数是什么进制
print(int('14',8))
print(int('c',16))
2).十进制转其他进制
十进制转二进制 print(bin(12)) #0b1100 0b表示后面的数字是二进制 十进制转八进制 print(oct(12)) #0o14 0c表示后面的数字是八进制 十进制转十六进制 print(hex(12)) #0xc 0x表示后面的数字是十六进制
3).可变类型和不可变类型
可变类型:值改变的情况下,id不发生变化,说明你改的是原值。
不可变类型:值发生改变的同时,id也发生了变化,相当于重新创立了一个变量空间。
3.浮点型(float)
作用:薪资,身高,体重,一般作用于小数。
定义方式:
rest = float('1.11')
print(rest) #输出:1.11
字符串(string)
1.作用
用来记录人的名字,家庭住址,性别等描述性质的状态
2.定义
用单引号、双引号、多引号,都可以定义字符串,本质上是没有区别的。但是有两点需要注意:
#1、需要考虑引号嵌套的配对问题
msg = "My name is Tony , I'm 18 years old!" #内层有单引号,外层就需要用双引号
#2、多引号可以写多行字符串
msg = '''
可作为注释使用。
'''
3.常用操作
1).按索引取值(正向取+反向取) :只能取
s = 'hello world' print(s[0]) # 输出h
2).切片 (顾头不顾尾,步长);从一个大的字符串中截取一段新的小字符串
s = 'hello world' print(s[0:5]) #hello 步长不写默认为是1 print(s[2: :]) #中间部分不写,默认为len(s) print(s[0:10:2]) #步长表示隔几个取一个 了解复数取值 print(s[-1]) #输出为 d print(s[0:5:-2]) #切片取值默认从左往右的 print(s[5:0:-1]) #切片取值默认从左往右的 print(s[-1:-10:-1])
3).长度len():统计的是字符串中字符的个数
s = ('s', 'df', 'ff', ' ', 'fd', 'erf')
print(len(s)) # 输出为6
4).成员运算in和not in,判断一个子字符串是否存在于一个大的字符串中。
print('hello'in 'hello world') # True
print('h' not in 'hello world') # False
print('happy' in 'hello world') # False
5).切分spilt;针对按照某种分隔符组织的字符串,可以用split将其切分成列表,进而进行取值
data = 'hello|123| hp'
print(data.split('|')) # ['hello', '123', ' hp']
强调:split切分出来的数据类型是一个列表
print(data.split('o')) # 切割的顺序其实从左往右的
print(data.split('o',1)) # 切割的顺序其实从左往右的
print(data.rsplit('o',1)) # 切割的顺序其实从左往右的
如果不指定那么split和rsplit效果是一样
6).for循环
for 变量名 in 容器类型
4.了解操作
1).strip, lstrip, rstrip
app = '**hehe***'
>>> app.strip('*') # 移除左右两边的指定字符
'hehe'
>>> app.lstrip('*') # 移除左边的指定字符
'hehe***'
>>> app.rstrip('*') # 移除右边的指定字符
'**hehe'
2).lower(), upper()
s = 'hello wORLD ' print(s.lower()) # hello world 全部转换成了小写 print(s.upper()) #HELLO WORLD 全部转换成了大写 print(s)hello # wORLD补充:调用字符串的方法并没有改变字符串本身
3).startswith, endswith
s = 'hello world'
print(s.startswith('h')) #true#用于检查字符串是否是以指定子字符串开头
print(s.endswith('d')) #true#用于检查字符串是否是以指定子字符串结束
4).format的三种用法(python推荐使用.format做格式化输出)
#第一种 按位置占位 跟%s原理一致
s = 'my name is {} my age is {}'.format('li',18)
print(s) # my name is li my age is 18
#第二种 按索引占位
s = 'my {1} name is {0} my age is {0}'.format('li',18)
print(s) # my 18 name is li my age is li
#第三种 指名道姓占位(关键字传参)
s = 'my {name} name is {age} my {name} age is {age}'.format(name='li',age=18)
print(s) # my li name is 18 my li age is 18
5).join # 将容器类型中的多个元素通过指定字符拼接成一个字符串
# 从可迭代对象中取出多个字符串,然后按照指定的分隔符进行拼接,拼接的结果为字符串
>>> '%'.join('hello') # 从字符串'hello'中取出多个字符串,然后按照%作为分隔符号进行拼接
'h%e%l%l%o'
>>> '|'.join(['tony','18','read']) # 从列表中取出多个字符串,然后按照*作为分隔符号进行拼接
'tony|18|read'
6) spilt, rspilt # 切分
# split会按照从左到右的顺序对字符串进行切分,可以指定切割次数
>>> str5='C:/a/b/c/d.txt'
>>> str5.split('/',1) ['C:', 'a/b/c/d.txt'] # rsplit刚好与split相反,从右往左切割,可以指定切割次数
>>> str5='a|b|c'
>>> str5.rsplit('|',1) ['a|b', 'c']
7).isdigit #用来判断字符串里面是否为纯数字.
# 判断字符串是否是纯数字组成,返回结果为True或False >>> str8 = '5201314' >>> str8.isdigit() True >>> str8 = '123g123' >>> str8.isdigit() False
列表
1.定义
在[ ]内,用逗号分隔开多个任意数据类型的值。
2.类型转换
# 但凡能被for循环遍历的数据类型都可以传给list()转换成列表类型,list()会跟for循环一样遍历出数据类型中包含的每一个元素然后放到列表中
>>> list('wdad')
['w', 'd', 'a', 'd']
>>> list([1,2,3])
[1, 2, 3]
>>> list({"name":"lili","age":18})
['name', 'age']
>>> list((1,2,3))
[1, 2, 3]
3.优先掌握的操作
# 1.按索引存取值(正向存取+反向存取):即可存也可以取
# 1.1 正向取(从左往右)
>>> my_friends=['11','22','33',4,5]
>>> my_friends[0]
'11'
# 1.2 反向取(负号表示从右往左)
>>> my_friends[-1]
5
# 1.3 对于list来说,既可以按照索引取值,又可以按照索引修改指定位置的值,但如果索引不存在则报错
>>> my_friends = ['11','22','33',4,5]
>>> my_friends[1] = '2222'
>>> my_friends ['11', '2222', '33', 4, 5]
# 2.切片(顾头不顾尾,步长)
# 2.1 顾头不顾尾:取出索引为0到3的元素
>>> my_friends[0:4]
['11', '22', '33', 4]
# 2.2 步长:
0:4:2 ,# 第三个参数2代表步长,会从0开始,每次累加一个2即可,所以会取出索引0、2的元素
>>> my_friends[0:4:2]
['11', '33']
# 3.长度
>>> len(my_friends)
5
# 4.成员运算in和not in
>>> 'tony' in my_friends
True
>>> 'xxx' not in my_friends
True
# 5.添加
# 5.1 append()列表尾部追加元素
>>> l1 = ['a','b','c']
>>> l1.append('d')
>>> l1 ['a', 'b', 'c', 'd']
# 5.2 extend()一次性在列表尾部添加多个元素
>>> l1.extend(['a','b','c'])
>>> l1 ['a', 'b', 'c', 'd', 'a', 'b', 'c']
# 5.3 insert()在指定位置插入元素
>>> l1.insert(0,"first") # 0表示按索引位置插值
>>> l1 ['first', 'a', 'b', 'c', 'alisa', 'a', 'b', 'c']
# 6.删除
# 6.1 del
>>> l = [11,22,33,44]
>>> del l[2] # 删除索引为2的元素
>>> l [11,22,44]
# 6.2 pop()默认删除列表最后一个元素,并将删除的值返回,括号内可以通过加索引值来指定删除元素
>>> l = [11,22,33,22,44]
>>> res=l.pop()
>>> res 44
>>> res=l.pop(1)
>>> res 22
# 6.3 remove()括号内指名道姓表示要删除哪个元素,没有返回值
>>> l = [11,22,33,22,44]
>>> res=l.remove(22) # 从左往右查找第一个括号内需要删除的元素 >>> print(res) None
# 7.reverse()颠倒列表内元素顺序
>> l = [11,22,33,44]
>>> l.reverse()
>>> l [44,33,22,11]
# 8.sort()给列表内所有元素排序
# 8.1 排序时列表元素之间必须是相同数据类型,不可混搭,否则报错
>>> l = [11,22,3,42,7,55]
>>> l.sort() >>> l [3, 7, 11, 22, 42, 55] # 默认从小到大排序
>>> l = [11,22,3,42,7,55]
>>> l.sort(reverse=True) # reverse用来指定是否跌倒排序,默认为False
>>> l [55, 42, 22, 11, 7, 3]
# 8.2 了解知识:
# 我们常用的数字类型直接比较大小,但其实,字符串、列表等都可以比较大小,原理相同:都是依次比较对应位置的元素的大小,如果分出大小,则无需比较下一个元素,比如
>>> l1=[1,2,3]
>>> l2=[2,]
>>> l2 > l1
True
# 字符之间的大小取决于它们在ASCII表中的先后顺序,越往后越大 >>> s1='abc'
>>> s2='az'
>>> s2 > s1 # s1与s2的第一个字符没有分出胜负,但第二个字符'z'>'b',所以s2>s1成立
True
# 所以我们也可以对下面这个列表排序
>>> l = ['A','z','adjk','hello','hea']
>>> l.sort() >>> l ['A', 'adjk', 'hea', 'hello','z']
# 9.循环
# 循环遍历my_friends列表里面的值
for line in my_friends:
print(line)
'11' '22' '33' 4 5
4.了解操作
>>> l=[1,2,3,4,5,6]
>>> l[0:3:1] [1, 2, 3]
# 正向步长
>>> l[2::-1]
[3, 2, 1]
# 反向步长 # 通过索引取值实现列表翻转
>>> l[::-1]
[6, 5, 4, 3, 2, 1]
来源:https://www.cnblogs.com/blue-tea/p/11127282.html