python 入门基础4 --数据类型及内置方法

时间:2024-04-08 16:33:56

今日目录:

  零、解压赋值+for循环

  一、 可变/不可变和有序/无序

  二、基本数据类型及内置方法

    1.整型 int

    2.浮点型float

    3.字符串类型

    4.列表类型

  三、后期补充内容

零、解压赋值+for循环

# for循环 + 解压赋值
info = [
["zhagnsan","","male"],
["lisi","","male"],
] for name,age,gender in info:
print("姓名:%s , 年龄:%s , 性别:%s"%(name,age,gender))

一、 可变/不可变和有序/无序

1.可变、不可变:

  可变类型:在值变的情况下,id不变,证明就是在改原值,是可变类型。
  不可变类型:在值变的情况下,id也跟着变,证明产生了新值,是不可变类型。

2.有序、无序:

  有序:能通过索引取值的数据类型都是有序的
  无序:则相反,例子:dict

二、数字类型

1.整型:int

1.1 用途
  数字,QQ号等
1.2 定义方式
 age = 10  # age = int(10)
1.3 数据类型转换
  只能将纯数字字符串转成int
 x = int ('')
print(x,type(x))

2.浮点型:float

2.1 用途
  薪资、身高
2.2 定义方式:
 salary = 10.1  # salary = float(10.1)
2.3 数据类型转换
  将包含小数的字符串转成 float
x = float('10.1')
print(x,type(x)) 

  总结:

  1.变量只存一个值
  2.都是不可变类型

3.字符串类型

3.1 用途
  记录描述性质的状态
3.2 定义方式
  在单引号、双引号、三引号内包含一串字符串
msg = 'hello' # msg = str("hello") 
3.3 数据类型转换
  所有类型都可以被str转换成字符串类型
res = str([1,2,3])
print(res,type(res)) 
3.4 优先掌握的操作
1、按索引取值(正向取 + 反向取):只能取
 msg = 'hello'
print(msg[0])

2、切片(顾头不顾尾,步长)
msg = "zhangsan hello world"
print(msg[0:3:1])
print(msg[::-1])

3、长度len
msg = "zhangsan hello world"
print(len(msg))

4、成员运算 in 和 not in
msg = "zhangsan hello world"
print("zhangsan" in msg)

5、移除空白 strip
res = "  hello  ".strip()
print(res) print("*&*^^%zhangsan&*$#@".strip("!@#$%^&*"))

6、切分split
split:针对有规律字符串,按照某种分隔符切成列表
info = 'zhangsan_18_male'
res = info.split('_')
print(res)

7、循环
for i in 'hello':
print(i)

8、join
  有字符串、数字两种类型,报错
# 用 :号作为连接符将春字符串的列表拼接成一个字符串
info = 'zhangsan_18_male'
res = info.split('_')
res1 = res[0] + ":" + res[1] + ":" + res[2]
print(res1)
res2 = ":".join(res)
print(res2)
3.5 需要掌握的操作
1、strip,lstrip,rstrip
msg = "*****zhangsan*********"
print(msg.strip("*"))
print(msg.rstrip("*"))
print(msg.lstrip("*"))

2、lower,upper
print("zhangsan".upper())
print("zhangSAN".lower())
3、startswith,endswith
info = "zhangsan is 18"
print(info.startswith("zha"))
print(info.endswith(""))
4、format的三种玩法
res = 'my name is {name},age is {age}'.format(name = 'zzw',age = 18)
res1 = 'my name is {0},age is {1}'.format('zzw',19)
res2 = 'my name is {},age is {}'.format('zzw',20) # 对应位置填值 print(res)
print(res1)
print(res2)
5、split,rsplit
  没有指定切分次数的情况下,没有区别
info = 'zhang:san:is:18'
print(info.split(":"))
print(info.rsplit(":"))
6、replace
msg = "zhangsan is zhangsan ,zhangsan is 18"
print(msg.replace("zhangsan","lisi"))
print(msg.replace("zhangsan","lisi",2))
7、isdigit
  判断字符串是否是纯数字组成
print(''.isdigit())
3.6 其他操作(了解即可)
  1、find:找不到不报错,返回-1
   rfind:从右边开始找子字符串,找到后返回正向数的位置
  index:找不到会报错
  rindex:从右边开始找
   count:统计一个子字符串在大字符串中的个数   2、center:有两个参数,可以设定宽度,和空余位置填充的符号
   ljust:左对齐,其余位置填充符号
   rjust:右对齐,其余位置填充符号
   zfill:右对齐,其余位置填充0   3、expandtabs
  设置一个制表符的宽度(自行设置几个空格)
  4、captalize:首字母大写
    swapcase:大小写反转
    title:每个单词首字母大写
  5、is数字系列
    
  6、is其他

4.列表类型

4.1 数据类型转换
  但凡能够被for循环遍历的数据类型都可以传给list
res = list('hello')
4.2 优先掌握的操作
  1、按索引取值(正向取 + 反向取):既可存也可以取
强调:对于不存在的索引会报错   2、切片(顾头不顾尾,步长):l[0,5,2]
  3、长度len
  4、成员运算 in 和 not in   5、追加:append
   插入:insert:往指定索引前面插入值
l.append("a") : 在末尾加
l.insert('','b'):插到第0位置
  6、删除:
    6.1 del l[1] :是一种通用删除操作,没有返回值     6.2 remove
      l.remove("xxx") #指定要删除的值,没有返回结果(None)     6.3 pop:从列表中拿走一个值
      l.pop(-1) #按照索引删除值(默认从末尾删除),返回删除的那个数
      l.pop() #从前面取出来
  7、循环

三、后期补充内容

字符串操作及内置方法:菜鸟教程

列表操作及内置方法:菜鸟教程