【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.mzph.cn/web/37471.shtml

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

相关文章

DM表级触发器

可以理解为行变动级 触发体中写逻辑 这是表修改时调用存储过程 感谢大哥分享: https://blog.csdn.net/WuLex/article/details/83181449 感谢大哥分享: https://blog.csdn.net/ChennyWJS/article/details/131913198

湘潭大学软件工程信息与网络安全复习笔记最后一篇

文章目录 复习建议分数占比流密码A5/1RC4 分组密码DESAES 复习建议 现在笔者复习算是收尾了&#xff0c;现在也是考前的最后一天了&#xff0c;走了不少弯路&#xff0c;但是可能也是必不可少的&#xff0c;复习建议是硬着头皮把这份文件看一遍&#xff0c;不理解的地方找英文…

如何使用sr2t将你的安全扫描报告转换为表格格式

关于sr2t sr2t是一款针对安全扫描报告的格式转换工具&#xff0c;全称为“Scanning reports to tabular”&#xff0c;该工具可以获取扫描工具的输出文件&#xff0c;并将文件数据转换为表格格式&#xff0c;例如CSV、XLSX或文本表格等&#xff0c;能够为广大研究人员提供一个…

【SpringCloud】Ribbon源码解析

ribbon是一个负载均衡组件&#xff0c;它可以将请求分散到多个服务提供者实例中&#xff0c;提高系统的性能和可用性。本章分析ribbon是如何实现负载均衡的 1、LoadBalanced 消费者在引入ribbon组件后&#xff0c;给http客户端添加LoadBalanced注解就能启用负载均衡功能。Load…

压缩包怎么解压,解压压缩包不损坏文件

常见格式&#xff1a; ZIP&#xff1a;最常见的压缩文件格式之一&#xff0c;支持跨平台。RAR&#xff1a;另一种常见的压缩文件格式&#xff0c;通常压缩率比ZIP高&#xff0c;但不如ZIP普及。7Z&#xff1a;来自7-Zip的压缩格式&#xff0c;支持更高的压缩率和一些高级特性。…

手机照片数据恢复,2个技巧解决你的疑惑与困扰

手机照片是我们日常生活中记录美好瞬间的重要工具&#xff0c;然而&#xff0c;当照片存储量越来越大&#xff0c;以至于手机内存不足时&#xff0c;我们就不得不放弃一部分。照片数据恢复是否还有希望呢&#xff1f;当然啦&#xff01;本文将为你提供2个实用的技巧&#xff0c…

虚拟机配置与windows之间文件夹共享samba服务:

虚拟机配置与windows之间文件夹共享samba服务: #输入安装命令&#xff1a; 第一步: 下载samba cd /etc/ sudo apt-get install samba第二步: 配置用户 sudo smbpasswd -a 虚拟机用户名第三步: 进入配置文件配置共享文件 sudo vim /etc/samba/smb.conf末尾输入以下内容: [s…

经典递归题 扩充序列 两种做法

一道经典递归题&#xff0c;两种做法&#xff0c;常规递归做法和模拟数学规律解法 3695. 扩充序列 - AcWing题库 扩充序列 样例解释 对于样例 1&#xff0c;经过 2 次扩充&#xff0c;得到序列 [1,2,1,3,1,2,1]其第 2 个元素为 2。 对于样例 2&#xff0c;经过 3次扩充&…

对不起,AI大模型不是风口

“我们正处在全新起点&#xff0c;这是一个以大模型为核心的人工智能新时代&#xff0c;大模型改变了人工智能&#xff0c;大模型即将改变世界。”——5月26日&#xff0c;百度创始人、董事长兼CEO李彦宏先生在2023中关村论坛发表了《大模型改变世界》演讲。 李彦宏指出&#…

【SpringCloud】Hystrix源码解析

hystrix是一个微服务容错组件&#xff0c;提供了资源隔离、服务降级、服务熔断的功能。这一章重点分析hystrix的实现原理 1、服务降级 CAP原则是分布式系统的一个理论基础&#xff0c;它的三个关键属性分别是一致性、可用性和容错性。当服务实例所在服务器承受过大的压力或者受…

前端工程化09-webpack静态的模块化打包工具(未完结)

9.1、开发模式的进化历史 webpacks是一个非常非常的强大的一个工具&#xff0c;相应的这个东西的学习也是有一定的难度的&#xff0c;里边的东西非常的多&#xff0c;里面涉及到的 概念的话也是非常非常的多的。 这个东西既然非常重要&#xff0c;那么在我们前端到底处于怎样…

HCIA4.26-5.10

OSPF ——开放式最短路径优先协议 无类别链路状态IGP动态路由协议 距离矢量协议 运行距离矢量协议的路由器会周期性的泛洪自己的路由表&#xff0c;通过路由之间的交互&#xff0c;每台路由器都从相邻的路由器学习到路由条目&#xff0c;随后加载进自己的路由表中。对于网络…

Python代码分析和修复工具库之coala使用详解

概要 代码质量在软件开发中至关重要,保持代码的可读性、一致性和易维护性是每个开发者的目标。coala 是一个开源的代码分析和修复工具,旨在帮助开发者自动化代码质量检查,支持多种编程语言,包括 Python、C++、JavaScript 等。通过使用 coala,开发者可以方便地集成代码检查…

AI时代的软件工程:挑战与改变

人工智能&#xff08;AI&#xff09;正以惊人的速度改变着我们的生活和工作方式。作为与AI关系最为密切的领域之一&#xff0c;软件工程正经历着深刻的转变。 1 软件工程的演变 软件工程的起源 软件工程&#xff08;Software Engineering&#xff09;是关于如何系统化、规范化地…

input调用手机摄像头实现拍照功能vue

项目需要一个拍照功能&#xff0c;实现功能如下图所示:若使用浏览器则可以直接上传图片&#xff0c;若使用手机则调用手机摄像头拍照。 1.代码结构 <!--input标签--> <input ref"photoRef"type"file"accept"image/*"capture"envir…

基于多源数据的密码攻防领域知识图谱构建

源自&#xff1a; 信息安全与通信保密杂志社 作者&#xff1a;曹增辉 , 郭渊博 , 黄慧敏 摘 要 提高网络空间安全的密码攻防能力&#xff0c;需要形成可表示、可共享、可分析的领域知识模式和知识库。利用自顶向下的构建方法&#xff0c;并通过本体构建方法梳理密码攻防领域…

IPSec:互联网协议安全机制的深度解析与应用

目录 一、IPSec概述 二、IPSec的组成 三、IPSec的工作原理 四、IPSec的用途 IPSec&#xff08;Internet Protocol Security&#xff09;作为现代网络通信中不可或缺的安全基础设施&#xff0c;旨在为基于IP&#xff08;Internet Protocol&#xff09;的数据传输提供端到端的…

【Linux】虚拟机安装openEuler 24.03 X86_64 教程

目录 一、概述 1.1 openEuler 覆盖全场景的创新平台 1.2 系统框架 1.3 平台框架 二、安装详细步骤 一、概述 1.1 openEuler 覆盖全场景的创新平台 openEuler 已支持 x86、Arm、SW64、RISC-V、LoongArch 多处理器架构&#xff0c;逐步扩展 PowerPC 等更多芯片架构支持&…

iptables 防火墙(一)

iptables 防火墙&#xff08;一&#xff09; 一、Linux 防火墙基础防火墙分类 二、iptables 的表、链结构规则表规则链数据包过滤的匹配流程 三、编写防火墙规则iptables 的安装iptables的基本语法规则的匹配条件通用匹配隐含匹配显式匹配 四、总结 在网络安全的世界里&#xf…

XRP对接文档

XRP对接文档 技术预研 参考文档 官方文档: https://xrpl.org/list-xrp-in-your-exchange.html 官方文档: https://xrpl.org/list-xrp-as-an-exchange.html#flow-of-funds 交易所对接XRP(内容齐全, 很推荐) https://blog.csdn.net/weixin_40396076/article/details/10020207…