Day03-Python基础-数据类型(字符串类型)
数据类型:
- 整数(int类) v = 1
- 布尔值(bool类) v = True
- 字符串(str类) v = "abc"
- 列表(list类) v = ["xx", "oo", "66"]
- 元组(tuple类) v = ("xxx", "ooo", "666")
- 字典(dict类) v = {"name":"张三", "age":18}
总结: 相同类的值(指定类的对象)具有相同的功能,功能保存在类中(只有一份)
3、字符串类型
| "hello world" |
万恶的字符串拼接:
python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。
####################### str 类中位当前对象提供的功能 ###################
1. 字母变大写
# 1. 变大写 v1 = "alex" value1 = v1.upper() print(v1,value1)
2. 字母变小写
# 2. 变小写 v2 = "alEx" value2 = v2.lower() print(v2,value2)
3. 单词首字母变大写,其他变小写
# 3. 单词首字母变大写,其他变小写 v3 = "alEx" value3 = v3.capitalize() print(v3,value3)
4. 去除字符串首尾空格
# 4. 去除字符串首尾空格
v4 = " asdf "
value4 = v4.strip()
print(v4)
print(value4)
#示例:
name = input("请输入用户名:")
value = name.strip()
if value == "alex":
print("登录成功")
5-6. 分别去除左边空格、右边空格
# 5. 去除左边的空格 v5 = " asdf " value5 = v5.lstrip() # 6. 去除右边的空格 value5 = v5.rstrip()
7. 字符串替换
# 7. 字符串替换
v1 = "ASCII第一次以规范标准的形式以规范标准的形式以规范标准的形式"
value = v1.replace("标准","**")
data = value.replace("第一次","#")
print(value)
print(data)
输出结果:
ASCII第一次以规范**的形式以规范**的形式以规范**的形式
ASCII#以规范**的形式以规范**的形式以规范**的形式
重点:原值不变。
8. 分割
# 8. 分割
v1 = "ASCII第一次以规范标准的型态标准的型态1标准的型态2标准的型态3"
value1 = v1.split('标准') # 分割之后变成 列表类型
print("分割法1:",value1)
value2 = v1.split('标准',2)
print("分割法2:",value2)
输出结果:
分割法1: ['ASCII第一次以规范', '的型态', '的型态1', '的型态2', '的型态3']
分割法2: ['ASCII第一次以规范', '的型态', '的型态1标准的型态2标准的型态3']
9. 判断当前字符串中是否全部都是数字
# 9.判断当前字符串中是否全部都是数字
v = "abc123dfg"
for item in v:
print(item) # item[0] = "a", item[1] = "b" ...
#--------------------------------
v = "123"
val = v.isdecimal()
print(val)
返回结果:
True
#--------------------------------
v = "a123"
val = v.isdecimal()
print(val)
返回结果:
False
#--------------------------------
v = "abc123dfg"
count = 0
for item in v:
if item.isdecimal() == True: # 这里也可以直接写成: if item.isdecimal():
count += 1
print("字符串v中包含数字的个数有 ",count," 个。")
返回结果:
字符串v中包含数字的个数有 3 个。
######################## 公共功能 #########################
1. 计算当前字符串的长度
v = "诸葛亮" value = len(v) print(value) 输出结果: 3
2. 根据索引(下标)取到字符串的某个字符/某些字符
- 单个值:v[0]
- 多个值:v[起始位置:结束位置]
- 多个值:v[起始位置:结束位置:步长]
PS:-1 表示最后
# 2. 根据索引(下标)取到字符串的某个字符 v = "ASCII第一次以规范标准的型态" value1 = v[0] print(value1) len1 = len(v) - 1 value2 = v[len1] print(value2) value3 = v[-1] print(value3) 输出结果: A 态 态
v = "ASCII第一次以规范标准的型态" value1 = v[0:5] # 0 1 2 3 4 value2 = v[4:5] # 4 value3 = v[4:-1] # 4 到结束位置 value4 = v[4:] # 4 到结束位置 print(value1) print(value2) print(value3) print(value3) 输出结果: ASCII I I第一次以规范标准的型 I第一次以规范标准的型
v = "ASCII第一次以规范标准的型态" value = v[1:15:2] print(value) 输出结果: SI第次规标的
# 题目: v = "ASCII第一次以规范标准的型态" ,把该字符串v中的每个字符都打印出来。
A S C I I 第 一 次 以 规 范 标 准 的 型 态
方法1:
v = "ASCII第一次以规范标准的型态"
length1 = len(v)
index = 0
while True:
print(v[index])
index += 1
if index == length1:
break
方法2:
v = "ASCII第一次以规范标准的型态"
length1 = len(v)
index = 0
while index < length1:
print(v[index])
index += 1
3. 循环
v = "ASCII第一次以规范标准的型态"
for i in v:
print(i)
输出结果:
A
S
C
I
I
第
一
次
以
规
范
标
准
的
型
态
总结1:
# int 89 9
# bool True False
# str "sdf" "7"
# 加法计算器
v1 = input("请输入第一个值:")
v2 = input("请输入第二个值:")
v3 = v1 + v2
print(v3)
################################################
# 1.字符串,布尔值 -> 整数 int(值)
# 2.整数,布尔值 -> 字符串 str(值)
# 3.整数,字符串 -> 布尔 bool(值)
# 整数:
# - 0 False
# - 其他 True
# 字符串:
# - "" False
# - 其他 True
#-------------------------------------------------------------
v = 8
print(type(v))
val = str(v)
print(val,type(val))
输出结果:
<class 'int'>
8 <class 'str'>
#-------------------------------------------------------------
v = True
print(type(v))
val = str(v)
print(val,type(val))
输出结果:
<class 'bool'>
True <class 'str'>
#-------------------------------------------------------------
v1 = 0
v2 = 99
v3 = ""
v4 = "098lrwoe"
print("v1:",bool(v1))
print("v2:",bool(v2))
print("v3:",bool(v3))
print("v4:",bool(v4))
输出结果:
v1: False
v2: True
v3: False
v4: True
################### 面试题 ##########################
a1 = 1 == 1 or 2 > 3
print("1:",a1)
a2 = True or 2 > 3
print("2:",a2)
a3 = False or 2 > 3
print("3:",a3)
a4 = 0 or 2 > 3
print("4:",a4)
a5 = 9 or 2 > 3
print("5:",a5)
a6 = "asdf" or 2 > 3
print("6:",a6)
a7 = 0 or 6
print("7:",a7)
输出结果:
1: True
2: True
3: False
4: False
5: 9
6: asdf
7: 6
总结2:
-- 整数、布尔、字符串 互相转换原则 : 类(值)
-- 布尔值: 0 "" 结果:False
-- a = 9 or 2 > 3 结果:9
-- a = 0 or 6 结果:6
字符串格式化输出
name = "yutou" print "i am %s " % name #输出: i am yutou
PS: 字符串是 %s;整数 %d;浮点数%f
字符串常用功能:
- 移除空白
- 分割
- 长度
- 索引
- 切片
浙公网安备 33010602011771号