当前位置: 首页 > article >正文

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

目录

1. 整数类型 int

2. 浮点数类型 float

3. 布尔类型 bool

4. 字符串 str

5. 类型转换

5.1 隐式类型转换

5.2 显示类型转换

6. 输出

6.1 print函数

6.2 格式化输出

7. 输入


1. 整数类型 int

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

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

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()来增加这个限制。

sys.set_int_max_str_digits(maxdigits)
# 设置解释器所使用的整数字符串转换长度限制
# maxdigits必须为0或大于640,为0时表示没有限制
import sys

sys.set_int_max_str_digits(0)
print(9**999999)
# 能够正常打印

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

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

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

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

import sys

print(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

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'>
'''

浮点型有大小限制。

import sys

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

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

from decimal import Decimal

print(8.1 / 3)
print(Decimal("8.1") / Decimal("3"))
'''
2.6999999999999997
2.7
'''

3. 布尔类型 bool

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

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

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

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

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

print(False + 1)
print(True + 1)
print(int(False) + 1)
print(int(True) + 1)
'''
1
2
1
2
'''

4. 字符串 str

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'>
'''

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

  • 注释
  • 多行字符串,可以使字符串内容保持原样输出
"""
注释
"""
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'可以使整个字符串不会被转义:

print('换行符是\n')
print(r'换行符是\n')
'''
换行符是

换行符是\n
'''

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

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

5. 类型转换

5.1 隐式类型转换

  • 根据变量的当前值决定其类型
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'>
'''
  • 运算时,低精度向高精度转换
x = 1
y = 1.1
z = x + y
print(type(z))
'''
<class 'float'>
'''

5.2 显示类型转换

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'>
'''
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'>
'''
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函数

print(*objects, sep=' ', end='\n', file=None, flush=False)
# 将objects打印输出至file指定的文本流,以sep分隔并在末尾加上end
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(格式化字符串)
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. 输入

input([prompt])
# 如果存在prompt实参,则将其写入标准输出,末尾不带换行符。
# 接下来,该函数从输入中读取一行,将其转换为字符串(除了末尾的换行符)并返回。
# 当读取到EOF时,则触发EOFError。
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'>
'''
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.kler.cn/a/291286.html

相关文章:

  • 单片机软件定时器V4.0
  • Git撤销指定commit并更新远端仓库
  • 『SQLite』如何使用索引来查询数据?
  • 快速上手:采用Let‘sEncrypt免费SSL证书配置网站Https (示例环境:Centos7.9+Nginx+Let‘sEncrypt)
  • 【HarmonyOS NEXT】鸿蒙应用使用后台任务之长时任务,解决屏幕录制音乐播放等操作不被挂起
  • C++ 入门第23天:Lambda 表达式与标准库算法入门
  • 【Linux】易忘操作集合
  • uniapp个人健康预警管理系统 微信小程序的设计与实现 38vk1
  • 2024年【陕西省安全员B证】考试题及陕西省安全员B证最新解析
  • Rust模块std::thread
  • 双指针--优选算法
  • 后端怎么处理前端传入的参数应该做哪些处理?
  • Linux 系统入门:基础知识和命令集合,用户与权限
  • 【Grafana】Nginx代理Grafana实现不开启匿名自动登录
  • WPF-快速构建统计表、图表并认识相关框架
  • MaPLe(论文解读): Multi-modal Prompt Learning
  • 滑动窗口学习笔记(基础部分)
  • 科技信贷业务怎么寻找客户?
  • Java类和对象——快速自动生成带参数的结构
  • C++: std::once_flag 和 std::call_once
  • Web前端 lucky-canvas【大转盘 九宫格 老虎机】抽奖插件(适用JS/TS、Vue、React、微信小程序、Uniapp和Taro)
  • 数据结构单向 循环 双向 链表的插入 删除 查询
  • 数据结构与算法-C语言复习
  • 【Kubernetes知识点问答题】Pod 调度
  • Cesium 实战 - 自定义纹理材质 - 流动线(精灵线)
  • 后端开发刷题 | 数组中的逆序对