python输入输出-python 输入输出 - 刘江的python教程
输入输出
阅读: 18476
评论:6
无论是从我们一开始的“hello world”,还是前面章节的里各种例子,基本都是些“自说自话”,展示类的代码片段。只有能够接收用户输入,根据输入动态生成结果,并输出到屏幕上展示出来,才算一个较为完整,起码是有那么点乐趣或者说成就的简单程序。
一、 input输入函数
input函数:获取用户输入,保存成一个字符串。重要的话,说两遍,input函数的返回值是一个字符串类型。哪怕你输入的是个数字1,返回给你的只会是字符串“1”,而不是
整数1。下面是一些简单的展示例子:
>>> inp = input("please input your name: ")
please input your name: jack
>>> inp
'jack'
>>> type(inp)
>>> age = input("please input your age: ")
please input your age: 18
>>> age
'18'
>>> type(age)
>>> a = input("请输入一个字符:")
请输入一个字符:
>>> a
''
>>> a = input("请输入一个字符:")
请输入一个字符: 前后带有空白
>>> a
' 前后带有空白 '
第一个例子中,inp = input("please input your name: "),input函数里可以提供一个字符串,用来给用户进行输入提示。input函数的返回值赋值给inp这个变量后,inp里就保存了用户输入的值。
type是Python内置的函数之一,非常有用,用于查看对象的数据类型。例子中的inp是一个str字符串类型,这验证了我们前面说的话。
第二个例子,我们输入了年龄18,但age里保存的是一个“18”的字符串。
第三个例子,什么都没输入,返回的是一个空字符串。
第四个例子,有效输入的前后空白被保留在了返回的字符串中。
从上面例子的展示中,我们不难发现,input函数将我们的输入原样不动的返回给了我们,并包装成一个字符串。这肯定是不行的,会带来很多问题,所以通常我们都需要对用户输入进行处理和判定。
比如对空输入进行处理:
inp = input("请输入你的姓名: ")
if inp == "":
inp = input("姓名不能为空,请重新输入: ")
比如将字符串转换成数字类型:
age = input("请输入你的年龄: ")
age = int(age) # 将字符串转化为整数
if age > 18:
print("你已经成年!")
else:
print("还没断奶?")
去除开头的空白lstrip,去除结尾的空白rstrip以及去除两端的空白strip
inp = input("请输入你的姓名: ")
inp = inp.strip() # strip的用法在字符串数据类型有讲述
print(inp)
判断输入的字符类型
前面我们在将字符串转化为整数用的是int()函数,这种方式有危险的,看下面的例子:
>>> s = "123"
>>> a = int(s)
>>> a
123
>>> s = "something"
>>> a = int(s)
Traceback (most recent call last):
File "", line 1, in
a = int(s)
ValueError: invalid literal for int() with base 10: 'something'
对于形如“123”, “283242”的字符串,转化没问题,但是对于包含字符、特殊字符的字符串就没办法转化了,会弹出异常错误。所以在使用int函数之前,要先对输入进行判断。我们修改一下上面的例子:
age = input("请输入你的年龄: ")
if age.isdigit(): # 使用isdigit函数判断输入是否全是数字格式
age = int(age) # 将字符串转化为整数
print("你的年龄是: ", age)
else:
print("输入不合法!")
input函数有时可以巧妙地用于阻塞或暂停程序
print("程序前面部分执行完毕......")
input("请按回车继续......") # 在这里程序会暂停,等待你的回车动作
print("继续执行程序的后面部分......")
此时的input函数不会将输入保存下来,只是用作暂停程序动作。
二、 print输入函数
print函数我们其实已经不陌生了,前前后后也用了不少次,多少有点经验,明白点它的用法了。
print函数用于将内容格式化显示在标准输出上,主要指的是屏幕显示器。
print可以接受多个字符串,字符串类型的变量或者可print的对象。每个字符串用逗号“,”隔开,连成一串输出。print会依次打印每个字符串,同时,每遇到一个逗号“,”就输出一个空格。
>>> a = "i am"
>>> b = "student"
>>> print(a,"a" , b)
i am a student # 自动以空格分隔
>>> print(a+"a"+b)
i amastudent # 无分隔
对于形如print(a+"a"+b)的语句,其实是先计算a+"a"+b的值,然后再通过print打印它。print()会自动执行内部的语句,输出想要的结果。再看一个例子:
>>> a = 10
>>> b = 2
>>> print(sum((a, a*b))) # 先求a*b,再求和,再打印
30
我们看一下print函数的原型:print(self, *args, sep=' ', end=' ', file=None)
sep参数: 分隔的符号,默认是一个空格;
end参数: 打印后的结束方式,默认为换行符 。如果,设置end='',则可以不换行,让print在一行内连续打印。活用print的参数,可以实现灵活的打印控制。
>>> a = "i am"
>>> b = "student"
>>> print(a,"a" , b, sep="*")
i am*a*student
三、 print格式化输出
在Python2.6以后,有两种格式化输出的方式。
一种就是类似C语言的printf的%百分号格式化输出,也是Python最基础最常用的格式化输出方式。另一种就是str.format()的方式,在后面的章节会连同颜色控制一块介绍。
这里我们重点讲述一下传统的%百分号格式化输出方式,以下面的语句为例:
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
首先构造一个字符串"我叫 %s 今年 %d 岁!",将其中需要用别的变量或值替代的部分,用%百分符加一个数据类型代号,比如%s、%d来代替。然后在字符串的后面用%加一个同样数量变量或值的元组。
也就是前面有多少个%符号,后面就要提供多少个参数值,每个参数值之间用逗号隔开,所有参数用圆括号括起来。每个参数与前面的%一一对应,并且数据类型也要能够合法对应。
这是基本用法,更多的格式见下图,请自行查阅,然后掌握格式的搭配方法。
格式化符号:
格式化操作符辅助指令:
格式化操作符辅助指令:
下面是一些经典的例子:
s = "i am %s" % "jack"
s = "i am %s age %d" % ("jack", 18)
s = "i am %(name)s age %(age)d" % {"name": "jack", "age": 18}
s = "percent %.2f" % 99.97623
s = "i am %(pp).2f" % {"pp": 123.425556, }
s = "i am %.2f %%" % 123.425556
需要特别说明的是,如果你想在print中打印一个%百分符号本身,那么你需要使用%%,两个百分符转义出一个百分符,也就是print("%%")。
如果你对print复杂的格式化控制无爱,对美观也没有要求,那么简单傻瓜式的一路用%s作为占位符,是种省事的做法。例如:
print("%s %s %s %s %s" % (a, b, c, d, e))
评论总数: 6
给小编+火腿肠
By
JACK_123_45995 On
2019年7月19日 11:30
回复
print输出函数print输出函数
By
用户5888865032 On
2019年3月20日 11:03
回复
print输入函数print输入函数
By
如果我是个大帅比 On
2019年1月7日 09:00
回复
打卡
By
我是陈独秀我还想发言 On
2018年12月15日 12:41
回复
左边的双引号似乎是全角。。。
By
_Zane On
2018年6月14日 14:34
回复
给小编打Call
By
海上有个树荫_hhh On
2018年3月11日 12:03
回复
python输入输出-python 输入输出 - 刘江的python教程相关推荐
- python教程实例-python 类和实例 - 刘江的python教程
类和实例 阅读: 19079 评论:6 类,英文名字Class,有"类别","分类","聚类"的意思.必须牢记类是抽象的模板,用来描述具有相 ...
- python 生成器_python 生成器 - 刘江的python教程
生成器 阅读: 13136 评论:7 前面我们已经好几次提到了生成器的概念.这里对其简要介绍一下. 有时候,序列或集合内的元素的个数非常巨大,如果全制造出来并放入内存,对计算机的压力是非常大的.比如, ...
- [Python基础05]输入输出选择和循环
文章目录 输入输出 1. 数据输出 2.数据输入 3. python中的输入输出 4.扩展:格式化输出 选择和循环 1.程序结构 1.2. 选择结构 2. 循环结构 2.1. for..in循环结构 ...
- python 标准输出_详解Python的标准输入输出
本篇文章给大家分享的是详解Python的标准输入输出,内容挺不错的,希望可以帮助到有需要的朋友 一.标准输入输出 1.打印到屏幕 产生输出的最简单方法是使用print语句,可以通过用逗号分隔零个或多个 ...
- python subprocess_python subprocess - 刘江的python教程
subprocess 阅读: 19172 评论:0 subprocess模块主要用于创建子进程,并连接它们的输入.输出和错误管道,获取它们的返回状态.通俗地说就是通过这个模块,你可以在Python的代 ...
- CSharp与Python中的输入输出语句对比
CSharp中的输出语句 Console.Write() Console.Write("Hello CSharp"); /* 结果 Hello CSharp */ Console. ...
- 四全集学python选哪种电脑_“Python教程哪个版本最适合学习?“python教程全集
python教程,求一套比较好的python教程 好不好主要先看你自己,理解能力样,有没有接触过编程,有没础,这很重要: 看教程,能不能先给你建立起知识体系框架,许多教程一上来就直接给你灌输知识很让人 ...
- Python 学习入门(0)—— 简明教程
朋友问我怎么能快速地掌握Python. 我想Python包含的内容很多,加上各种标准库,拓展库,乱花渐欲迷人眼,就想写一个快速的Python教程,一方面 保持言语的简洁,另一方面循序渐进,尽量让没有背 ...
- python 期货交易_Python期货量化交易基础教程(1)
(本教程基于天勤量化平台) 前言 语言: 人与人在沟通的时候,需要靠语言传递彼此的"意思",没有语言,人们就无法相互理解对方,语言是承载人们的"意思".&quo ...
- python小白从哪来开始-如何看待Python的由来?Python小白如何入门?(附教程)
"人生苦短,我用Python",你们可能已经想到这句话就来源于Python的作者-[荷兰]吉多·范罗苏姆.没错,就是上图中那个老鲜肉.其实Python出现的时候还有一个小插曲,完全 ...
最新文章
- 高性能ASP.NET系统架构设计
- windows下SVN使用 Add指令、Undo Add指令
- python foreach用法_使用foreach rdd和foreach在pysp中迭代rdd
- Java8 - 使用CompletableFuture 构建异步应用
- 2018年4月java自考真题,全国2018年4月自考互联网数据库考试真题
- ML之xgboost:基于xgboost(5f-CrVa)算法对HiggsBoson数据集(Kaggle竞赛)训练实现二分类预测(基于训练好的模型进行新数据预测)
- 12小时紧急策划 复盘一篇10W+的诞生全历程
- ASP.NET Core 介绍和项目解读
- angularjs文档下载
- c++11多线程之packaged_task<>介绍与实例
- markdown 流程图_Markdown 进阶技能:用代码画流程图(编程零基础也适用)
- python包标准类型和动态导入模块和多态和反射和授权
- shell学习资料:shell十三问
- java。用类描述计算机中CPU的速度和硬盘的容量。要求Java应用程序有4个类,名字分别是PC、CPU、HardDisk和Test,其中Test是主类。
- C# DevExpress控件安装使用教程
- 抖音实战~手机号一键注册登录流程(验证码)
- 汽车电子显示屏尺寸以及分辨率参照表
- 小米 13 系列新品发布会将延期举行;马斯克:和苹果的误解得到了解决;IntelliJ IDEA 2022.3 发布|极客头条
- Velocity User Guide 用户手册
- 广东未来科技AI立体数码相机:因细节而闪耀
热门文章
- android使用java library module时初始化OkHttpClient时报错 ClassDefNotFoundError之类的
- Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量
- 位于/var/log目录下的20个Linux日志文件
- express支持i18n国际化
- '+' 拼接字符串引起的小事故
- 登上软件开发的和谐号
- springboot 应用中静态资源下载
- SQLite数据库管理工具(SQLiteStudio)v3.1.1
- linux下安装sz/rz命令
- jqury+css实现可弹出伸缩层