1.0 Python 标准输入与输出

news2024/9/29 13:15:16

python 是一种高级、面向对象、通用的编程语言,由Guido van Rossum发明,于1991年首次发布。python 的设计哲学强调代码的可读性和简洁性,同时也非常适合于大型项目的开发。python 语言被广泛用于Web开发、科学计算、人工智能、自动化测试、游戏开发等各个领域,并且拥有丰富的第三方库和工具,使得python成为广泛应用的语言之一。同时,由于其开放性和可移植性,python在跨平台应用、开源软件开发和云计算等领域也被广泛使用。

  • python语言官网:https://www.python.org/

在这里插入图片描述

python的安装非常容易,在Windows平台下读者只需要去python官方下载与之对应的版本即可,目前python的版本为python 3.11.3如下图所示读者可点击Download python 3.11.3下载最新版本;

在这里插入图片描述

当读者下载好以后,只需要点击安装包,依次点击下一步则可将python安装到您的电脑中;

python 中的标准输入和输出是指用于读取和写入数据的默认流(stream),也称为 stdin 和 stdout。这些流可以是屏幕输入和输出,也可以是文件、管道等。

  • 标准输入:通常是用户控制台上的输入流,用于读取用户输入的数据。在python中,可以使用 input() 函数来接收标准输入,默认情况下它接收一个字符串并返回该字符串。

  • 标准输出:通常是用户控制台上的输出流,用于向控制台打印数据。在python中,可以使用 print() 函数将数据输出到标准输出流。默认情况下,打印函数(print() 函数)会将数据以字符串的形式输出到控制台。

1.1 标准输入功能

任何一门编程语言都具备标准输入与输出功能,输入输出是任何一门编程语言的最终目的,在python中,输入数据可以使用内置的input()函数来实现,该函数可传入一个字符串并在输入前打印至屏幕中,函数返回一个字符串类型读者可通过一个变量来接收函数的返回值。

>>> name = input("请输入你的名字:")
请输入你的名字:lyshark

>>> print("Hello " + name)
Hello lyshark

>>> age = input("请输入你的年龄:")
请输入你的年龄:22
>>> type(age)
<class 'str'>

# 强制类型转换
>>> age1 = input("请输入你的年龄:")
>>> age1 = int(age1)
>>> type(age1)
<class 'int'> 

读者需要注意一点,标准输入函数只能获取字符串类型的参数,而有时我们需要使用例如整数浮点数等特殊参数,则需要通过强制转换类型的方法来实现对字符串的转换,例如将一个字符串参数转换为整数,可以使用int(age1)来实现,当然除了转换为整数,python还支持如下几个强制类型转换函数;

  • int(x) 将 x 转换为整数
  • float(x) 将 x 转换为浮点数
  • str(x) 将 x 转换为字符串
  • bool(x) 将 x 转换为布尔值

如果尝试将无效的表达式或对象强制转换为某种数据类型,则可能引发TypeErrorValueError异常。因此,在进行强制转换之前,一定要确保输入的值是有效的,并且可以正确地转换为目标数据类型。

1.2 标准输出功能

有标准输入函数则必然有标准输出,在输出时读者可使用print()函数实现,该函数只需要传入一个输入字符串则可以实现输出,此外在某些时候如果我们不希望让该函数完成换行,则读者可在输入时增加end=""的参数传递实现,同时标准输入函数同样支持对字符串的动态替换功能。

>>> string = "hello lyshark"
>>> print(string)
hello lyshark

# 输出时不让其自动换行
>>> print(string,)
>>> print('hello', end = " ")

>>> string = "the length of (%s) is %d"  %("hello lyshark",len("hello lyshark"))
>>> print(string)
the length of (hello lyshark) is 13

>>> string = "hello {} --> age {}".format("lyshark",22)
>>> print(string)
hello lyshark --> age 22

>>> string = "i am %(age).2f" %{"age":22}
>>> print(string)
i am 22.00

在上述案例中,可以看到当我们需要动态替换字符串时可以将字符串中需要变化的位置通过%s(代表字符串)或者%d(代表整数)的方式进行占位,在该字符串的后面通过%()的方式对字符串依次进行填充,最终调用print输出替换后的数据,当让在新版本中读者可使用{}进行占位符填充,该方法无需自行执行参数类型,在使用时更加方便一些。

1.3 格式化的用法

在标准输出中我们简单介绍了一下格式化输出的一些功能,本次案例中将重点学习如何实现对格式化输出的控制,通常来说使用format输出可以实现很多输出细节的控制,但此方式输出还是比较麻烦,如下所示将带大家简单理解格式化函数的一些基本用法,读者通过此类方法应该能更好的掌握格式化输出的基本技巧与流程。

>>> print("i am {0}, age {1}, really {0}".format("lyshark",22))
i am lyshark, age 22, really lyshark

>>> print("i am {name}, age {age}".format(**{"name":"lyshark","age":"22"}))
i am lyshark, age 22

>>> temp = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33])
>>> print(temp)
i am 1, age 2, really 3

>>> temp = "i am {:s}, age {:d}, money {:f}".format("lyshark", 18, 8.1)
>>> print(temp)
i am lyshark, age 18, money 8.100000

>>> temp = "%r %r %r %r"
>>> print(temp%(1,2,3,4))
1 2 3 4

>>> print("网站名称:{name},地址:{url}".format(name="myblog",url="www.lyshark.com"))
网站名称:myblog,地址:www.lyshark.com

>>> site={"name":"myblog","url":"www.lyshark.com"}
>>> print("网站名称:{name} 地址:{url}".format(**site))
网站名称:myblog 地址:www.lyshark.com

>>> my_list = ['myblog','www.lyshark.com']
>>> print("网站名称:{0[0]},地址:{0[1]}".format(my_list))
网站名称:myblog,地址:www.lyshark.com

当然上述方法输出字符串还是有些复杂,为了解决这个问题,python语言在3.6之后的版本中引入了f-string格式化功能,该方法的引入解决了格式化输出是繁琐的初始化工作,在使用时只需要在字符串的外围增加f即可表示需要输出动态字符串,此时读者只需要传入特定的变量并以{}包裹,即可实现动态输出。

>>> name = "lyshark"
>>> age = 25
>>> number = 12.456

# 可直接带入变量调用
>>> f"hello, my name is {name} my age {age}"
'hello, my name is lyshark my age 25'

# 调用是指定函数
>>> f"my name is {name.upper()}"
'my name is LYSHARK'

# 如需显示大括号,则需要两次括号
>>> f"my name is {{name.upper()}}"
'my name is {name.upper()}'

# 浮点数保留位数
>>> f"this float is {number:1.1f}"
'this float is 12.5'

# ^符号居中,宽度10位,十六进制整数(大写字母),显示0X前缀
>>> number = 1234
>>> f'number is {number:^#10X}'
'number is   0X4D2   '

# <符号左对齐,宽度10位,显示正号(+)定点数格式,2位小数
>>> number = 1234.5678
>>> f'number is {number:<+10.2f}'    
'number is +1234.57  '

# datetime时间格式输出
>>> import datetime
>>> number = datetime.datetime.today()
>>> f'the time is {number:%Y-%m-%d (%a) %H:%M:%S}'
'the time is 2021-07-14 (Sat) 20:46:02'

本文作者: 王瑞
本文链接: https://www.lyshark.com/post/533eb8c0.html
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

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

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

相关文章

C#实现三菱FX-3U SerialOverTcp

设备信息 测试结果 D值测试 Y值写入后读取测试 协议解析 三菱FX 3U系列PLC的通信协议 1. 每次给PLC发送指令后&#xff0c;必须等待PLC的应答完成才能发送下一条指令; 2. 报文都是十六进制ASCII码的形式 3. 相关指令 指令 命令码&#xff08;ASCII码&#xff09; 操作原件 …

七牛云获取qn(url、bucket、access-key、secret-key)

1.注册账号 2.access-key和secret-key&#xff1a; 点击“密钥管理” 复制AK和SK即可 域名&#xff1a; bucket&#xff1a; 这个就是对象存储空间名字 先新建一个空间&#xff08;没买需要先购买&#xff09;&#xff0c;步骤如下&#xff1a; 填写存储空间名字&#xff0…

“OSError: [WinError 1455]页面文件太小,无法完成操作。”解决方案

按照下面步骤, 会发现电脑默认情况下是没有给D盘分配虚拟内存的, 所以将Python装在D盘的朋友, 在跑程序时, 没有分配虚拟内存, 自然就遇到了上面的问题, 所以根本操作只要给D盘分配虚拟内存即可 第一步&#xff1a;鼠标右击我的电脑 (此电脑)&#xff0c;点击属性进入以下界面 …

PostMessage/SendMessage在不同线程的调用探究

PostMessage和SendMessage是我们比较常用的windows API&#xff0c;最近也探究这两个api在调用之后&#xff0c;执行的线程问题&#xff0c;发现如下结论&#xff1a; 仅仅是RegisterClass注册类之后&#xff0c;调用createwindow第一个参数通过&#xff1a;(const TCHAR*)base…

three.js 地球与卫星绕地飞行【真实三维数据】

&#xff08;真实经纬度运行轨迹&#xff09; 完整代码 <template><div class"home3dMap" id"home3dMap" v-loading"loading"></div> </template><script> import * as THREE from three import { OrbitControl…

【K8S 的二进制搭建】

目录 一、二进制搭建 Kubernetes v1.201、准备环境 二、操作系统初始化配置三、部署 etcd 集群1、准备签发证书环境2、在 master01 节点上操作1、生成Etcd证书 3、在 node01 节点上操作4、在 node02 节点上操作 四、部署 Master 组件五、部署 docker引擎六、部署 Worker Node 组…

【算法|数组】手撕经典二分法

算法|数组——二分查找 文章目录 算法|数组——二分查找引言二分查找左闭右闭写法左闭右开写法 总结 引言 首先学习这个算法之前需要了解数组知识&#xff1a;数组。 大概介绍以下&#xff1a; 数组是存储在连续内存空间上的相同类型数据的集合。数组下标都是从0开始。数组在…

【SpringCloud】Gateway服务网关

Spring Cloud Gateway 是 Spring Cloud 的一个全新项目&#xff0c;该项目是基于 Spring 5.0&#xff0c;Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关&#xff0c;它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。 1.为什么需要网关…

“实现数字化转型:探索会议OA项目的高级技术与创新应用“

文章目录 引言&#xff1a;1.项目背景和需求分析&#xff1a;2.技术选型和架构设计&#xff1a;3.项目实现和功能亮点&#xff1a;3.0 layui实现登录及注册3.1 会议管理模块3.1.1 会议发布3.1.2 我的会议3.1.3 我的审批3.1.4 会议通知3.1.5 待开会议3.1.6 历史会议3.1.7 所有会…

【Leetcode】层次遍历||树深度||队列

step by step. 题目&#xff1a; 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&am…

【LeetCode】数据结构题解(13)[设计循环链表]

设计循环链表 &#x1f609; 1.题目来源&#x1f440;2.题目描述&#x1f914;3.解题思路&#x1f973;4.代码展示 所属专栏&#xff1a;玩转数据结构题型❤️ &#x1f680; >博主首页&#xff1a;初阳785❤️ &#x1f680; >代码托管&#xff1a;chuyang785❤️ &…

WordPress使用【前端投稿】功能时为用户怎么添加插入文章标签

在使用Wordpress做前端投稿功能的时候&#xff0c;可能需要用户填写文章标签&#xff0c;在插入文章的时候很多人不知道怎么把这些标签插入进去&#xff0c;下面这篇文章来为大家带来WordPress使用前端投稿功能时插入文章标签方法。 在Wordpress里 wp_insert_post 此函数的作…

Vue3核心笔记

文章目录 1.Vue3简介2.Vue3带来了什么1.性能的提升2.源码的升级3.拥抱TypeScript4.新的特性 一、创建Vue3.0工程1.使用 vue-cli 创建2.使用 vite 创建 二、常用 Composition API1.拉开序幕的setup2.ref函数3.reactive函数4.Vue3.0中的响应式原理vue2.x的响应式Vue3.0的响应式 5…

冠达管理:夜盘是什么意思?

跟着现代社会的快节奏开展&#xff0c;股票商场的运营也因而发生了相应的改变。夜盘是指在正常的买卖时刻外特别敞开的买卖商场&#xff0c;为出资者供给更多的买卖时刻和机会。夜盘的概念在我国自2002年引入以来逐渐被越来越多的出资者所熟知。那么夜盘究竟是什么&#xff1f;…

Collection 中的简单命令

一、list 集合常用的方法 LIst&#xff1a;元素存取有序、可以保存重复元素、有下标。可以存储 null 值。 ArrayList&#xff1a;底层数组结构&#xff0c;有 index&#xff0c;查询快 LinkList&#xff1a; 底层链表结构&#xff0c;增删快 添加 //确保此集合包含指定的元素…

操作系统—进程管理

这里写目录标题 进程特点并行和并发进程的状态进程的控制结构PCB包含什么信息 进程上下文切换进程上下文切换发生的场景 进程的通信方式 线程什么是线程线程的优缺点进程线程的区别线程的上下文切换线程的实现用户线程和内核线程的对应关系 用户线程如何理解、优缺点内核线程如…

在Echarts中的tooltip上添加点击按钮

需求&#xff1a; 在Echarts的tooltips中添加点击按钮并可以鼠标悬停点击该按钮 功能实现&#xff1a; 在option中的tooltip添加enterable: true的属性&#xff0c;表示鼠标可以移入tooltip中再在formatter中添加 <button onclick"onTooltipsFun()" stylecursor:…

protobuf 2定义string常量

背景 protobuf 2中定义的enum枚举值必须为数字类型&#xff0c;故不支持string类型&#xff0c;但有些业务场景又确实需要定义string常量。 目标 在protobuf 2中定义string常量。 方案 思路&#xff1a;通optional default实现string常量。 细节&#xff1a; 1、protobu…

直击HDC展区现场,华为天气开启天气+生活新方式

备受瞩目的HDC 2023 大会正式举办&#xff0c;华为天气携气象领域最新成果展现在大会现场&#xff0c;经过在线下展区实际体验过后&#xff0c;我被天气服务卡强势“种草”了。 天气与人们生活息息相关&#xff0c;面对日益复杂的天气场景&#xff0c;简单的“打开APP看天气”…

手搓单链表

文章目录 前言一、链表和顺序表的区别二、什么是单链表单链表分类单链表的结构 三、带头不循环单链表1.单链表的结构体2.带头不循环单链表的初始化和销毁3.带头不循环单链表的头插&#xff0c;尾插和打印4.带头不循环单链表的头删和尾删5.带头不循环单链表的查找&#xff0c;指…