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

在这里插入图片描述

🔥 个人主页:空白诗

在这里插入图片描述

文章目录

    • 一、引言
    • 二、基本数据类型转换
      • 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)  # 输出 3c = "10"
d = int(c)
print(d)  # 输出 10e = "a123"
f = int(e)
print(f)  # 报错

使用 float()

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

a = 3
b = float(a)
print(b)  # 输出 3.0c = "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))  # 输出 Falseb = 1
print(bool(b))  # 输出 Truec = ""
print(bool(c))  # 输出 Falsed = "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)  # 输出 7c = '["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)  # 输出 97c = '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.rhkb.cn/news/420468.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

猎板通信PCB动态:苹果16系列多款设备上线,PCB供应商的机遇与挑战!

在最新的苹果供应链动态中&#xff0c;苹果公司对于PCB供应商的选择标准非常严格&#xff0c;主要考虑因素包括技术能力、生产规模、质量控制、成本效益、供应链稳定性以及环境和社会责任等。随着苹果产品技术的不断进步&#xff0c;PCB供应商也需要具备相应的技术升级能力&…

基于vue框架的成都住房租赁系统82ml7(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,房东,房屋类型,房源信息,租赁信息,合同信息,租金缴纳 开题报告内容 基于Vue框架的成都住房租赁系统开题报告 一、引言 随着城市化进程的加速和人口流动的日益频繁&#xff0c;成都作为西南地区的经济、文化中心&#xff0c;住房…

关于OceanBase 多模一体化的浅析

在当今多元化的业务生态中&#xff0c;各行各业对数据库系统的需求各有侧重。举例来说&#xff0c;金融风控领域对数据库的高效事务处理&#xff08;TP&#xff09;和分析处理&#xff08;AP&#xff09;能力有着严格要求&#xff1b;游戏行业则更加注重文档数据库的灵活性和性…

【笔记】408刷题笔记

文章目录 三对角三叉树求最小带权路径UDP报文首部和TCP报文首部IP报文首部TCP报文首部UDP报文首部 刷新和再生的区别地址译码 为了区分队空队满&#xff0c;可以使用三种处理方式 1&#xff09;牺牲一个单元 队头指针在队尾指针的下一位置作为队满的标志 队满条件&#xff1a;(…

make、cmake、qmake的区别和联系

基本概念与用途 make&#xff1a; 定义&#xff1a;make是一个用于自动化构建项目的命令行工具。用途&#xff1a;它通过读取Makefile&#xff08;或makefile&#xff09;文件来执行编译、链接等操作&#xff0c;从而构建整个项目。Makefile中定义了项目中的文件依赖关系以及…

“CSS 定位”如何工作?(补充)——WEB开发系列34

CSS定位是一个非常重要的布局工具&#xff0c;它允许我们精确地控制元素的位置&#xff0c;从而创建复杂的布局效果。定位允许你从正常的文档流布局中取出元素&#xff0c;并使它们具有不同的行为&#xff0c;例如放在另一个元素的上面&#xff0c;或者始终保持在浏览器视窗内的…

数据库设计中的需求分析

在数据库设计中&#xff0c;需求分析 是至关重要的一步。它不仅是设计过程的起点&#xff0c;也是后续步骤的基础。如果需求分析出现问题&#xff0c;那么后续所有设计阶段的结果都会受到影响&#xff0c;最终可能导致整个设计返工&#xff0c;耗费大量时间和资源。因此&#x…

KubeBlocks 如何降低管理多种数据库的学习门槛

什么是 KubeBlocks KubeBlocks 是一个开源的 Kubernetes 数据库 operator&#xff0c;能够帮助用户在 Kubernetes 上运行和管理多种类型的数据库。据我们所知&#xff0c;大多数数据库 operator 通常只能管理某种特定类型的数据库&#xff0c;例如&#xff1a; CloudNativePG…

基于SSM开发的校园心理咨询平台系统的设计与实现---附源码80915

目 录 1 绪论 1.1 研究背景 1.2开发现状 1.3论文结构与章节安排 2 校园心理咨询平台系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2.4…

安卓13删除app 链接库警告弹窗Detected problems with app native

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码修改彩蛋1.前言 有些客户的APP,打开首次会弹窗提示窗口, Detected problems with app native libraries (please consult log for detail):,需要删除这个窗口,避免挡住用户APP。而且这个提示有些app是以t…

MapBox Android版开发 4 国际化功能v11

MapBox Android版开发 4 国际化功能v11 前言遇到的问题国际化功能原文给出的方案(V10版)migrate-to-v11适用于V11版的代码 示例MapStyle类运行效果图 前言 在前文MapBox地图样式v11中&#xff0c;使用Style的localizeLabels方法本地化地图语言。但Mapbox Standard样式和Mapbox…

红队C2工具Sliver探究与免杀

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330&scene21#wechat_redirect 《网安面试指南》…

纯国产芯片LT8911EXB,MIPI转EDP信号转换器,LT8911B升级版本

以下为视频转换芯片LT8911EXB的简介 LT8911EXB MIPI DSI/CSI到eDP转换器具有单端口MIPI接收器&#xff0c;1时钟通道和4每个数据通道的最大运行速度为2.0Gbps;一个最大输入带宽为8.0Gbps。转换器解码输入MIPIDSI 16/18/24/30/36位RGB数据包&#xff0c;并将格式化的视频数据流转…

异步文件操作的革命:探索aiofiles的魔力

文章目录 异步文件操作的革命&#xff1a;探索aiofiles的魔力1. 背景介绍2. aiofiles是什么&#xff1f;3. 如何安装aiofiles&#xff1f;4. 简单的库函数使用方法5. 场景应用6. 常见Bug及解决方案7. 总结 异步文件操作的革命&#xff1a;探索aiofiles的魔力 1. 背景介绍 在现…

【Java-反射】

什么是反射&#xff1f; JAVA反射机制是在运行状态中&#xff0c;创建任意一个类&#xff0c;能获取这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调用它的任意一个方法和属性&#xff1b;这种动态获取的信息以及动态调用对象的方法的功能称为java语言…

RHEL 7 安装配置( Linux 网络操作系统 02)

一、虚拟机安装 我们的每台电脑都已经安装了VMware 虚拟机&#xff0c;其安装相当简单&#xff0c;在此不再赘述。可以参考如下链接&#xff1a; VMWare安装傻瓜式教程 &#xff08;大家可以关注老师的博客&#xff0c;也建议大家写博客。&#xff09; 二、红帽 rhel 7 安装 找…

IEC103设备数据 转 IEC61850项目案例

目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 配置VFBOX网关采集103设备数是 2 5 用IEC61850协议转发数据 4 6 网关使用多个逻辑设备和逻辑节点的方法 6 7 IEC103协议说明 8 8 案例总结 9 1 案例说明 设置网关采集IEC103设备数据把采集的数据转成IEC61850协议转发…

通过 python 的 Opstrat 绘制收益图加深期权策略理解

本文介绍介绍一个 Python 包- opstrat&#xff0c;通过它绘制期权收益图&#xff0c;帮助我们理解期权策略的收益风险比。 什么是期权收益图&#xff1f; 期权收益图展示了某个期权或期权组合的盈亏情况&#xff0c;如下图中&#xff0c;展示一张标的现价 100&#xff0c;行权…

Carfilzomib (PR-171) 蛋白酶体 (proteasome) 抑制剂AbMole介绍

AbMole Carfilzomib (PR-171)是一种不可逆的蛋白酶体 (proteasome) 抑制剂&#xff0c;IC50为<5 nM&#xff0c;在体外优先抑制β5亚基的ChT-L活性&#xff0c;对PGPH和T-L活性很弱或没有作用。 Carfilzomib (PR-171)在体外优先抑制β5亚基的ChT-L活性&#xff0c;对PGPH和…

C#游戏服务器开发框架设计与架构详解

我一直在思考一个问题&#xff0c;什么样的服务端框架最好用&#xff0c;最适合? 经过这些年的项目经验&#xff0c;其实最好用&#xff0c;最适合的游戏服务端框架就是自己结合公司项目需求,团队特点与技术能力,自己整合的游戏框架是最好用的。 很多新手会担心自己整合的框架…