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

news2024/11/15 19:38:32

目录

1. 整数类型 int

2. 浮点数类型 float

3. 布尔类型 bool

4. 字符串 str

5. 格式化输出

6. 类型转换

6.1 隐式类型转换

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)
# 八进制
print(0o10)
# 二进制
print(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
'''

5. 格式化输出

  • 格式控制符(和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
'''

6. 类型转换

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

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

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.coloradmin.cn/o/2086249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker私有云仓库Harbor部署及使用

文章目录 一、前置准备1、安装docker、docker-compose 二、安装harbor1、下载Harbor2、证书3、配置文件4、安装5、docker使用6、k8s使用&#xff08;1.28版本containerd&#xff09; 三、常用运维1、重启 一、前置准备 1、安装docker、docker-compose centos7安装与卸载docke…

2024年【道路运输企业安全生产管理人员】考试题库及道路运输企业安全生产管理人员考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年道路运输企业安全生产管理人员考试题库为正在备考道路运输企业安全生产管理人员操作证的学员准备的理论考试专题&#xff0c;每个月更新的道路运输企业安全生产管理人员考试试题祝您顺利通过道路运输企业安全生…

牛客NC313 两个数组的交集 C++

牛客NC313 两个数组的交集 C 思路&#x1f914;&#xff1a; 用哈希表存储第一个数组&#xff0c;再和第二个数组对比&#xff0c;对比成功就添加到新的数组中&#xff0c;之后将哈希表的该位置变为false&#xff0c;防止重复添加。这里数据范围仅有1000&#xff0c;所以我们可…

Windows10系统中安装Maven 3.8.8的步骤

Windows10系统中安装Maven 3.8.8的步骤 1、前提 因已安装好了JDK17,需要安装跟JDK17对应的版本,选了maven3.8.8 2. 下载 Maven 访问 Apache Maven 官网下载页面。选择下载:apache-maven-3.8.8-bin.zip 3、解压缩 4、增加系统环境变量 MAVEN_HOME =C:\hmf\apache-maven…

cppbase阶段汇总

第一章 C与C 本章主要讲解C相较于C一些独有的比较重要的知识点。 C源文件后缀名&#xff1a;.cc或.cpp 头文件后缀名&#xff1a;.hh或.hpp 安装g命令&#xff1a;sudo apt install g 编译命令&#xff1a;g filename.cc [-o name] 首先从C的 hello,world 程序入手&#xff0c…

【C++笔记】类和对象的深入理解(一)

【C笔记】类和对象的深入理解(一) &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录 【C笔记】类和对象的深入理解(一)前言一.类的定义1.1类定义格式1.2访问限定符1.3类域 二.实例化2.1 实例化概念2.2对象大小 三.this指针四.练…

8月29日wpf

小语 折磨我们的往往是想象&#xff0c;而不是真实。 学wpf 7.07 1.vs如何创建新项目&#xff1f; 退出&#xff0c;创建新项目&#xff0c;点c#&#xff0c;windows&#xff0c;进入界面 2.app.config在哪里&#xff1f; 好像只有这个。。。 试一下&#xff0c;不是 我…

CSS基础 什么是盒模型

是什么 当对一个文档进行布局&#xff08;layout&#xff09;的时候&#xff0c;浏览器的渲染引擎会根据标准之一的 CSS 基础框盒模型&#xff08;CSS basic box model&#xff09;&#xff0c;将所有元素表示为一个个矩形的盒&#xff08;box&#xff09; 一个盒子由四个部分…

【YOLO系列】YOLO算法改进史

目录 前言YOLOv1YOLOv2YOLOv3YOLOv4YOLOv5YOLOv6YOLOv7YOLOv8YOLOv9YOLOv10对比待更新 前言 YOLO&#xff08;You Only Look Once&#xff09;是一种革命性的目标检测算法&#xff0c;以其快速和高效的性能而闻名。自2015年YOLOv1的首次推出以来&#xff0c;YOLO系列已经经历了…

Kali的相关学习、永恒之蓝漏洞(MS17-010)、ms12-020漏洞(蓝屏攻击)

学习任务 熟悉kali网络配置&#xff0c;nat模式和桥接模式 熟悉nmap使用 熟悉msfconsole使用 熟练掌握如何利用ms17-010&#xff0c;ms08_067 kali网络配置 资料&#xff1a;07-网络安全-kail linux 网络配置&#xff08;基础篇&#xff09; - Jaoany - 博客园 (cnblogs.…

[mysql]Navicat_SQLyog_dbeaver等mysql图形工具的安装和使用

mysql图形工具 虽然我们说学习mysql我们要学会基本的在linux里学习的指令&#xff0c;但是即便如此我们也可以利用工具的卸载&#xff0c;不一定非要用命令行&#xff0c;工具的作用就是给我们操作用的&#xff0c;显的很牛非得命令行&#xff0c;没有必要。常用的图形化管理工…

Vue——认识day04_计算属性(案例:实时预览)

目录 1.计算属性之姓名案例之插值语法的实现 2.计算属性之姓名案例之methods语法的实现 3.计算属性之姓名案例之计算属性语法的实现 4.计算属性的简写方式 1.计算属性之姓名案例之插值语法的实现 代码示例&#xff1a; <!DOCTYPE html> <html lang"en"…

逆向工程、Spring框架IOC、AOP学习

系列文章目录 第一章 基础知识、数据类型学习 第二章 万年历项目 第三章 代码逻辑训练习题 第四章 方法、数组学习 第五章 图书管理系统项目 第六章 面向对象编程&#xff1a;封装、继承、多态学习 第七章 封装继承多态习题 第八章 常用类、包装类、异常处理机制学习 第九章 集…

linux服务器/虚拟机安装redis

py3安装&#xff08;慢的一批无语了&#xff09; wget http://cdn.npm.taobao.org/dist/python/3.6.5/Python-3.6.5.tgz && tar -zxvf Python-3.6.5.tgz && cd Python-3.6.5/ && ./configure --prefix/usr/local/python3 --with-ssl && make …

重磅!预读 New feature 提升再次提升20%+性能

在7月底发布的MogDB 5.0.8版本中&#xff0c;引入了几个新特性&#xff0c;其中的预读功能又将全表扫描能力提升了至少20%。 什么是MogDB 预读功能 数据库中的数据是按照一个个页面进行组织管理的&#xff0c;CPU以页面为单位对数据进行处理&#xff0c;这就使得CPU处理和I/O之…

AI模型:全能与专精的较量与未来潜力探讨

AI模型&#xff1a;追求全能还是专精&#xff1f; 随着人工智能技术的飞速发展&#xff0c;AI模型逐渐成为各个领域的焦点。近日&#xff0c;OpenAI即将推出的“草莓”模型&#xff0c;以其全能型的特点引起了广泛关注。在这篇文章中&#xff0c;我们将探讨全能型AI与专精型AI…

第十三章、 泛型

第十三章、 泛型 13.1 泛型语法 13.1.1 泛型的引入与入门 看一个需求 &#xff08;1&#xff09;. 请编写程序&#xff0c;在ArrayList中&#xff0c;添加3个Dog对象 &#xff08;2&#xff09;. Dog对象含有name和age&#xff0c;并输出name和age&#xff08;要求使用getXx…

IPv6和IPv4的主要区别

地址变化与转换&#xff1a; IPv6 二进制数有 128 位&#xff0c;IPv6 使用十六进制表示&#xff0c;中间使用 : 分隔。 简写&#xff1a; 将前面连续的 0 &#xff0c;使用 :: 表示。缩写只能使用一次&#xff0c;而且缩头不缩尾。 首部&#xff1a; 地址划分&#xff1a; IPv…

WEB:探索富文本编辑器的详细指南

请关注微信公众号&#xff1a;拾荒的小海螺 博客地址&#xff1a;http://lsk-ww.cn/ 1、简述 富文本编辑器&#xff08;Rich Text Editor, RTE&#xff09;是一种允许用户在不需要编写HTML或CSS代码的情况下创建和编辑复杂文本内容的工具。无论是博客平台、内容管理系统&…

pnpm 查看库的所有版本

1、最近在做图布局的时候&#xff0c;发现默认版本是beta版 2、那么我们如何来查看远程库中有什么版本可以安装呢&#xff1f; 3、使用命令&#xff1a; pnpm view antv/layout versions pnpm view 这里替换成要查看的库名 versions