【Python】从基础到进阶(二):了解Python语言基础以及数据类型转换、基础输入输出

news2024/11/20 12:30:39

在这里插入图片描述

🔥 个人主页:空白诗

在这里插入图片描述

文章目录

    • 一、引言
    • 二、基本数据类型转换
      • 1. 隐式转换
      • 2. 显式转换
    • 三、基本输入输出
      • 1. 输入(input)
      • 2. 输出(print)
      • 3. 案例:输入姓名、年龄、身高以及体重,计算BMI指数。
      • 4. 使用 `pprint()` 函数输出
    • 四、总结
      • 1. 数据类型转换
      • 2. 基本输入输出操作

在这里插入图片描述

一、引言

在上一篇文章 【Python】从基础到进阶(一):了解Python语言基础以及变量的相关知识 中,我们介绍了Python编程的基本概念、语法以及如何定义和使用变量。这为我们理解和编写Python代码奠定了坚实的基础。

在本篇文章中,我们将继续探讨Python语言的核心基础,重点关注数据类型转换和基础输入输出操作。这些知识对于编写功能丰富、交互性强的Python程序至关重要。数据类型转换使我们能够在不同类型的数据之间进行转换,从而实现更多的计算和操作。而输入输出操作则是我们与用户进行信息交互的基本手段。

通过阅读本篇文章,您将学会:

  • 理解并应用数据类型转换方法
  • 实现用户输入和程序输出的基本操作
  • 使用Python编写简单的交互式程序

让我们从Python语言的基础知识开始,逐步深入到数据类型转换和基础输入输出的具体内容,继续我们的Python学习之旅。


二、基本数据类型转换

在这里插入图片描述

在编写Python程序时,数据类型转换是一个常见且重要的操作。数据类型转换分为隐式转换显式转换。了解如何在不同数据类型之间进行转换可以提高代码的灵活性和可维护性。

1. 隐式转换

隐式转换是指Python在需要时自动进行的数据类型转换。通常发生在混合类型的运算中。例如,将整数和浮点数相加时,Python会自动将整数转换为浮点数:

x = 10  # 整数
y = 3.5  # 浮点数
result = x + y
print(result)  # 输出 13.5,x 被隐式转换为浮点数

2. 显式转换

显式转换是通过使用内置函数手动进行的数据类型转换。以下是一些常用的显式转换方法及其使用详情:

函数作用示例
int(x)x 转换成整数类型int('123') 将字符串 '123' 转换为整数 123
float(x)x 转换成浮点数类型float('123.45') 将字符串 '123.45' 转换为浮点数 123.45
str(x)x 转换为字符串str(123) 将整数 123 转换为字符串 '123'
bool(x)x 转换为布尔值bool(0) 将整数 0 转换为布尔值 False
list(x)x 转换为列表list((1, 2, 3)) 将元组 (1, 2, 3) 转换为列表 [1, 2, 3]
tuple(x)x 转换为元组tuple([1, 2, 3]) 将列表 [1, 2, 3] 转换为元组 (1, 2, 3)
set(x)x 转换为集合set([1, 2, 2, 3]) 将列表 [1, 2, 2, 3] 转换为集合 {1, 2, 3}
dict(x)x 转换为字典dict([('a', 1), ('b', 2)]) 将列表 [('a', 1), ('b', 2)] 转换为字典 {'a': 1, 'b': 2}
frozenset(x)x 转换为冻结集合(不可变集合)frozenset([1, 2, 2, 3]) 将列表 [1, 2, 2, 3] 转换为冻结集合 frozenset({1, 2, 3})
complex(real [,imag])创建一个复数complex(1, 2) 创建一个复数 1+2j
repr(x)x 转换为表达式字符串repr(123) 将整数 123 转换为表达式字符串 '123'
eval(str)计算在字符串中的有效 Python 表达式,并返回一个对象eval('3 + 4') 计算字符串 '3 + 4' 中的表达式并返回 7
chr(x)将整数 x 转换为一个字符chr(97) 将整数 97 转换为字符 'a'
ord(x)将一个字符 x 转换为它对应的整数值ord('a') 将字符 'a' 转换为整数 97
hex(x)将一个整数 x 转换为一个十六进制的字符串hex(255) 将整数 255 转换为十六进制字符串 '0xff'
oct(x)将一个整数 x 转换为一个八进制的字符串oct(8) 将整数 8 转换为八进制字符串 '0o10'
bin(x)将一个整数 x 转换为一个二进制的字符串bin(10) 将整数 10 转换为二进制字符串 '0b1010'

使用 int()

将其他数据类型转换为整数。浮点数将被截断,小数部分会被移除;字符串必须包含有效的整数表示:

a = 3.7
b = int(a)
print(b)  # 输出 3

c = "10"
d = int(c)
print(d)  # 输出 10

e = "a123"
f = int(e)
print(f)  # 报错

使用 float()

将其他数据类型转换为浮点数。整数将被转换为对应的浮点数,字符串必须包含有效的浮点数表示:

a = 3
b = float(a)
print(b)  # 输出 3.0

c = "3.14"
d = float(c)
print(d)  # 输出 3.14

使用 str()

将其他数据类型转换为字符串。可以用于任何数据类型:

a = 10
b = str(a)
print(b)  # 输出 "10"

c = 3.14
d = str(c)
print(d)  # 输出 "3.14"

使用 bool()

将其他数据类型转换为布尔值。非零数值、非空字符串和非空数据结构(如列表、元组、字典等)都将被转换为 True,零数值、空字符串和空数据结构将被转换为 False

a = 0
print(bool(a))  # 输出 False

b = 1
print(bool(b))  # 输出 True

c = ""
print(bool(c))  # 输出 False

d = "Hello"
print(bool(d))  # 输出 True

使用 list()

将其他可迭代对象(如字符串、元组等)转换为列表:

a = "hello"
b = list(a)
print(b)  # 输出 ['h', 'e', 'l', 'l', 'o']

c = (1, 2, 3)
d = list(c)
print(d)  # 输出 [1, 2, 3]

使用 tuple()

将其他可迭代对象(如字符串、列表等)转换为元组:

a = "hello"
b = tuple(a)
print(b)  # 输出 ('h', 'e', 'l', 'l', 'o')

c = [1, 2, 3]
d = tuple(c)
print(d)  # 输出 (1, 2, 3)

使用 set()

将其他可迭代对象(如字符串、列表等)转换为集合,集合中的元素是唯一的:

a = "hello"
b = set(a)
print(b)  # 输出 {'h', 'e', 'l', 'o'}

c = [1, 2, 2, 3]
d = set(c)
print(d)  # 输出 {1, 2, 3}

使用 dict()

将其他可迭代对象(如键值对的列表)转换为字典:

a = [('a', 1), ('b', 2)]
b = dict(a)
print(b)  # 输出 {'a': 1, 'b': 2}

c = (('x', 3), ('y', 4))
d = dict(c)
print(d)  # 输出 {'x': 3, 'y': 4}

使用 frozenset()

将其他可迭代对象(如字符串、列表等)转换为冻结集合,冻结集合是不可变的:

a = "hello"
b = frozenset(a)
print(b)  # 输出 frozenset({'h', 'e', 'l', 'o'})

c = [1, 2, 2, 3]
d = frozenset(c)
print(d)  # 输出 frozenset({1, 2, 3})

使用 complex()

创建一个复数,实部和虚部都可以是整数或浮点数:

a = 1
b = 2
c = complex(a, b)
print(c)  # 输出 (1+2j)

d = complex(1.5, 2.5)
print(d)  # 输出 (1.5+2.5j)

使用 repr()

将对象转换为表达式字符串,通常用于调试和开发:

a = 123
b = repr(a)
print(b)  # 输出 '123'

c = [1, 2, 3]
d = repr(c)
print(d)  # 输出 '[1, 2, 3]'

使用 eval()

计算字符串中的有效 Python 表达式,并返回一个对象:

a = '3 + 4'
b = eval(a)
print(b)  # 输出 7

c = '["a", "b", "c"]'
d = eval(c)
print(d)  # 输出 ['a', 'b', 'c']

使用 chr()

将整数转换为对应的字符:

a = 97
b = chr(a)
print(b)  # 输出 'a'

c = 65
d = chr(c)
print(d)  # 输出 'A'

使用 ord()

将字符转换为对应的整数值:

a = 'a'
b = ord(a)
print(b)  # 输出 97

c = 'A'
d = ord(c)
print(d)  # 输出 65

使用 hex()

将整数转换为十六进制字符串:

a = 255
b = hex(a)
print(b)  # 输出 '0xff'

c = 16
d = hex(c)
print(d)  # 输出 '0x10'

使用 oct()

将整数转换为八进制字符串:

a = 8
b = oct(a)
print(b)  # 输出 '0o10'

c = 64
d = oct(c)
print(d)  # 输出 '0o100'

使用 bin()

将整数转换为二进制字符串:

a = 10
b = bin(a)
print(b)  # 输出 '0b1010'

c = 255
d = bin(c)
print(d)  # 输出 '0b11111111'

通过掌握这些数据类型转换方法,您可以灵活地处理不同类型的数据,确保程序能够正确地执行各种操作。在接下来的章节中,我们将探讨如何进行基础输入和输出操作,以进一步增强程序的交互性。


三、基本输入输出

在 Python 中,输入和输出是基本的操作。以下是一些常用的输入输出方法:

1. 输入(input)

input() 函数用于获取用户的输入,输入的数据类型为字符串。可以通过在括号中添加提示信息来提示用户输入:

name = input("请输入你的名字: ")
print("你好, " + name)

在这里插入图片描述

在这个示例中,程序会等待用户输入名字,并输出一条包含该名字的问候语。

2. 输出(print)

print() 函数用于将数据输出到控制台。可以输出多个值,并且可以使用不同的方式格式化输出内容:

# 输出单个值
print("Hello, World!")

# 输出多个值
print("你好", "世界")

# 使用 f-string 格式化输出
name = "Alice"
age = 30
print(f"名字: {name}, 年龄: {age}")

# 使用 format() 方法格式化输出
print("名字: {}, 年龄: {}".format(name, age))

# 使用百分号格式化输出
print("名字: %s, 年龄: %d" % (name, age))

3. 案例:输入姓名、年龄、身高以及体重,计算BMI指数。

variable = input("请输入你的名字:")
print("你好", variable)

age = input("请输入你的年龄:")
print("你今年", age, "岁了")

height = float(input("请输入你的身高(单位:米):"))
weight = float(input("请输入你的体重(单位:公斤):"))

bmi = weight / height ** 2
print("你的BMI指数为:", bmi)

if bmi < 18.5:
    print("您的体重过轻 ~@_@~")
elif 18.5 <= bmi < 25:
    print("您的体重在正常范围 ~@_@~")
elif 25 <= bmi < 28:
    print("您的体重过重 ~@_@~")
elif 28 <= bmi < 32:
    print("肥胖啦你! ~@_@~")
else:
    print("严重肥胖啦~~~ ~@_@~")

在这里插入图片描述

4. 使用 pprint() 函数输出

pprint 模块的 pprint() 函数用于“漂亮打印”数据结构,使其输出格式更易于阅读,尤其是对于嵌套和复杂的数据结构(如字典和列表)。在处理复杂数据时,pprintprint 更适合用于调试和展示数据。

使用 pprint() 需要先导入 pprint 模块:

from pprint import pprint

# 示例数据结构
data = {
    'name': 'Alice',
    'age': 30,
    'children': [
        {'name': 'Bob', 'age': 5},
        {'name': 'Charlie', 'age': 3}
    ],
    'pets': {'dog': 'Fido', 'cat': 'Whiskers'}
}

# 使用 print 输出
print(data)

# 使用 pprint 输出
pprint(data)

输出结果比较:

# 使用 print 输出
{'name': 'Alice', 'age': 30, 'children': [{'name': 'Bob', 'age': 5}, {'name': 'Charlie', 'age': 3}], 'pets': {'dog': 'Fido', 'cat': 'Whiskers'}}

# 使用 pprint 输出
{'age': 30,
 'children': [{'age': 5, 'name': 'Bob'}, {'age': 3, 'name': 'Charlie'}],
 'name': 'Alice',
 'pets': {'cat': 'Whiskers', 'dog': 'Fido'}}

从输出结果可以看出,pprint() 会自动调整输出格式,使其更清晰易读,特别是当数据结构比较复杂时。

pprint() 还可以自定义输出格式。以下是一些常用的参数:

  • indent: 指定每一级嵌套的缩进空格数,默认值为 1。
  • width: 指定输出行的最大宽度,默认值为 80。
  • depth: 指定最大嵌套层级,超出层级的数据将以省略号表示。
  • compact: 如果为 True,则尽可能紧凑地打印数据结构。

示例:

pprint(data, indent=2, width=40, depth=2, compact=True)

打印结果:

{ 'age': 30,
  'children': [{...}, {...}],
  'name': 'Alice',
  'pets': { 'cat': 'Whiskers',
            'dog': 'Fido'}}

这将以更紧凑的方式打印数据结构,并且只显示到第二层嵌套。


四、总结

在本文中,我们深入探讨了 Python 的数据类型转换和基本输入输出操作。通过这些知识,您可以灵活地在不同数据类型之间进行转换,并实现用户输入和程序输出的基本交互。

1. 数据类型转换

了解数据类型转换是编写健壮 Python 程序的关键。通过隐式转换和显式转换,您可以在不同数据类型之间进行转换,确保数据在不同的操作和计算中保持一致性。我们介绍了常用的转换方法,包括 int()float()str()bool() 等,以及如何将数据转换为列表、元组、集合和字典等复杂数据结构。

2. 基本输入输出操作

输入和输出是程序与用户交互的基础。我们讨论了如何使用 input() 函数获取用户输入,以及如何使用 print() 函数输出信息。通过不同的格式化方法,如 f-string、format() 方法和百分号格式化,您可以灵活地输出各种格式的字符串。此外,使用 pprint() 函数可以更清晰地打印复杂数据结构,有助于调试和展示数据。

通过这些基本知识,您可以编写功能丰富、交互性强的 Python 程序。继续练习这些操作,并在实际项目中应用它们,将有助于您进一步掌握 Python 编程技能。

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1881735.html

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

相关文章

onnx文件QNN部署

一、准备环境 1.linux配置qnn sdk &#xff08;1&#xff09;下载qnn sdk https://qpm.qualcomm.com/#/main/tools/details/qualcomm_ai_engine_direct &#xff08;2&#xff09;下载qpm3 https://softwarecenter.qualcomm.com/#/catalog/item/3097f479-8993-11ea-9571-06…

Luminar Neo 1.20.0 (macOS Universal) - 创新 AI 图像编辑器

Luminar Neo 1.20.0 (macOS Universal) - 创新 AI 图像编辑器 利用尖端的人工智能生成技术&#xff0c;轻松增强照片效果 请访问原文链接&#xff1a;https://sysin.org/blog/luminar-neo/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1…

揭秘Wish自养号秘诀:新手卖家如何快速出单?

对于卖家来说&#xff0c;如果想要提升店铺的转化率和销量&#xff0c;有几个关键策略是必不可少的&#xff1a; 一、精心挑选热销产品 成功的第一步在于选品。选择热销产品如同掌握了成功的钥匙。卖家需要深入分析平台用户群体&#xff0c;了解他们的需求和偏好。例如&#…

Powershell 简易爬虫,提取种子网站的磁力链接

目录 一. 需求二. 分析2.1 思路分析2.2 技术点 三. 代码四. 效果 一. 需求 ⏹有网站如下所示&#xff0c;先要求从按照关键词搜索到的网页中&#xff0c;提取出所有的磁力链接。 二. 分析 2.1 思路分析 打开网页之后&#xff0c;从网页中先提取出所有的标题相关的url然后再打…

XXL-JOB分布式任务调度框架详解(全网最详细!!!)

引言 第一部分&#xff1a;XXL-JOB概述 第二部分&#xff1a;架构与组件 第三部分&#xff1a;使用教程 第四部分&#xff1a;源码分析 第五部分&#xff1a;最佳实践 引言 在分布式系统中&#xff0c;任务调度是一项基础而又关键的服务&#xff0c;它涉及到定时任务的管理…

如何玩单机版:QQ音速

前言 我是研究单机的老罗&#xff0c;今天教大家带来一款怀旧游戏QQ音速 的教程。根据我的文章&#xff0c;一步一步就可以玩了。 如今市面上的资源参差不齐&#xff0c;大部分的都不能运行&#xff0c;本人亲自测试&#xff0c;运行视频如下&#xff1a; QQ音速 搭建教程 此…

甘特图:项目管理中的任务分解工具

项目管理中是将大的项目目标划分为各个小阶段任务&#xff0c;将复杂的项目拆分为简单的任务&#xff0c;它可让事情依照一定规则或关系&#xff0c;通过一层一层来分解&#xff0c;这样要做的目标可以变为小任务。 任务分解的标准 管理项目时&#xff0c;要学会分解任务&am…

【计算机毕业设计】061互助学习微信小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

微波消解罐TFM内罐适配新拓XT9906微波消解仪主控罐副罐

我厂可定制的各个厂家微波消解仪内罐如下&#xff1a; 美国CEM、迈尔斯通、安东帕、耶拿、上海新仪、上海新拓、上海屹尧、北分瑞利、北京祥鹄、山东海能等&#xff0c;我厂特殊研发的生产工艺保证特别厂家&#xff08;如CEMMARS5、MARS6、XPRESS&#xff09;的超长罐的光洁度…

Quectel EM05-CE 模块测试

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

windows下启动redisSentinel

如果已经安装redis的就继续往下看&#xff0c;还没安装redis&#xff0c;先安装一下redis 安装完redis之后&#xff0c;打开redis的目录。 新建一个sentinel.conf文件 # 端口号 port 26379# Sentinel 监控的主节点信息&#xff0c;格式为 <master-name> <ip> &l…

用Lobe Chat部署本地化, 搭建AI聊天机器人

Lobe Chat可以关联多个模型&#xff0c;可以调用外部OpenAI, gemini,通义千问等, 也可以关联内部本地大模型Ollama, 可以当作聊天对话框消息框来集成使用 安装方法参考&#xff1a; https://github.com/lobehub/lobe-chat https://lobehub.com/zh/docs/self-hosting/platform/…

R语言数据分析案例39-合肥市AQI聚类和多元线性回归

一、研究背景 随着全球工业化和城市化的迅速发展&#xff0c;空气污染问题日益凸显&#xff0c;已成为影响人类健康和环境质量的重大挑战。空气污染不仅会引发呼吸系统、心血管系统等多种疾病&#xff0c;还会对生态系统造成不可逆转的损害。因此&#xff0c;空气质量的监测和…

第3章:数据结构

树 对稀疏矩阵的压缩方法有三种&#xff1a; 1、三元组顺序表 2、行逻辑连接的顺序表 3、十字链表 同义词才会占用同个位置&#xff0c;从而需要进行多次比较。这些关键字的第一个可以不是e的同义词&#xff0c;可以是排在e之前的关键字正好占了那个位置。 Dijkstra算法主要特点…

【想起就补】整理了一些SSH中常用的命令

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、常用命令类型2.1 远程登录相关2.2 文件操作命令2.3 权限和所有权操作命令2.4 文…

强化学习的数学原理:课程梗概与基本概念

Overview 从上图可以看见&#xff0c;整个强化学习被分为两个板块&#xff1a;一个是基础的工具&#xff0c;一个是基本的算法和方法。 基础工具包括&#xff1a;基本的概念、贝尔曼公式、贝尔曼最优公式。 算法和方法包括&#xff1a;值迭代、策略迭代、蒙特卡洛方法、时序差…

【初阶数据结构】深入解析队列:探索底层逻辑

&#x1f525;引言 本篇将深入解析队列:探索底层逻辑&#xff0c;理解底层是如何实现并了解该接口实现的优缺点&#xff0c;以便于我们在编写程序灵活地使用该数据结构。 &#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#…

四.iOS核心动画 - 图层的视觉效果

引言 在前几篇博客中我们讨论了图层的frame,bounds,position以及让图层加载图片。但是图层事实上不仅可以显示图片&#xff0c;或者规则的矩形块&#xff0c;它还有一系列内建的特性来创建美丽优雅的页面元素。在这篇博客中我们就来探索一下CALayer的视觉效果。 视觉效果 图…

喜讯!安全狗荣获“2023年网络安全技术支撑优秀单位”称号

6月6日&#xff0c;由中共厦门市委网络安全和信息化委员会办公室&#xff08;以下简称“厦门市委网信办”&#xff09;主办的2023年网络安全技术支撑优秀单位颁奖仪式在厦门成功举行。 作为国内云原生安全领导厂商&#xff0c;安全狗受邀出席此次活动。 会上&#xff0c;安全狗…

DEBOPIE框架:打造最好的ChatGPT交易机器人

本文介绍了如何利用 DEBOPIE 框架并基于 ChatGPT 创建高效交易机器人&#xff0c;并强调了在使用 AI 辅助交易时需要注意的限制以及操作步骤。原文: Build the Best ChatGPT Trading Bots with my “DEBOPIE” Framework 如今有大量文章介绍如何通过 ChatGPT 帮助决定如何以及在…