更好的排版阅读体验,请移步 微信端

开篇

前面两期详细的介绍了字符串及其相关操作,在今后的编程中,你将经常和字符串打交道。一个比较常见的场景就是输入输出,所以本期将结合字符串,讲述最基本同时也是最常用的输入输出语法(input和print),并且会在文章最后补充一些之前没有讲到的字符串的内容。

input()用于接收用户的输入

input()用于接受用户的输入。

>>> input()

当你写入以上代码,并按下回车键后,你会发现光标在闪动,这是在提示你要输入一些东西。

当输入完成后,再按一次回车,你所输入的东西便会打印出来显示在屏幕上,就像下面这样:

图中,黑色的字是我输入的,蓝色的字是打印输出在屏幕上的。

那如果不想打印输出在屏幕上,而是想将输入的内容保存起来,又应该怎么做呢?

简单!只要用一个变量接收input()的输入内容就搞定啦!

这样,输入的内容就被保存在变量x中了。

细心的你或许已经发现了,蓝色的字被一对''包裹着,这不正是之前学习的字符串类型吗?

没错!事实上,你输入input()中的任何类型的数据,都会变成字符串类型。

你可能不太信,因为上面的栗子中,我输入的内容我将在南极找寻你本身就是个字符串类型的,所以输出的自然也是字符串咯。为了证明我说的是对的,咱们可以试着输入一个数字,看看出来的是不是还是数字类型。

看吧,输入的数字2333也变成了字符串str类型。

以上就是input()的基本用法。

那你可能又会想:在提示输入时只有一个光标闪动会不会太不明显了?能不能加一些提示信息呢?

可以!input()中的()里面可以添加提示信息,看这个栗子:

蓝色的字是打印的提示信息,22是我的输入,它被保存在了变量age中。

学会使用print()

大家应该对print()不陌生了,之前的几期内容中也提到过它,今天就对它的常见用法做一个总结。

最基本的,就是将目标内容输出显示到屏幕上:

看起来有些单调,所以可以添加一些描述性的语句,这些语句是字符串类型,所以需要包裹到一对引号内,看下面的栗子:

这样看起来就清晰很多,不至于只有一个数字22而无任何其他信息。

但是对于稍稍有些强迫症的我来说,这还不够完美,因为在输出到屏幕上的内容中,'我的年龄是'和22之间有一个空格,我想要让他们之间无缝对接,那应该怎么做呢?

其实也不难。print()提供了一个seq的参数,可以使你自己设置被逗号分隔的两段内容(这里就是'我的年龄'和age)在输出时用什么符号连接,如果不设置,也就是什么都不写,那么默认就是用空格连接起来。

所以,我们只要将seq设置为空就可以了,就像下面这样:

当然,你也可以设置为:,*,+以及其他你能想到的字符。

现在考虑这么一个问题:

已知两个人的年龄,要求你将两个人的年龄输出到屏幕上(不限格式)。

可以创建一个脚本文件,内容如下:

age1=22

age2=23

print('第一个人的年龄是',age1)

print('第二个人的年龄是',age2)

你将在屏幕上看到以下输出结果:

这时候,题目增加了一个要求:两个print()语句输出的内容必须显示在同一行。

这应该如何实现呢?

其实,print()语句默认在运行结束后打印一个换行符,我们可以通过end参数来修改,比如end='*'表示在运行结束后打印一个*而不是换行符。

所以,问题解决了,在第一个print()语句中指明end为空格即可:

age1=22

age2=23

print('第一个人的年龄是',age1,end=' ')

print('第二个人的年龄是',age2)

输出:

第一个人的年龄是 22 第二个人的年龄是 23

总结一下:

end用于指明在执行完print()语句之后附带着打印的符号,若不指明,则使用默认的换行符

sep用于指名在同一个print()中,用逗号分隔的每个部分之间连接的符号,若不指明,则使用默认的空格

print()的格式化输出

方法1.类似C语言的方法

如果你没有学习过C或者早已忘记了C也不影响阅读,因为下面要讲的跟C本身并无直接关系。

在Python的print()中,可以使用以%开头的东西来占位置,所以形象的称之为占位符。主要有3种,分别是%d,%f,%s,分别对应了整数,浮点数(小数)和字符串。

看下面这个栗子:

>>> age1=22

>>> age2=23

>>> print('第一个人的年龄是%d,第二个人的年龄是%d'%(age1,age2))

第一个人的年龄是22,第二个人的年龄是23

注意,后面的%(age1,age2)中变量的顺序要与前面的占位符的顺序一一对应

再上个栗子,自己跟着敲一下,基本就掌握了。

>>> name='小明'

>>> age=18

>>> favorate_number=3.1415926

>>> print('%s今年%d岁了,他最喜欢的数字是%.2f'%(name,age,favorate_number))#%.2f是指保留两位小数

小明今年18岁了,他最喜欢的数字是3.14

方法2.使用format,用{}作为占位符(ps:我自己经常使用的是这个)

如果占位符{}内什么也不写,那么每一个{}就会按出现的顺序与format中的变量名一一对应,举个栗子就清楚啦:

>>> name='小明'

>>> age=18

>>> favorate_number=3.1415926

>>> print('{}今年{}岁了,他最喜欢的数字是{}'.format(name,age,favorate_number))

小明今年18岁了,他最喜欢的数字是3.1415926

如果占位符{}写了下标,那么format中变量名的位置下标必须与format中的下标从小到大一一对应,看这个栗子:

>>> name='小明'

>>> age=18

>>> favorate_number=3.1415926

>>> print('{1}今年{2}岁了,他最喜欢的数字是{0}'.format(favorate_number,name,age))

小明今年18岁了,他最喜欢的数字是3.1415926

结合下图,或许你能更好的理解上面这个栗子

还有一种情况,就是{}传入的不仅可以是下标,还可以是变量的名字,此时format中传入的是变量名=内容,看栗子:

>>> name='小明'

>>> age=18

>>> favorate_number=3.1415926

>>> print('{name}今年{age}岁了,他最喜欢的数字是{favorate_number}'.format(favorate_number=favorate_number,name=name,age=age))

小明今年18岁了,他最喜欢的数字是3.1415926

字符串的补充内容

在上面关于print()的学习中,我们遇到了换行符,以%开头的占位符等,这些东西又可以牵扯出字符串的几个知识点,下面来看一下。

1.转义字符

Python中使用\代表其后面的第一个字符是普通的字符串,而不是Python中具有某些功能的标识。比如,我想要输出I'm ok到屏幕上,直接写

x='I'm ok'

print(x)

会报错,因为Python认为I被一对单引号包裹,单独成一部分,而后面的m ok'是另一部分。这样,由于后面那部分只有右侧的单引号而没有左侧的单引号,所以产生了语法错误。

这时候,转义字符\就派上用场了!

>>> x='I\'m ok'

>>> print(x)

I'm ok

在\后面的'被认为是一个普通的字符,从而可以直接打印输出了。

还有一种特殊情况,就是在上面的格式化输出中,会用到%s,那万一字符串中正好有一部分叫做%s呢?百字不如一栗,上栗子:

在这个栗子中,有个人的名字叫做"王%s"

>>> age=18

>>> favorate_color='black'

>>> print('王%%s的年龄是%d,王%%s最喜欢的颜色是%s'%(age,favorate_color))

王%s的年龄是18,王%s最喜欢的颜色是black

看,这里的%也充当了转义字符的作用,它使得%s中的%不作为具有某些功能的符号,而只是一个普通字符。

2. 常用转义字符

(本图源自网络)

3.防止转义

看这个栗子:

由于字符串中包含转义字符\,所以会报错。

所以这里要考虑防止转义。

解决方法也很简单,那就是在转义字符\前面再加一个\,这样,\\代表的意思就是一个普通的反斜杠了:

其实,Python还提供了另一种更简单的方法,那就是在要防止转义字符生效的字符串前面加一个r,这个过程正好与上面的转义功能相反

看,在字符串前面加一个r就可以防止转义了,这和加两个\\的作用一模一样:

有问题留言区见,加油!

python 输入字符串_输入输出,字符串如影随形 | Python基础连载(五)相关推荐

  1. python输入时间_【转】python 输入一个时间,获取这个时间的下一秒

    输入一个时间,获取这个时间的下一秒 PS:下面代码使用于 python 2.7 time1 = raw_input("输入一个时间[HH:MM:SS]:") time1List = ...

  2. python 输入中文_【提醒】Python新手开发人员注意事项:不要误输入中文标点符号...

    之前看到很多小白程序员,包括Python的小白,在写(编程语言的)代码时,把别人教程中英文字符,误写成中文的各种标点符号,导致代码报错. 比如: 其中很明显可以看出: 对此问题,在此,写贴专门解释此问 ...

  3. 查看Python的版本_查看当前安装Python的版本

    一.查看Python的版本_查看当前安装Python的版本 具体方法: 首先按[win+r]组合键打开运行: 然后输入cmd,点击[确定]: 最后执行[python --version]命令即可. 特 ...

  4. c int转字符串_【C++实现python字符串函数库】字符串匹配函数startswith与endswith

    [C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...

  5. python快乐数字_和你学Python之Python数据类型之数字、字符串和列表

    圣诞节快乐 昨天学了python基础,今天开始学习数据类型,加油鸭! 惨绿青年:python有6种数据,分别是number(数字).string(字符串).list(列表).dictionary(字典 ...

  6. python 列表转字符串_和你学Python之Python数据类型之数字、字符串和列表

    昨天学了python基础,今天开始学习数据类型,加油鸭! 惨绿青年:python有6种数据,分别是number(数字).string(字符串).list(列表).dictionary(字典).tupl ...

  7. python格式化字符串_阿博的Python之路详解String数据类型

    这是阿博的第16篇文章 之前分享了Python的Number数据类型,今天给大家详细讲一下我学习到Python的String数据类型.在日常开发当中String类型应该是我们最常使用到的数据类型,那么 ...

  8. python encode函数_关于字符串:在python中使用unicode()和encode()函数

    我在对路径变量进行编码并将其插入到sqlite数据库时遇到问题.我试图用没有帮助的编码("utf-8")函数来解决这个问题.然后我使用了unicode()函数,它给了我unicod ...

  9. python怎么编辑程序_少儿编程:Python系列24——字符串的替换和检索

    #少儿编程# 因为会汉语拼音了,小po最近迷上打字,他经常会为我们家制作一张购物清单(其实就是他想吃的东西),如图1,然后把这张购物清单作为字符串赋值到一个变量里. 图1 这次他刚做完,就发觉奶豆和奶 ...

  10. python限制输入类型_《计算机二级Python语言程序设计考试》第3章:基本数据类型...

    考纲考点数字类型:整数类型.浮点数类型和复数类型 数字类型的运算:数值运算操作符.数值运算函数 字符串类型及格式化:索引.切片.基本的format()格式化方法 字符串类型的操作:字符串操作符.处理函 ...

最新文章

  1. 如何清理镜子上的水渍:亲测有效
  2. Failed to capture snapshot of output files for task ':UserAppModule:packagePreDebug' property 'outpu
  3. halcon hough_lines 霍夫直线变换
  4. 数据结构与算法--实现Singleton模式
  5. 计量经济学实验报告计算机,计量经济学-实验报告.doc
  6. python --version没输出_如何在Linux上安装Python
  7. vSwitch报文转发分析
  8. python五子棋代码tkinter_python使用tkinter开发一款五子棋游戏
  9. SQL Server 2016中的新PowerShell Cmdlet
  10. 学习dicom没什么窍门
  11. 会议OA项目---我的审批(审批会议签字)
  12. 遇见未来 | 对话朱贤文,PostgreSQL是一匹即将发力的黑马
  13. 体验部署ThinkAdmin
  14. 分享150个PHP源码,总有一款适合您
  15. 国产28nm制程光刻机突破在即,助力国产芯片
  16. 3阶段魔方 2层以后口诀
  17. Janus源码分析(1)——源码结构
  18. 2008 Cest la vie
  19. Python Monte Carlo K-Means聚类实战研究
  20. oracle默认表达式uuid,Oracle中生成uuid的方法

热门文章

  1. 获取客户端ip_代理IP工具能否解决反爬?
  2. android照片备份软件下载,照片备份云相册app下载-照片备份云相册下载V1.9安卓版-西西软件下载...
  3. pcie3.0一条通道带宽_小技巧|内存双通道提升性能
  4. php程序xml有必要学习吗,对初学者非常有用的PHP技巧
  5. 安装虚拟机后,启动出错的解决办法
  6. pat 乙级 1027 打印沙漏(C++)
  7. 工业交换机防护等级介绍
  8. 渝粤教育 陕西师范大学 《金融中介学Ⅰ》作业
  9. mysql全文索引含义_【分针网】MySQL全文索引应用简明教程
  10. 解决MATLAB不能设置为.m文件默认打开方式