day06:基本数据类型的用途、定义方式、常用操作+内置方法(int,float,str,list)
今日内容:
- 引子
- 可变类型和不可变类型
- 数字类型:int与float
- 定义
- 类型转换
- 使用
- 字符串str
- 定义
- 类型转换
- 使用
- 优先掌握的操作
- 需要掌握的操作
- 了解操作
- 列表
- 定义
- 类型转换
- 使用
- 优先掌握的操作
- 了解操作
按照以下几点展开学习:
基本使用:
用途、定义方式、常用操作+内置方法
该类型总结:
存在一个值or多个值
有序or无序
可变类型和不可变类型
可变or不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)
可变类型:
值改变,id不变,证明就是在改变原值,原值是可变类型
不可变类型:
值改变,id也变,证明是产生了新值,原值是不可变类型
一、数字类型int与float
int 工厂函数
作用:
定义:age = 10 等于 age = int(10)
height = 1.83 等于 height = float(1.83)
PS:名字+()的意思是调用某个功能
print(...)调用打印功能
input(...)调用输入功能
类型转换:
int可以将由纯整数构成的字符串直接转换成整型,若包含其他任意非整数符号,则会报错
float同样可以用来做数据类型的转换
了解:
在python2中,int还有个定义 长整形
了解:
十进制转二进制:print(bin(十进制))-----》0b..... 0b表示二进制数
十进制转八进制:print(oct(十进制))-----》0o..... 0o表示八进制数
十进制转十六进制:print(hex(十进制))--》0x......0x表示十六进制数
其他类型转成二进制:
二---》十:int ('0b1011',2) ----->11
二---》八:int ('0o13',8)--------->11
二---》十六:int('0xb',16)------->11
使用:
int和float主要就是用来做数学运算、比较运算
因此数字类型除了与运算符结合使用之外,并无需要掌握的内置方法
二、字符串str
1、作用:记录描述性质的状态
2、定义:msg = 'hello' 本质是 msg = str('hello')
注意:
上述引号定义的都是str类型
三引号可以存放多行字符串
引号的嵌套:注意对称
3、类型转换:
str可以把任意类型都转换成字符串
补充:反斜杠 \ 在python中用来转义构成特殊字符
print('aaa\nbbb')
print(r'aaa\nbbb') r:原生字符
4、常用操作+内置方法
优先掌握的操作:
1、按索引取值(正向取+反向取) :只能取
正向取:
msg = 'hello world'
print(msg[0])
print(msg[5])---------》空格也是字符,也是可以取的
反向取:
print(msg[-1])
只能取:
msg[0] = 'H' 只能取不能改,可以按索引取,更改不了,也从侧面证明字符串是不可变类型
2、
切片:索引的拓展应用,从一个大字符串中拷贝出一个子字符串
根据索引把一片东西取出来
msg = 'hello world' 把"hello"取出来
01234(空格是5,不取了,所以是顾头不顾尾)
res = msg[0:5]------》hello
步长:默认步长是1
res = msg[0:5:2] # 0 2 4
------》hlo
反向步长:了解
res = msg[5:0:-1]----》' olle'
res = msg[5:0:-2]----》' le'
取整个字符串,复制下来:
msg = 'hello world'
res = msg[:] 等于 res = msg[::1]
res = msg[::-1]--------》反着取出来
3、长度len:统计长度 len 函数 功能的一种
msg = 'hello world'
print(len(msg))--------》11
4、成员运算in和not in:判断一个子字符串是否存在一个大字符串中
print('jay' in 'jay is a great singer')--------》Ture
print('jay' not in 'jay is a great singer')---》False
5、移除字符串左右两侧的符号strip .strip 方法 功能的一种
如果把功能比喻做一个工厂 ,.strip 是对参数(材料)的操作(加工)
msg = ' jay '
res = msg.strip() #默认去掉的是空格
print(msg) #不会改变原值
print(res) #是产生了新值
--------------》
jay
jay
msg = '$$$***/////jay####*****'
print(msg.strip('*#$/'))
--------------》
jay
实际使用:
在用户登录时默认去除两边的空格
inp_name = input("username: ").strip()
inp_pwd = input("password: ").strip()
if inp_name == "jay" and inp_pwd == "666":
print('ok')
else:
print('no')
6、切分split:把一个字符串按照某种分隔符进行切分,得到一个列表(针对有规律的字符串)
rsplit从右开始切分
默认分隔符是空格:
info = 'jay:18:male'
res = info.split()
print(res)
--------------------》['jay:18:male']
指定分隔符
info = 'jay:18:male'
res = info.split(':')
print(res)
-------------------》['jay', '18', 'male']
指定分隔次数(了解)
info = 'jay:18:male'
res = info.split(':',1)
print(res)
--------------------》['jay', '18:male']
name='C:/a/b/c/d.txt'
print(name.split('/',1))
--------------------》['C:', 'a/b/c/d.txt']
从右开始切分
name='a|b|c'
print(name.rsplit('|',1))
--------------------》['a|b', 'c']
7、循环
msg = 'hello world'
for x in msg:
print(x)
需要掌握的操作:
#1、strip,lstrip,rstrip
name = '##$$**jay##$$'
print(name.strip('#$*'))
print(name.lstrip('#$*'))去掉的左边
print(name.rstrip('#$'))去掉的右边
#2、lower,upper
name = 'Jay'
print(name.lower()) -----》小写
print(name.upper()) -----》大写
#3、startswith,endswith ----》以**开头,以**结尾
name = 'jay_music'
print(name.startswith('ja'))
print(name.endswith('ic'))
#4、format的三种玩法
msg = '{} {} {} {}'.format('jay','is','very','niubi')
msg = '{2} {1} {0} {3}'.format('very','is','jay','niubi')
msg = '{name} {time} {job}'.format(job='music', name='jay', time=18)
cmd = input('输入你需要执行的命令:')
print('命令{}正在运行...'.format({cmd}))
补充:
引用字典:
msg = "my name is {name} my age is {age}".format(**{"age":18,"name":"egon"}) ** 表示对字典取值
print(msg)
msg = "my name is %(name)s my age is %(age)s" % {"age":18,"name":"egon"}
print(msg)
f-Strings:比str.format()更高级,在python3.6中出现
name = "jay"
age = 19
print(f"my name is {name} my age is {age}")
#5、join 添加 #可迭代对象必须都是字符串
tag = ' '
print(tag.join(['jay', 'say', 'hello', 'world']))
#6、replace 替换
msg = 'seven say :i want to run,i want to fly with didi and seven'
print(msg.replace('seven','touge',1)) 1 代表只换第一个
print(msg.replace('seven','touge',-1)) -1代表更换全部
#7、isdigit 可以判断bytes和unicode类型,是最常用的用于于判断字符是否为"数字"的方法
age = input('>>: ')
print(age.isdigit())
其他操作(了解即可)
#1、find,rfind,index,rindex,count
msg = 'helo el abc'
res = msg.find('el')
print(res) #2、center,ljust,rjust,zfill
#3、expandtabs #4、captalize,swapcase,title #5、is数字系列 #6、is其他
三、list列表基本使用
作用:按照位置存放多个任意类型的值
定义方式:在[]内用逗号分隔开任意类型的值
l = [11,11.33,"xxx",[11,22,33]]
数据类型转换:把可迭代的类型转成列表,可以被for循环遍历的类型都是可迭代的
res = list("hello")
res = list({"k1":111,'K2':2222})
print(list(range(100)))
优先掌握的操作: #1、按索引存取值(正向存取+反向存取):即可存也可以取 #2、切片(顾头不顾尾,步长) #3、长度 #4、成员运算in和not in #5、追加 和 插入:
l = [111, 222, 333]
l.append(444)
l.append(555)
print(l)------》[111, 222, 333, 444, 555]
l = [111, 222, 333]
l.insert(1,666)
print(l)--------》[111, 666, 222, 333]
#6、删除
例:
l = [111, 222, 333]
万能删除:
del l[2]
print(l) ------>[111,222]
l.remove指定元素删除:
res = l.remove(222)
print(l) ----------》[111, 333]
l.pop指定索引删除:
res = l.pop(1)
print(l) -------------》[111, 333]
print(res)----------》222
#7、循环
l = [111, 222, 333]
for x in l:
print(x)

浙公网安备 33010602011771号