day02-数据类型(上)
1.day01-进制和编码
2.day02-数据类型(上)
3.day03-数据类型(中)4.day04-数据类型(下)5.day05-总结和考试6.day06-文件操作相关7.day07-函数入门8.day08-函数进阶9.day09-函数高级10.day10-内置函数和推导式11.day11-模块12.day12-内置模块和开发规范13.day13-阶段总结14.day14-面向对象基础15.day15-面向对象进阶16.day16-面向对象高级和应用17.day17-网络编程(上)18.day18-网络编程(下)19.day19-并发编程(上)20.day20-并发编程(下)21.day21-阶段总结22.day22-MySQL入门23.day23-必备SQL和表关系及授权24.day24-SQL强化和实践25.day25-索引和函数及存储过程26.day26-python操作MySQL和实战27.day27-HTML28.day28-CSS29.day29-JavaScript(1)30.day30-JavaScript(2)31.day31-jQuery32.day32-Django3.2(一)33.day33-Django3.2(二)常见的数据类型:int,bool,str,list,tuple,dict,set,float
1.整型
整型其实就是十进制整数的统称,比如:1、68、999都是整型。他一般用于表示年龄、序号等。
1.1 定义
number = 10
age = 99
1.2 独有功能
v1 = 5
# 调用v1(int)的独有功能,获取v1的二进制有多少个位组成。
result1 = v1.bit_length()
print(result1) # 3
v2 = 10
# 调用v2(int)的独有功能,获取v1的二进制有多少个位组成。
result2 = v2.bit_length()
print(result2) # 4
1.3 公共功能
加减乘除
v1 = 4
v2 = 8
v3 = v1 + v2
1.4 转换
在项目开发和面试题中经常会出现一些字符串和布尔值转换为整型的情况。
# 布尔值转整型
n1 = int(True) # 1
n2 = int(False) # 0
# 字符串转整型
v1 = int("186", base=10) # 186
v2 = int("0b1001", base=2) # 9
v3 = int("0o144", base=8) # 100
v4 = int("0x59", base=16) # 89
# 浮点型
f1 = int(8.7) # 8
1.5 其他
1.5.1 长整型
- python3:整型
- python2:整型、长整型
在python2中跟整数相关的数据类型有两种:int、long,它们都是整数只不过能表示的值范围不同。
1.5.2 地板除
python2中两个值相除时,默认进行地板除,只保留整数位。(python3中默认会保留小数)
2.布尔类型
布尔值,其实就是“真”,“假”。
2.1 定义
data = False
alex = True
2.2 独有功能
无
2.3 公共功能
无
2.4 转换
在以后的项目开发中,会经常使用其他类型转换为布尔值的情景,此处只要记住一个规律即可。
整数0,空字符串,空列表,空元组,空字典转换为布尔值时均为False,其余均为True
2.5 其他
2.5.1 做条件自动转换
如果在if
、while
条件后面写一个值当作条件时,他会默认转换为布尔类型,然后再做条件判断。
3.字符串类型
字符串,我们平时会用它来表示文本信息。例如:姓名、地址、自我介绍等。
3.1 定义
v1 = "包治百病"
v2 = '包治百病'
v3 = "包'治百病"
v4 = '包"治百病'
v5 = """包治百病"""
# 三个引号,可以支持多行/换行表示一个字符串,其他的都只能在一行中表示一个字符串.
3.2 独有功能(18/48)
"xxxxx".功能(...)
- 判断字符串是否xxx开头,得到一个布尔值
v1 = "叨逼叨的一天"
result = v1.startswith("叨逼叨")
print(result) # True
- 判断字符串是否以xx结尾,得到一个布尔值。
v1 = "叨逼叨的一天"
result = v1.endswith("叨逼叨")
print(result) # False
- 判断字符串是否为十进制数?得到一个布尔值
v1 = "123124"
result = v1.isdecimal()
print(result) # True
- 去除字符串两边的空格、换行符、制表符,得到一个新字符串
msg = " 我喜欢你 "
data = msg.strip() # 将msg两边的空白去掉
data = msg.lstrip() # 将msg左边的空白去掉
data = msg.rstrip() # 将msg右边的空白去掉
# 再补充,去除字符串两边指定的内容
msg = "哥 我喜欢你 哥"
data = msg.strip("哥")
data = msg.lstrip("哥")
data = msg.rstrip("哥")
- 字符串变大写,得到一个新字符串。
msg = "my name is oliver"
data = msg.upper()
- 字符串变小写,得到一个新字符串。
msg = "My Name Is Oliver"
data = msg.lower()
- 字符串内容替换,得到一个新的字符串
data = "你是个好人,但是好人不适合我"
value = data.replace("好人","贱人")
- 字符串切割,得到一个列表
data = "吴佩琦|root|231535"
result= data.split("|") # ['吴佩琦', 'root', '231535']
result= data.split("|", 1) # ['吴佩琦', 'root|231535'],指定切几个
result= data.split("|", 2) # ['吴佩琦', 'root', '231535']
result = data.rsplit("|") # ['吴佩琦', 'root', '231535']
result = data.rsplit("|", 1) # ['吴佩琦|root', '231535']
- 字符串拼接,得到一个新的字符串
data_list = ["alex","是","大烧饼"]
v1 = "*".join(data_list) # alex*是*大烧饼
v2 = "_".join(data_list) # alex_是_大烧饼
- 格式化字符串,得到新的字符串
name = "{0}的喜欢干很多行业,{1},{2}"
data = name.format("老王", "护士", "嫩模") # 老王的喜欢干很多行业,护士,嫩模
name = "{}的喜欢干很多行业,{},{}"
data = name.format("老王", "护士", "嫩模") # 老王的喜欢干很多行业,护士,嫩模
name = "{name}的喜欢干很多行业,{h1},{h2}"
data = name.format(name="老王", h1="护士", h2="嫩模") # 老王的喜欢干很多行业,护士,嫩模
- 字符串转换为字节类型
data = "嫂子" # unicode,字符串类型
v1 = data.encode("utf-8") # utf-8,字节类型
v2 = data.encode("gbk") # gbk,字节类型
print(v1) # b'\xe5\xab\x82\xe5\xad\x90'
print(v2) # b'\xc9\xa9\xd7\xd3'
s1 = v1.decode("utf-8")
s2 = v2.decode("gbk")
print(s1) # 嫂子
print(s2) # 嫂子
- 将字符串内容居中、居左、居右展示
v1 = "王老汉"
data = v1.center(21, "*")
print(data) # *********王老汉*********
data = v1.ljust(21, "*")
print(data) # 王老汉******************
data = v1.rjust(21, "*")
print(data) # ******************王老汉
- 帮助你填充0
data = "alex"
v1 = data.zfill(10)
print(v1) # 000000alex
# 应用场景,处理二进制数据
3.3 公共功能
- 相加:字符串+字符串
v1 = "alex" + "safa"
- 相乘:字符串*整数
data = "嫂子" * 3
- 长度
data = "嫂子按时打发"
value = len(data)
- 获取字符串中的字符索引
message = "来做点交易呀"
print(message[0])
print(message[1])
print(message[2])
# 注意:字符串中是能通过索引取值,无法修改值。【字符串在内部存储时不允许对内部元素修改,想修改只能重新创建】
- 获取字符串中的子序列,切片
message = "来做点交易呀呀呀"
print(message[0:2]) # 来做
print(message[3:7]) # 交易呀呀
print(message[3:]) # 交易呀呀呀
print(message[:5]) # 来做点交易
# 注意:字符串中的切片只能读取数据,无法修改数据。【字符串在内部存储时不允许对内部元素修改,想修改只能重新创建】
- 步长,跳着取字符串的内容
name = "生活不是电影,生活比电影苦"
print(name[0:5:1]) # 生活不是电
print(name[:8:2]) # 生不电,
print(name[2::3]) # 不影活影
print(name[::2]) # 生不电,活电苦
print(name[8:1:-1]) # 活生,影电是不
- 循环
- while循环
message = "来做点py交易呀"
index = 0
while index < len(message):
value = message[index]
print(value)
index += 1
- for循环
message = "来做点py交易呀"
for char in message:
print(char)
- for + range
message = "来做点py交易呀"
for i in range(0, len(message)):
print(message[i])
一般应用场景:
- while,一般在做无限制(未知)循环时使用
- for循环,一般应用在已知循环数量的场景
- break和continue关键字
3.4 转换
num = 99
data = str(num)
print(data) # "999"
data_list = ["alex","eric"]
data = str(data_list)
print(data) # '["alex","eric"]'
一般情况下,只有整型转字符串才有意义。
3.5 其他
3.5.1 字符串不可被修改
作业
第一题
v1 = 675
r1 = bin(v1)
print(r1)
v2 = "0b11000101"
r2 = int(v2, base=2)
print(r2)
v3 = "11000101"
r3 = int(v3, base=2)
print(r3)
第二题
v1 = 123
v2 = 456
b1 = bin(v1)
b2 = bin(v2)
r = int(b1[2:]+b2[2:], base=2)
print(r)
第三题
v1 = 123
v2 = 456
b1 = bin(v1)
b2 = bin(v2)
r = int(b1[2:].zfill(16)+b2[2:].zfill(16), base=2)
print(r)
第四题
答案:整型0,空字符串,空列表,空字典,空元组
第五题
答案:
1.456
2.666
3.345
第六题
text = input("请输入文本")
r = text.replace("苍老师", "***").replace("波波老师", "***")
print(r)
第七题
name = "aleX leNb"
r1 = name.strip()
r2 = name.startswith("al")
r3 = name.endswith("Nb")
r4 = name.replace("l", "p")
r5 = name.split("l")
r6 = name.split("l", 1)
r7 = name.upper()
r8 = name.lower()
第八题
name = "aleX leNb"
print(name[::-1])
第九题
s = "123a4b5c"
r1 = s[0:3]
r2 = s[3:6]
r3 = s[-1]
r4 = s[-3:0:-2]
第十题
message = "伤情最是晚凉天,憔悴厮人不堪言"
index = 0
while index < len(message):
print(message[index])
index += 1
第十一题
message = "伤情最是晚凉天,憔悴厮人不堪言"
for char in message:
print(char)
第十二题
message = "伤情最是晚凉天,憔悴厮人不堪言"
for i in range(len(message) - 1, -1, -1):
print(message[i])
第十三题
for i in range(3, 0, -1):
print(f"倒计时{i}秒")
第十四题
text = input("请输入内容:")
r = 0
for char in text:
if char == "浪":
r += 1
print(r)
第十五题
num1 = input("请输入:")
num2 = input("请输入:")
t1 = ""
t2 = ""
for i in num1:
if i.isdecimal():
t1 += i
for i in num2:
if i.isdecimal():
t2 += i
print(int(t1) + int(t2))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理