【Python】简单的数据类型——int、float、bool、str

embedded/2024/11/13 8:01:08/

目录

1. 整数类型 int

2. 浮点数类型 float

3. 布尔类型 bool

4. 字符串 str

5. 类型转换

5.1 隐式类型转换

5.2 显示类型转换

6. 输出

6.1 print函数

6.2 格式化输出

7. 输入


1. 整数类型 int

python">a = 10
print(type(a))
print(type(-2))
'''
<class 'int'>
<class 'int'>
'''

测试整型能表示的最大值:

python">print(9**999999)
'''
ValueError: Exceeds the limit (4300 digits) for integer string conversion;
use sys.set_int_max_str_digits() to increase the limit
'''

整数字符串转换超过限制(4300位);使用sys.set_int_max_str_digits()来增加这个限制。

python">sys.set_int_max_str_digits(maxdigits)
# 设置解释器所使用的整数字符串转换长度限制
# maxdigits必须为0或大于640,为0时表示没有限制
python">import syssys.set_int_max_str_digits(0)
print(9**999999)
# 能够正常打印

整数有十进制、十六进制、八进制、二进制表示。

python"># 十进制
print(10)
# 十六进制
print(0x10)  # 或0X10
# 八进制
print(0o10)  # 或0O10
# 二进制
print(0b10)  # 或0B10
'''
10
16
8
2
'''

整型占的字节数随着数字增大而增大,即整型是变长的,每次增量是4个字节。

可以用sys.getsizeof计算对象的大小,单位是字节。

python">import sysprint(sys.getsizeof(0))
print(sys.getsizeof(1))
print(sys.getsizeof(2))
print(sys.getsizeof(2**15))
print(sys.getsizeof(2**30))
print(sys.getsizeof(2**128))
'''
28
28
28
28
32
44
'''

2. 浮点数类型 float

python">x = 123.4    # 小数形式
y = 1.234e2  # 指数形式 e2、E2、e+2、E+2都可以
# 以上两种写法表示的效果相同z = 0.000056  # 小数形式 写成.000056也可以
k = 5.6e-5    # 指数形式 e-5、E-5都可以
# 以上两种写法表示的效果相同print(type(x))
print(type(y))
print(type(z))
print(type(k))
'''
<class 'float'>
<class 'float'>
<class 'float'>
<class 'float'>
'''

浮点型有大小限制。

python">import sys# 可表示的最大正有限浮点数
print(sys.float_info.max)
# 可表示的最小正规范化浮点数
print(sys.float_info.min)
'''
1.7976931348623157e+308
2.2250738585072014e-308
'''

浮点型计算有精度损失,可以使用Decimal类进行精确计算。

python">from decimal import Decimalprint(8.1 / 3)
print(Decimal("8.1") / Decimal("3"))
'''
2.6999999999999997
2.7
'''

3. 布尔类型 bool

bool类型只有两个常量实例:True和False。

python">bool1 = 1 < 2
bool2 = 1 > 2
print(bool1)
print(bool2)
print(type(bool1))
print(type(bool2))
'''
True
False
<class 'bool'>
<class 'bool'>
'''

内置函数bool()可将任意值转换为布尔值,如果该值可以被解读为逻辑值的话。

python">print(type(bool(2)))
print(type(bool(0)))
'''
<class 'bool'>
<class 'bool'>
'''

bool是int的子类。在许多数字场景下,False和True的行为分别与整数0和1类似。 但是,不建议这样使用;请使用int()显式地执行转换。

python">print(False + 1)
print(True + 1)
print(int(False) + 1)
print(int(True) + 1)
'''
1
2
1
2
'''

4. 字符串 str

python">s1 = "hello"
s2 = 'world'  # 单引号和双引号都可以创建字符串
s3 = s1 + ", " + s2  # 加号可以连接字符串
print(s1)
print(s2)
print(s3)
print(type(s1))
print(type(s2))
print(type(s3))
'''
hello
world
hello, world
<class 'str'>
<class 'str'>
<class 'str'>
'''

成对的三个单引号或双引号的作用:

  • 注释
  • 多行字符串,可以使字符串内容保持原样输出
python">"""
注释
"""
content = """内容:
s1 = "hello"
s2 = 'world' # 单引号和双引号都可以创建字符串
s3 = s1 + ", " + s2 # 加号可以连接字符串
print(s1)
print(s2)
print(s3)
print(type(s1))
print(type(s2))
print(type(s3))
'''
hello
world
hello, world
<class 'str'>
<class 'str'>
<class 'str'>
'''
"""
print(content)

在字符串前面加'r'可以使整个字符串不会被转义:

python">print('换行符是\n')
print(r'换行符是\n')
'''
换行符是换行符是\n
'''

 只由空格分隔的多个字符串字面值会合并成一条字符串。

python">str1 = "Apple" "Orange" "Banana"
print(str1)
'''
AppleOrangeBanana
'''

5. 类型转换

5.1 隐式类型转换

  • 根据变量的当前值决定其类型
python">x = 2
print(type(x))
x = 8.8
print(type(x))
x = False
print(type(x))
x = "hello"
print(type(x))
'''
<class 'int'>
<class 'float'>
<class 'bool'>
<class 'str'>
'''
  • 运算时,低精度向高精度转换
python">x = 1
y = 1.1
z = x + y
print(type(z))
'''
<class 'float'>
'''

5.2 显示类型转换

python">a = int("20")       # 默认以10进制转换
print(a)
print(type(a))b = int("10", 16)   # 以16进制转换
print(b)
print(type(b))c = int("0xa", 16)  # 以16进制转换
print(c)
print(type(c))d = int(3.14)       # float -> int
print(d)
print(type(d))'''
20
<class 'int'>
16
<class 'int'>
10
<class 'int'>
3
<class 'int'>
'''
python">a = float(33)
print(a)
print(type(a))b = float("10.2")
print(b)
print(type(b))'''
33.0
<class 'float'>
10.2
<class 'float'>
'''
python">a = str(100)
print(a)
print(type(a))b = str(88.88)
print(b)
print(type(b))'''
100
<class 'str'>
88.88
<class 'str'>
'''

6. 输出

6.1 print函数

python">print(*objects, sep=' ', end='\n', file=None, flush=False)
# 将objects打印输出至file指定的文本流,以sep分隔并在末尾加上end
python">print("apple")
print("apple", "orange")
print("apple", "orange", sep="@")
print("apple", "orange", end="%%")
print("apple", "orange", sep="@", end="%%")
print("")

6.2 格式化输出

  • 格式控制符(和C语言printf的格式控制符一样)
  • format函数
  • f-string(格式化字符串)
python">name = '赵敏'
age = 20
gender = "女"
score = 99.9
print("个人信息:%s-%d-%s-%.2f" % (name, age, gender, score))
print("个人信息:{}-{}-{}-{}".format(name, age, gender, score))
print(f"个人信息:{name}-{age}-{gender}-{score}")
'''
个人信息:赵敏-20-女-99.90
个人信息:赵敏-20-女-99.9
个人信息:赵敏-20-女-99.9
'''

7. 输入

python">input([prompt])
# 如果存在prompt实参,则将其写入标准输出,末尾不带换行符。
# 接下来,该函数从输入中读取一行,将其转换为字符串(除了末尾的换行符)并返回。
# 当读取到EOF时,则触发EOFError。
python">name = input("请输入姓名:")
age = input("请输入年龄:")
score = input("请输入成绩:")
print(f"name: {name} type: {type(name)}")
print(f"name: {age} type: {type(age)}")
print(f"name: {score} type: {type(score)}")
'''
请输入姓名:李莲花
请输入年龄:30
请输入成绩:99.99
name: 李莲花 type: <class 'str'>
name: 30 type: <class 'str'>
name: 99.99 type: <class 'str'>
'''
python">name = input("请输入姓名:")
age = int(input("请输入年龄:"))
score = float(input("请输入成绩:"))
print(f"name: {name} type: {type(name)}")
print(f"name: {age} type: {type(age)}")
print(f"name: {score} type: {type(score)}")
'''
请输入姓名:李相夷
请输入年龄:18
请输入成绩:99.9999
name: 李相夷 type: <class 'str'>
name: 18 type: <class 'int'>
name: 99.9999 type: <class 'float'>
'''

http://www.ppmy.cn/embedded/107200.html

相关文章

ARM发布新一代高性能处理器N3

简介 就在2月21日&#xff0c;ARM发布了新一代面向服务器的高性能处理器N3和V3&#xff0c;N系列平衡性能和功耗&#xff0c;而V系列则注重更高的性能。此次发布的N3&#xff0c;单个die最高32核&#xff08;并加入到CCS&#xff0c;Compute Subsystems&#xff0c;包含Core&a…

基于uniapp的畅玩旅游景点门票预订系统的设计与实现b3w12 微信小程序

目录 博主介绍技术栈系统设计&#x1f31f;文末获取源码数据库&#x1f31f;具体实现截图后端前端java类核心代码部分展示可行性论证个人心得系统测试操作可行性源码获取详细视频演示 博主介绍 &#x1f447;&#x1f3fb; 博主介绍&#xff1a;&#x1f447;&#x1f3fb; 专…

如何本地搭建Whisper语音识别模型|语音识别|本地部署

目录 1. 环境配置 1.1 操作系统要求 1.2 安装依赖库 1.3 GPU支持的配置 2. 获取Whisper模型 2.1 克隆Whisper代码库 2.2 下载预训练模型 3. Whisper模型的部署与使用 3.1 加载Whisper模型 3.2 处理音频数据 3.3 语音识别 4. Whisper模型的高级配置与优化 4.1 自定…

利用TOPSIS算法进行生长素和施肥量对农作物各指标影响力的分析

文章目录 1 摘要2 问题的重述1&#xff0e; 背景介绍2&#xff0e; 问题的产生及进行数学建模的意义 3 TOPSIS算法1. TOPSIS算法介绍2. TOPSIS算法使用步骤 4 问题的分析1. 对问题一的分析及解答2. 对问题二的分析及解答3. 对问题三的分析及解答 5 模型的改进1. 验证2.模型改进…

聊聊,IEEE论文的含金量!

IEEE论文的含金量在学术界被广泛认可&#xff0c;这主要体现在以下几个方面&#xff1a; 学术价值&#xff1a;IEEE论文的学术价值体现在其研究内容的深度和广度上。这些论文通常涉及前沿的科学技术问题&#xff0c;提出创新性的理论、方法或实验结果。例如&#xff0c;在人工…

STL容器中 list(双向链表)的增删改查

list&#xff08;双向链表&#xff09; std::list 是 C 标准模板库&#xff08;STL&#xff09;中的一个容器&#xff0c;它实现了一个双向链表。双向链表中的每个元素都包含三个部分&#xff1a;存储数据的元素本身、指向前一个元素的指针&#xff08;或迭代器&#xff09;、…

Python 和 Java 区别是什么?哪个运行效率高?为什么?

一、Python 和 Java 的区别 1. 编程风格 • Python 是一种解释型动态编程语言&#xff0c;语法简洁、灵活&#xff0c;代码较为简洁直观&#xff0c;注重代码的可读性和简洁性&#xff0c;使用缩进来表示代码块。 • Java 是一种编译型静态编程语言&#xff0c;语法相对严谨…

[Leetcode] 接雨水(相向双指针)

可以直接移步大神的解题思路&#xff0c;非常详细 -> 盛最多水的容器 接雨水_哔哩哔哩_bilibili 11. 盛最多水的容器 https://leetcode.cn/problems/container-with-most-water/description/ 42. 接雨水 https://leetcode.cn/problems/trapping-rain-water/description/ 11…