Python教程(2.5)——控制台输入
写Python程序时,你可能希望用户与程序有所交互。例如你可能希望用户输入一些信息,这样就可以让程序的扩展性提高。
这一节我们来谈一谈Python的控制台输入。
输入字符串
Python提供一个叫做input()的函数,用来请求用户输入。执行input()函数时,程序将会等待用户在控制台输入信息,当用户输入换行符(即enter)时,返回用户输入的字符串。
例如:
>>> name = input()
这将会等待用户输入一行信息。注意接下来的一行开头处没有>>>命令提示符,因为>>>是指示用户输代码的,这里不是代码。
具体例子(输入的字符串为Charles,你也可以输入别的):
>>> name = input()
Charles
>>> print('You entered:', s)
You entered: Charles
但这里也有一个问题:不了解程序的用户,看见程序等待输入,不知道要输入什么。如果有提示文字不就更好了吗?如果你学过其它编程语言,你可能会这样写:
print('Enter your name:')
name = input()
然而Python提供了更简洁的写法:input()可以接受一个参数,作为提示文字:
>>> name = input('Enter your name: ')
这样,等待输入就变成这个样子了(仍以Charles为例):
Enter your name: Charles
一个完整的例子:
>>> fname = input('Enter your first name: ')
Enter your first name: Charles
>>> lname = input('Enter your last name: ')
Enter your last name: Dong
>>> print('Your name: %s, %s' % (lname, fname))
Your name: Dong, Charles
输入数字
那输入数字呢?你可能会想这么做:
>>> height = input('Enter your height, in centimeters: ')
然后输出:
>>> print('You\'re', height, 'cm tall.')
也没有问题。
但如果这样写:
>>> print('You\'re 1 cm taller than', height - 1, 'cm.')
你会得到:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'int'
注意最下面一行:
TypeError: unsupported operand type(s) for -: 'str' and 'int'
意思是说,-两边的参数分别是str和int,而-运算符不能用在这两种类型之间!
原来,input()返回的是一个str,返回值被赋给height,因此height也是str类型。height-1就是str和int进行减法了。
那怎么办呢?联系之前说的类型转换知识,把input()的返回值转换成我们所需要的int类型就可以了:
>>> height = int(input('Enter your height, in centimeters: '))
现在再试一下,是不是没有问题了。
输入非str变量的格式:
var = type(input(text))
var为输入变量,type为要输入的类型,text为提示文字。
不过这里还有一个小问题:无法在一行输入多个数字。这个问题将在后面解决。
小结
1. 使用input()进行输入。
2. 对于非字符串类型,需要进行转换,格式为type(input(text))。
练习
1. 要求用户输入身高(cm)和体重(kg),并输出BMI(Body Mass Index)。BMI=体重/(身高**2),体重单位为kg,身高单位为m。下面是一个例子:
Enter your height, in cm: 175
Enter your weight, in kg: 50
Your BMI: 16.3265306122449
注意输入的身高需要转换成以m为单位。
Python教程(2.5)——控制台输入的更多相关文章
- Python教程(2.1)——控制台输入
这一节,我们来学习如何写一个简单的Python程序. 我们知道,很多编程语言一开始就是学习怎么输出"Hello, world",对吧?那么,现在我们来学习怎么用Python输出&q ...
- python 教程 第十章、 输入/输出
第十章. 输入/输出 1) 文件 poem = '''Programming is fun use Python!''' f = file('poem.txt', 'w') # open for ...
- 《简明python教程》笔记一
读<简明Python教程>笔记: 本书的官方网站是www.byteofpython.info 安装就不说了,网上很多,这里就记录下我在安装时的问题,首先到python官网下载,选好安装路 ...
- (原+转)简明 Python 教程:总结
简明 Python 教程 说明:本文只是对<简明Python教程>的一个总结.请搜索该书查看真正的教程. 第3章 最初的步骤 1. Python是大小写敏感的. 2. 在#符号右面的内容 ...
- Python教程(0)——介绍
What's Python? Python是一种编程语言,由荷兰人Guido van Rossum于1989年,为打发无聊的圣诞节而开发的. Python的优点是语法简洁,代码量比C/C++.Java ...
- 笔记|《简明Python教程》:编程小白的第一本python入门书
<简明Python教程>这本书是初级的Python入门教材,初级内容基本覆盖,对高级内容没有做深入纠结.适合刚接触Python的新手,行文比较简洁轻松,读起来也比较顺畅. 下面是我根据各个 ...
- 简明Python教程自学笔记——命令行通讯录
[前言]学习Python已经有一段时间了,相关的书籍资料也下载了不少,但是没有一本完整的看完,也没有编出一个完整的程序.今天下午比较清闲就把<简明Python教程>看了一遍,然后根据书里面 ...
- 【转】简明 Python 教程
原文网址:http://woodpecker.org.cn/abyteofpython_cn/chinese/ 简明 Python 教程Swaroop, C. H. 著沈洁元 译www.byteof ...
- python教程(一)·命令行基本操作
先来了解下 "命令提示符". 等等?!既然本篇文章标题是"命令行基本操作",那怎么又说到"命令提示符"去了呢?客官莫要急,且听我说 命令提示 ...
随机推荐
- 原生JS跨浏览器事件封装处理
引子:用javascript给元素绑定事件,我们可以用addEventListener这个方法,然而这个方法有兼容问题,比如在IE浏览器上面就无效,在IE上面要用attachEvent这个方法 一.a ...
- java多线程基本概述(五)——线程通信
线程之间的通信可以通过共享内存变量的方式进行相互通信,也可以使用api提供的wait(),notify()实现线程之间的通信.wait()方法是Object类的方法,改方法用来将当前的线程置入&quo ...
- java复习(9)---数据库JDBC
java写工程当然需要连接数据库.JDBC技术是连接数据库和应用程序的纽带,本节主要说明如何连接数据库. java中提供sql类. package re09; import java.sql.*; p ...
- 【Windows 10 应用开发】输入模拟
---恢复内容开始--- Input Injection 直译为:输入注入.通俗的译法为:模拟输入.此注入行为可以模拟以下几种输入行为: 1.键盘按键. 2.鼠标. 3.触控. 4.书写笔输入. 5. ...
- tomcat的环境搭建
tomcat搭建过程还是比较简单的,只需要安装好jdk,然后配置好环境变量,最后把tomcat安装上开启就可以了. 首先下载jdk,然后把下载下来的jdk放到/usr/local下,然后用rpm -i ...
- sass入门学习篇(二)
从语法开始但是语法也不是一两句的事情,首先看基本的导入,使用 一,sass有两种后缀名文件:一种后缀名为sass,不使用大括号和分号:另一种就是我们这里使用的scss文件,建议scss. 二,导入 使 ...
- css常用的属性方法 上篇
自己是从java后台自学转前端的,所以平时一些简单的css+html就不写了,列出的都是新手常用的一些属性,会持续更新,大神勿喷,留给新手做个参考! 尤其是跟我一样自学前端的. 背景关联 ba ...
- Printk与sched_clock_init的一点分析
在分析Linu内核启动的过程中,发现一段"不平常"的日志,感觉产生这段日志的代码肯定是"不可思议"的.因此就大致分析了一下: 日志如下: [ 0.000000] ...
- Android开源项目库汇总
最近做了一个Android开源项目库汇总,里面集合了OpenDigg 上的优质的Android开源项目库,方便移动开发人员便捷的找到自己需要的项目工具等,感兴趣的可以到GitHub上给个star. 抽 ...
- ESXi5.0误删除虚拟机还有办法恢复吗?答案是可以!
[数据恢复故障描述]故障的虚拟化系统是 ESXi5.0,连接了多个LUN,其中一个1T的LUN上跑有7 台虚拟机,均为Windows Server 2003,管理员因为其它原因误删除了一台虚拟机,此台 ...