003-python基础-字符类型

 

基本数据类型(int,bool,str)
1.基本数据数据类型:
int 整数
str 字符串. 一般不存放大量的数据
bool 布尔值. 用来判断. True, False
list 列表.用来存放大量数据, []表示. 里面可以装各种数据类型.
tuple 元组. 只读列表. () 表示
dict 字典. {key:value}
set 集合. 不重复
2. int类型
bit_length() 返回一个数的二进制长度

1
2
a = 5 # 0 1 10  11  100  101
print(a.bit_length())

 

3. bool类型
布尔只有两个值. True,False. 一般是没有什么操作的.

类型转换的问题:
想把xx转换成yy. yy(xx)

可以表示False的内容:0, "", [], tuple(), {}, None
所有的空都是False. 所有的非空是True

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
a = 10
print(type(a))
s = str(a)
print(type(s))
 
int(s)
想把某数据转换成xxx数据类型.   xxx(数据)
 
a = 0 # False
print(bool(a))
 
s = "" # 空字符串是false
print(bool(s)) # True
 
空的东西是False. 非空的东西是True
lst = [1] # 空列表是False
print(bool(lst))
 
dic = {'jj':'林俊杰'} # 空字典是False
print(bool(dic))
 
a = None # 表示空. 真空.
print(bool(a))
 
所有的空都是False. 所有的非空都是True
想把某数据装换成xxx数据类型. xxx(数据)
str => int
int(s)
int => str
str(i)
lst => tuple
tuple(lst)
tuple => list
list(tu)
while 1: # 死循环
    print("alex是个人才")
 
 
lst = [1,2,3] # 列表
tu = tuple(lst)
print(type(tu))

 

4. str类型 字符串
由',",''', """阔起来的内容就是字符串
字符串是不可变的数据类型.不论你执行任何操作. 源字符串是不会改变的, 每次操作都会返回新字符串

1. 索引和切片
索引从0开始, 使用[下标]可以获取到每一个字符, 还可以倒着数
切片: [起始位置:结束位置:步长]
1. 顾头不顾尾
2. 默认从左到右取值.
3. 当步长为负可以从右往左取值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
s = "伊丽莎白鼠"
print(s[0])
print(s[1])
print(s[2])
print(s[3])
print(s[4])
print(s[5]) # 索引不能超过边界
 
print(s[-1]) # 倒数第一个
print(s[-2])
print(s[-3])
print(s[-4])
print(s[-5])
 
s = "伊丽莎白鼠的溜肥肠还有挖掘机"
 
切片 [起始位置: 结束位置] 1.顾头不顾尾, 2.从左往右切
print(s[1:3])   # 从1切到3. 但是取不到3  [1,3)
print(s[1:]) # 从1开始切. 切到结尾
print(s[:2]) # 从头切到2
print(s[:]) # 从头到尾
print(s[-3:-1]) # 只能从左往右切
 
给出第三个参数来控制方向,第三个参数叫步长
print(s[-1:-3:-1]) # - 表示反方向. 从右往左切
 
print(s[4:10:3])
print(s[-3:-9:-2])

 

2. 字符串相关操作
1. upper() 转换成大写
2. stript() 去掉空白
3. replace(old, new) 把xxx替换成xxxx
4. split() 切割. 返回列表. 用多长的刀. 就要损失掉多少
5. startswith() 判断是否以xxx开头
6. find(), count(), index()
7. len() 字符串长度. python的内置函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
s = "al1ex is a gay and Wu傻sir is A gay too"
 
s1 = s.capitalize() # 把首字母变成大写
print(s1)
 
s2 = s.lower() # 小写
print(s2)
 
s3 = s.upper()  # 大写
print(s3)
 
s4 = s.swapcase() # 大小写互换
print(s4)
 
s2 = "БBß"  # 俄美德
print(s2)
print(s2.lower())
print(s2.casefold())
 
s5 = s.title() # 把每个单词的首字母大写
print(s5)
 
s = "sb"
s1 = s.center(10, "*") # 强行使用*在原字符串左右两端进行拼接. 拼接成10个单位
print(s1)
 
s = "    alex    is    a   gay   "
s1 = s.strip() # 默认去掉空格. 空白\t \n
print(s1)
 
username = input("请输入用户名:").strip()
password = input("请输入密码:").strip()
if username == 'alex' and password =="123":
    print("成功")
else:
    print("失败")
 
s = "sb alex wusir sb sb taibai taibai sb"
print(s.strip("sb")) # 可以指定要去掉的内容
 
s = "泰坦尼克号, 西虹市首富, 小猪佩奇, 冒险王"
s1 = s.replace("冒险王", "西西里的美丽传说")
s2 = s.replace("佩奇", "wusir")
print(s2)
 
s = "alex_wusir_taibai_ritian"
s1 = s.replace("_","")
print(s1)
 
s8 = "sylar_alex_taibai_wusir_eggon"
# s9 = s8.replace("i", "sb", 2) # 换两次
# print(s9)
 
lst = s8.split("taibai") # 切完的结果是一个列表. 列表中装的是字符串. 用什么切. 就会损失掉什么
print(lst)
 
s = """我家大门常打开
开放怀抱等你
后面是什么歌词
我忘了"""
lst = s.split("\n")
print(lst)
 
s = "我今天下午要去吃饭饭"
lst = s.split("我今天下午要去吃饭饭哈哈哈") # 没切
print(lst)
 
s = "我叫%s, 我今年%s了, 我喜欢%s" % ("周杰伦", "40", "昆凌")
print(s)
 
s = "我叫{}, 我今年{}了, 我喜欢{}".format("周杰伦", "40", "昆凌")
print(s)
 
s = "我叫{0}, 我今年{1}了, 我喜欢{2}".format("周杰伦", "40", "昆凌")
print(s)
 
s = "我叫{name}, 我今年{age}了, 我喜欢{hobby}".format(hobby="周杰伦", age="40", name="昆凌")
print(s)
 
s = "alex is a gay"
print(s.startswith("tory")) # 以xxx开头
print(s.endswith("girl")) # 以xxx结尾
 
s = "I have a dream. I want to kill you!"
都可以进行索引范围
print(s.count("dream")) # 计算a在字符串中出现的次数
print(s.find("a")) # 查找xxx在字符串中出现的位置. 只找第一次出现的位置, 没有就返回-1
print(s.index("z")) # 当字符串不存在的时候. 报错
 
 
s = "abcdefg1@"
print(s.isdigit()) # %d
print(s.isalpha()) # 字母
print(s.isalnum()) # 是否由数字和字母组成
 
s = "壹仟贰佰五十六萬拾"
print(s.isnumeric())
 
字符串长度, python的内置函数len(), int(), bool(), str(), type()
s = "娃哈哈可口可乐"
print(len(s)) # 字符串中的字符的个数
 
 
s = "王小利刘能赵四"
# # 对字符串进行遍历.
n = 0
while n < len(s):
    print(s[n])
    n = n + 1
 
# 迭代
for c in s: # charactor
    print(c)

 

3. for循环
for 变量 in 可迭代对象:
循环体, 也存在break和continue
else:
当循环结束的时候会执行

posted @   指弹小能手  阅读(240)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY

关于作者:专注数据库、Python 开发、ROS、深度学习,请多多赐教!

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(iamkuboy@163.com)咨询.

点击右上角即可分享
微信分享提示