Python基础数据类型【上】
- 1、数值类型
- 2、字符串
- 3、布尔类型
- 4、空值(None)
- 作业
- 题1:
- 题2:
- 题3:
- 题4:
1、数值类型
数值类型有以下四种分类:
- 整数类型
- 小整数对象池
- 浮点数、复数
- 数学计算
数据类型种类(熟悉)
数值类型介绍(熟悉)
整数(int)介绍(熟悉)
例子:将99转为二进制数
print(bin(99)) # 0b1100011
整数内存(了解)
小整数对象池(了解)
python 初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期 重复生成!这是一个包含262个指向整数对象的指针数组,范围是-5到256。也 就是说比如整数10,即使我们在程序里没有创建它,其实在 Python 后台已经 悄悄为我们创建了。
作用:节省开销,增快运行速度
整数缓冲区(了解)
除了小整数对象池,Python 还有整数缓冲区的概念,也就是刚被删除的整数, 不会被真正立刻删除回收,而是在后台缓冲一段时间,等待下一次的可能调用。 注意:在交互环境当中演示不出来效果。
该效果在pycharm当中实现;并且注 意不是小整数对象池当中的值。
浮点数(float)介绍(熟悉)
浮点数也就是小数,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点 数,一般用科学计数法表示,把10用e替代,1.23x10^9就是1.23e9,或者 12.3e8,0.000012可以写成1.2e-5,等等。
浮点数与整数之间转换(掌握)
复数(complex)(了解)
复数由 实数部分 和 虚数部分 构成,可以用 a + bj, 或者 complex(a,b) 表示, 复数的 实部a 和 虚部b 都是浮点。
print(complex(1, 2)) # (1+2j)
数学计算(熟悉)
注意: 对于ceil、floor、pow是python自带库中的方法【使用需要导入】,而abs、round是python内置的方法
import math # 导入标准库math
print(math.ceil(4.1)) # 5:向上取整
print(math.floor(4.5)) # 4:向下取整
print(math.pow(2, 3)) # x**y 2**3
a = -10
print(abs(a)) # 打印取绝对值后的值
# python3进行改良,不再是四舍五入,而是四舍六入五成偶
print(round(4.1)) # 舍去为4
print(round(4.5)) # 舍去为4
print(round(4.6)) # 进1为5
print(round(3.5)) # 4
2、字符串
- 字符串介绍
- 字符串存储
- 字符串下标
- 字符串切片
- 字符串类型转换
- 字符串组成方式
- 字符串常见操作
字符串介绍(掌握)
注意:字符串是一个字符对应一个索引进行占位的
# 如果需要换行 加换行符 \n,如果需要打印\n这个符号,那么加转义字符\\n
s1 = "hello \n hansen"
print(s1)
s2 = 'hello hansen2'
print(s2)
# 文本格式,保留文本的样式的
s3 = """hello
hansen3"""
print(s3)
字符串的存储(了解)
思考:以下 数值 与 字符串 存储是一样的吗?
字符串的下标(重点掌握)
name = 'hello oldamy'
print(name[1]) # e
print(name[-1]) # y
name = 'hello oldamy'
print(name[:]) # hello oldamy
当[:]时,默认取整个字符串,此时如果步长为-1,则是逆向取数据。
name = 'hello oldamy'
print(name[::-1]) # ymadlo olleh
字符串类型转换(掌握)
"""
字符串拼接
"""
# print('1'+'2') # 字符串用+做拼接 '12'
"""
字符串格式化
"""
name = "hansen"
age = 20
# %号格式需要考虑数据类型
# %s --> str
# %d --> decimal
# %f --> float
print("%s年龄为%d" % (name, age))
# str.format() 好处1:不用考虑数据类型 好处2:可以切换位置
# {} --> 占坑
print("{1}年龄为{0}".format(age, name))
# f'' python3.6.4以上的版本
# {} --> 占坑
print(f"{name}年龄为{age}")
3、布尔类型
bool()使用
布尔类型运算
4、空值(None)
空值介绍(掌握)
作业
题1:
方法1
user_input = input("用户请输入:")
if user_input == 'Y' or user_input == 'y':
print('进入卸载')
elif user_input == 'N' or user_input == 'n':
print('推出程序')
else:
print('输入不在选项范围之内')
方法2
user_input = input("用户请输入:")
if user_input.upper() == 'Y':
print('进入卸载')
elif user_input.upper() == 'N':
print('推出程序')
else:
print('输入不在选项范围之内')
题2:
1、布尔类型分为两种:True或者False,可以通过bool()方法判断一个【表达式/值/数据】
的布尔结果,
数值类型:0/0.0的布尔结果都是False,其他的数值类型,都是True
字符串:除了空字符串`''`的布尔结果都是False,其他的字符串,都是True
布尔类型本身:False布尔结果是False,True的布尔结果为True
None:空值None的布尔结果永远是False,它不属于数值0、空字符串、布尔False,
而是NoneType类型
2、字符串类型的重点
字符串可以通过`+`进行拼接
字符串有索引,可以通过索引进行取值
字符串包含单引号、双引号、三引号,单/双引号用于声明字符串类型的数据,而三引号用于文档说明
字符串的切片,可以截取字符串中的某个部分
字符串还提供了一些方法,如str.isdigit(): 判断该字符串是不是由数字组成
字符串与数值的类型转换
题3:
user_input = input("能输入长度低于20的字符串")
if len(user_input) < 20:
print(f'字符串长度为{len(user_input)}')
print('逆序打印出字符串:{}'.format(user_input[::-1]))
else:
print('用户重新输入')
题4:
print('3' + '4')
分析:字符串通过+
号会进行字符串的拼接