整型(进制转换)、浮点型、字符串类型和列表类型。

今天的学习内容有:整型(进制转换)、浮点型、字符串类型和列表类型。

整型(int)

整型定义方式
age = 18 # age = int(18)
ps: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表示后面的数字是八进制数

10进制转16进制
print(hex(12))  # 0xc  0x表示后面的数字是十六进制数
复制代码

可变类型:值改变的情况下,id不变,说明你改的是原值
不可变类型:值改变的情况下,id一定变

浮点型(float)

salary = 1.1  # float(1.1)

字符串(str)

复制代码
>>> s = 'hello baby'   # str('hello baby')
>>> s1 = str([1,2,3,4])
>>> print(type(s1))
<class 'str'>
>>> s2 = str({'name':'jason','password':123})
>>> print(type(s2))
<class 'str'>
复制代码

字符串的作用是描述性信息,定义:在单引号\双引号\三引号内,由一串字符组成。

复制代码
1、按索引取值(正向取+反向取) :只能取
s = 'hello world!'
print(s[0])  # 正向取值
>>>h
s = 'hello world!'
print(s[-2])  # 反向取值    
>>>d

2、切片(顾头不顾尾,步长):从一个大的字符串中截取一段新的小字符串,左边的固定就是头,右边固定就是尾,没有说按数字来分头尾。切片取值默认是从左往右的
s = 'hello world!'
print(s[0:5])  # hello
print(s[0:10:])  # hello worl  步长不写默认是1
print(s[0:10:2])  # hlowr 步长表示隔几个取一个
了解负数取值
s = 'hello world!'
print(s[-1])  # ! 倒数第一位
print(s[5:0:-2])  # le 
print(s[-1:-10:-1]) # !dlrow ol 

3、长度len:统计的是字符串中字符的个数
s = 'hello world!'
print(len(s))
>>>12

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,不管中间的
name='*egon**'
print(name.strip('*'))  # 去掉字符串左右两边的字符
>>>egon
print(name.lstrip('*'))  # 去掉字符串左边
>>>egon**
print(name.rstrip('*'))  # 去掉字符串右边
>>>*egon

6、切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成列表,进而进行取值,如果不指定那么split和rsplit效果是一样。
data = 'jason|123|handsome'
print(data.split('|'))  # 在'|'的位置将字符串分隔开
print(data.split('o',1))  # 切割的顺序其实从左往右的
print(data.rsplit('o',1))  # 从右边开始切割

7、循环
data = 'jaso n|123| handsome'
for i in data:
     print(i)
复制代码
复制代码
8、lower,upper(将字符串的字母变成大写或者小写)
name='egon'
print(name.lower())
>>>egon
print(name.upper())
>>>EGON

9、startswith、endswith(判断字符串以什么开头,以什么结尾)
name='alex_egon'
print(name.endswith('egon'))  # 字符串是否以egon结尾
>>>True
print(name.startswith('alex'))  # 字符串是否以alex开头
>>>True

10、format的三种玩法(python推荐使用format做格式化输出)
第一种  按位置占位   跟%s原理一致
res='{} {} {}'.format('egon',18,'male')
print(res)
>>>egon 18 male
第二种  按索引占位
res='{1} {0} {1}'.format('egon',18,'male')
print(res)
>>>18 egon 18
第三种  指名道姓占位(关键字传参)
res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)
print(res)
>>>egon 18 male

11、join(将容器类型中的多个元素通过指定字符拼接成一个字符串)
l = ['1','a','b']
res = '|'.join(l)
print(res)
>>>1|a|b

12、replace(str.replace(old, new[, max])将old替换成new)
name='alex say :i have one tesla,my name is alex'
print(name.replace('alex','egon'))

13、isdigit (判断字符串中包含的是否为纯数字)
age=input('>>: ')
print(age.isdigit())  # 输入数字时打印结果为True,输入字母时,打印结果为False
复制代码

列表类型

#作用:多个装备,多个爱好,多门课程,多个女朋友等

#定义:[]内可以有多个任意类型的值,逗号分隔  

复制代码
my_girl_friends=['alex','wupeiqi','yuanhao',4,5] #本质my_girl_friends=list([...])
或
l=list('abc')
1、取值
l=[1,2,3,4,5,6]
#正向步长
l[0:3:1] #[1, 2, 3]
#反向步长
l[2::-1] #[3, 2, 1]

2、切片(顾头不顾尾,步长)
同字符串

3、添加
l = [11,22,33,44,55]
l1 = [99,88,77,66]
1、尾部添加一个66
l.append(66)  # 注意append值能将被添加的数据当作列表的一个元素
print(l)
>>>[11, 22, 33, 44, 55, 66]

2、任意位置添加元素
l.insert(2,96)  # 通过索引在任意位置添加元素
print(l)  # 注意insert值能将被添加的数据当作列表的一个元素
>>>[11, 22, 96, 33, 44, 55]

3、添加容器类型数据
l.append(l1)
l.insert(-1,l1)
l.extend(l1)  # 内部原理for循环l1一个个追加到列表的尾部
l.extend([1,])
print(l)
>>>[11, 22, 33, 44, 55, [99, 88, 77, 66], [99, 88, 77, 66], 99, 88, 77, 66, 1]

4、删除
l = [11,22,33,44,55]
l1 = [99,88,77,66]

1、del(根据索引(元素所在位置)来删除的)
print(l)
del l[2]  # del适用于所有的删除操作
print(l)
2、remvo(删除指定元素的值)
res = l.remove(33)  # 指定要删除的元素的值
print(l)
print(res)也可以
3、pop(将最后一个元素弹出,弹出的元素可以查看到,也可以指定索引,按照索引弹出元素)
 res1 = l.pop()  # 尾部弹出
res2 = l.pop()
res3 = l.pop()
print(res1,res2,res3)
res1 = l.pop(0)  # 可以指定索引 按照索引弹出元素
print(res1)
复制代码

 

posted @ 2019-07-03 18:58  小肥海  阅读(631)  评论(0编辑  收藏  举报