07. 数字、字符串类型及其操作

一、可变与不可变类型

1.可变类型

值改变,但是id不变,证明其实就是在改变原值,即 原值可变,是可变类型

2.不可变类型

值改变,id也跟着变,证明其实是产生了新值,原值不可变

二、数字类型及其操作

1. int类型

1.1 作用:

记录整数状态的事物,如:年龄、号码人数等
1.2 定义:

age = 18  # age = int(18)

int 可以将纯数字的字符串转化成整型(两边可以有空格,中间不行)
1.3 常用操作和内置方法

算术运算 + 比较运算

2. float类型

2.1 作用

记录薪资、身高、体重等
2.2 定义

length = 4.76  # length = float(4.76)

float 可以将浮点型数字组成的字符串转化成浮点型
2.3 常用操作和内置方法

算术运算 + 比较运算
总结:数字类型只能存一个值,属于不可变类型

三、字符串及其操作

1. 作用

记录描述性质的状态,如:姓名、住址等

2. 定义:

在引号(' '、" "、''' '''、""" """)内包含一串或者多行字符串
数据类型转换:str()可以把任意类型转换成字符串类型

3. 常用操作+内置的方法(重点掌握)

(1)按索引取值(正向取、反向取,不可改)

s = "hello"
print(s[0])
print(s[-1])

(2)切片操作

顾头不顾尾,有步长,属于拷贝操作,不改变原值的id

msg = 'hello world' 
print(msg[0:4]) # hell        默认步长为1,取第1到第4个字符, 原字符串不变
print(msg[:6:2]) # hlo         省略起始位置,默认起始位置为0
print(msg[::2])  # hlowrd      省略结束位置,默认一直到末尾全部都取到
print(msg[::])   # hello world 可简写成print(msg[:])  省略步长,默认步长为1

(3)长度len()

msg = 'hello'
print(len(msg))

(4)成员运算in 、 not in

msg = "hello 你好"
print("你好" in  msg)
print("你好" not in msg) # 语义明确,推荐使用
print(not "你好" in msg) # 不推荐使用

(5)a. 移除空白strip

msg = '   hello  \n  '
res1 = msg.strip()  # 默认移除两边的空白字符,包括\n 和 \t,不改变原来的msg

b. 移除两边非空白字符

msg = "==hello!()"
res = msg.strip("()=!")
print(res)    # 得到的是新字符串,不改变原来的msg

(6)切分split:将字符串按照某个分隔符切分成一个列表

msg = "a:b:c:d"        # 字符串按冒号有规律的分布
res = msg.split(':')
print(res)          #  ['a', 'b', 'c', 'd']

(7)循环(可以被for循环遍历)

for item in "hello":
	print(item)

4.需要掌握的操作

(1)strip,lstrip,rstrip

msg = "*****hello*****"
print(msg.strip('*'))    # hello       去除两边的*号
print(msg.lstrip('*'))   # hello*****  去除左边的*号
print(msg.rstrip('*'))   # *****hello  去除右边的*号

(2)lower、upper、(swapcase)

msg = "aABb"
print(msg.lower())  # aabb  所有字母全部小写
print(msg.upper())  # AABB  所有字母全部大写
print(msg.swapcase()) # AabB 所有的字母大小写反转

(3)startswith、endswith
返回布尔值

msg = "tomorrow is Tuesday"
print(msg.startswith("to"))   # True 判断是否是以to开头
print(msg.endswith("y"))    # True 判断是否是以y结尾

(4)format三种用法
以下代码均可实现格式化输出"my name is jason,age is 18"

# ① %s的方式
print("my name is %s, age is %s" % ("jason", 18))

# ② format的方式
print("my name is {}, age is {}".format("jason", 18))
print("my name is {x}, age is {y}".format(y=18, x="jason"))
print("my name is {0}, age is {1}".format("jason", 18))  # 按照位置

# ③ f''的方式
x = 'jason'
y = 18
print(f"my name is {x}, age is {y}")  #python3.6版本及之后支持

了解:
① f 搭配{}可以执行字符串中的代码

f{'print("hello world")'}

② f 包含的字符串可以放到多行

name = 'jason'
age = 18
res = f'my name is {name}' \
      f'age is {age}'

③ {}内不能有#和/

print('age is {{18}}')  # ==>age is {18}

类似的:

n = 5
print('房贷利率减少了%s%%' % n)  # ==>房贷利率减少了5%

(5)split、rsplit

msg = 'a: b: c: d'
print(msg.split(':',1))   # ['a', 'b: c: d]  正向分割一次
print(msg.rsplit(':',1))  # ['a: b: c', 'd'] 反向分割一次

(6)join:将列表中的元素以指定字符连接组合成一个字符串

l = ['a', 'b', 'c', 'd']
print("-".join(l))   # a-b-c-d

(7)replace:替换指定字符串

msg = 'cc cc cc'
print(msg.replace('cc', 'CC', 2))   # CC CC cc  (将前两个"cc"替换成"CC")
print(msg.replace('cc','c'))  # c c c (将所有的cc都替换成c)

(8)isdigit:判断字符串是否是由纯数字组成的

age = " 18**"
print(age.isdigit())  # False (必须纯数字才是True,小数点、空格都不能有)

str类型总结:
(1)只能存一个值
(2)有序
(3)属于不可变类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值