【python系统学习05】input函数——实现人机交互

input函数

目录

input用途

实现人机交互:

1、你提出问题打印在屏幕上,

2、运行程序的人再输入回答。

3、按下回车,程序得到收集来的回答

4、之后,逻辑向下继续运行。

我们写的程可以实现根据他输入的回答进行不同的逻辑走向。


语法

示例

result = input(‘你爱我吗?请输入:‘) 

if result == ‘不‘:
  print(‘哼!你个大猪蹄子!‘)
else:
  print(‘me too!!!‘))
# 拿着搜集到的结果数据“result”的值来处理我们的程序,根据result的值不同,逻辑走向也就不同。

你提出的问题就是小括号“()”里边的那段字符串。result接受的就是运行的人输入的回答。运行的人按下回车,流程向下继续走。

参数

是一句话,只要填写你要询问客户的问题或你想输入、表达出来的任何数据,都行。且任何数据类型的皆可。

比如下边几个不同参数的示例:

a、字符串类型的参数

result = input(‘你爱我吗?请输入:‘)
# 运行时会打印:你爱我吗?请输入:

b、数字类型 参数

result = input(520)
# 运行时会打印:520

c、布尔类型 参数

result = input(True)
# 运行时会打印:True

d、甚至复杂类型(日后要整理的列表)参数都可以!

result = input([1,2,3])
# 运行时会打印:[1,2,3]

返回值

1、正常情况下

返回的就是用户输入的内容。

BUT??, input函数的返回值,一定是字符串格式的。

也就意味着result变量肯定是字符串类型的数据。

result = input(‘你爱我吗?请输入:‘)
print(type(result)) # <class ‘str‘>

控制台交流如下:

“你爱我吗?请输入:”

此时我输入了123,还是纯数字键盘输入的123喔。

然后观察print的result类型,发现是<class ‘str‘>,字符串格式。

2、非正常情况下

那么,我用户不回答,直接回车跳过你这个问题呢?返回值是啥?看图说话:

任性的用户的操作

可以看到图中最后一行打印的依旧是<class ‘str‘>,字符串格式。说明用户不输入,result接收的、或者说input返回的值是一个字符串形式的空串。

至于函数相关内容。我学过js接受起来很方便。可能零基础看起来就不爽了。

什么是参数、什么是返回值。。。心里一千个草泥马沸腾。

这个也按下不表,日后详谈。

但是说回正题。我们平时写逻辑,得把用户输入的可能性都考虑进去。也就是result如果不符合我们期望的情况,都考虑进去。

比如我上例中,result只要不是“不”字,就都走到else的情况了。


返回值数据类型转换

上边强调了好几遍,input函数赋值给变量后,变量肯定是字符串格式。

马上要过年了,过年肯定要见你的七大姑八大姨吧!

那么假如我们对input有以下使用场景呢:


age = input(‘石头,你今年多大啦!‘)
if age > 24:
  marryBu = input(‘哎呀!那你有对象了吗?打算啥时候结婚啊!‘)
elif age < 24:
  whereWork = input(‘工作啦!那你年薪多少啊现在!‘)
else:
  print(‘哎吆,24不小了!我儿子24岁那年,他儿子都出生啦!‘)
print(‘允许这里有个白眼!???‘)

好,那我们来分析这段程序。

运行你就会发现,这段程序肯定会报错。

报错啦!

TypeError的错误,具体错误分析就去这里看,不赘述。

但是简而言之呢,就是说咱们截图中输入的 12 ,他是个字符串。

而到了下边if、else里,age和数字24来做判断。

python作为强类型语言对这样写法是零容忍的,所以就报错了。

说了这么多废话呢,就一句话概括:
针对input的返回值使用时,注意进行类型转换。 需要把字符串转换成你需要的其他类型再进行if判断。

上述代码改进如下:

age = input(‘石头,你今年多大啦!‘)
if int(age) > 24:
  marryBu = input(‘哎呀!那你有对象了吗?打算啥时候结婚啊!‘)
elif int(age) < 24:
  whereWork = input(‘工作啦!那你年薪多少啊现在!‘)
else:
  print(‘哎吆,24不小了!我儿子24岁那年,他儿子都出生啦!‘)
print(‘允许这里有个白眼!???‘)

最后放一下运行成功的图。(偷偷告诉你,主要是因为我喜欢那个白眼。)

白眼

从根源上改进的写法如下:

# age = input(‘石头,你今年多大啦!‘)
age = int(input(‘石头,你今年多大啦!‘))
if age > 24:
  marryBu = input(‘哎呀!那你有对象了吗?打算啥时候结婚啊!‘)
elif age < 24:
  whereWork = input(‘工作啦!那你年薪多少啊现在!‘)
else:
  print(‘哎吆,24不小了!我儿子24岁那年,他儿子都出生啦!‘)
print(‘允许这里有个白眼!???‘)

容错处理

?? 接上文。

int()强制类型转换的同时,你得确保用户输入的是可以用int转换的数据——即整数。如果他输入浮点数、布尔值、中英文字符串等,咱们上边写法的程序可能就挂了。

所以还是那句话,涉及到和用户打交道的时候,你必须得做容错处理。即你得把所有可能性都想到,因为你不能保证用户输入啥!

我觉得这也是前端苦逼的地方之一吧。??


动手吧

说了这么多,你也来写一写吧!

实现效果:

1、【简单】让用户输入自己的名字,然后打印出来“hello!用户的名字”

需要用到inputprint变量赋值

2、【困难】汇率计算器:让用户输入要兑换的币种,再输入目标币种。输入用户的金额。输出转换后的结果。(文字描述枯燥,效果可百度“汇率计算”,看搜索结果的第一条在线小工具。体验过后用python实现)

需要用到inputif语句类型转换print变量赋值算术运算符及表达式等前边铺设过的知识点。

原文地址:https://www.cnblogs.com/padding1015/p/12215979.html

时间: 2024-10-25 11:19:36

【python系统学习05】input函数——实现人机交互的相关文章

【python系统学习12】函数

函数 函数是一堆组织好的.可重复利用的.用来实现某一功能的代码. python中的input().print().type().bool().len()等都是函数.且是python的内置函数. 我们也可以封装自己的函数. 目录 目录 作用 函数定义 伪代码 示例代码 注意事项 函数调用 伪代码 示例代码 函数参数 参数传递 参数接收 无参函数 参数类型 函数返回值 定义返回值 没有返回值 返回多个值 多个return 作用域 局部变量与全局变量 将局部变量全局化 函数嵌套 练习题 仿写len()

python基础学习05(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #dict{键:值} #哈希 #注:字典是无顺序的,所以你懂的 #创建与赋值 dict1={} dict2={'name':'apply','avg':24,'sex':'man'} print dict1,dict2

python入门学习:7.函数

python入门学习:7.函数 关键点:函数 7.1 定义函数7.2 传递实参7.3 返回值7.4 传递列表7.5 传递任意数量的实参7.6 将函数存储在模块中 7.1 定义函数 ??使用关键字def告诉python要定义一个函数,紧接着跟着函数名,冒号.后面的缩进构成函数体.例如: 1def func_name():2    函数体34def greet_user():5    """显示简单问候语"""6    print("hel

Python快速学习09: 函数的参数

前言 系列文章:[传送门] 继续干起来!! 正文 我们已经接触过函数,函数是可以被引用的(访问或者以其他变量作为其别名),也作为参数传入函数,以及作为列表和字典等等容器对象的元素(function)的参数(arguments)传递. 传递函数 形式参数       位置参数 默认参数 关键字变量参数 位置传递 例子: def f(a,b,c): return a+b+c print(f(1,2,3)) #在调用f时,1,2,3根据位置分别传递给了a,b,c. 形式参数 关键字传递 用位置传递会感

【python系统学习07】一张图看懂字典并学会操作

点击跳转 - 原文地址 数据类型 - 字典(dict) 目录: [python系统学习07]一张图看懂字典并学会操作 原文地址:https://www.cnblogs.com/padding1015/p/12232571.html

【Python系统学习01】print函数的用法

原网页和源代码地址 print函数的用法 print - Python中打印信息的函数,可以打印代码运行结果,帮助我们了解代码执行状态. 注意??:在python代码书写过程中,一定要切换成英文输入状态,保证print()函数的括号是用[英文括号],并且其他默认所有正确的语法,包括标点符号都是[英文].不小心用了中文标点的话,计算机会无法识别,然后报错syntaxError:invalid syntax(语法错误:无效语法). 一.主要功能: 打印内容. 打印的意思是:让计算机把你给它的指令结果

Python新手学习基础之函数-概念与定义

什么是函数? 函数是可以实现一些特定功能的方法或是程序,简单的理解下函数的概念,就是你编写了一些语句,为了方便使用,把这些语句组合在一起,给它起一个名字,即函数名.使用的时候只要调用这个名字,就可以实现语句组里的功能了.Python中自带的一些函数就叫做内建函数,不需要我们自己编写.还有一种是第三方函数,就是其它程序员编好的一些函数,共享给大家使用.前面说的这两种函数都是拿来就可以直接使用的.当然还有一种,就是我们自己编写的为了方便使用的函数,就叫做自定义函数了. 定义一个函数 Python使用

python基础学习-内置函数

#!/usr/bin/env python # -*- coding:utf-8 -*- 系统内置函数 n =abs(-1) #绝对值 print(n) #bytes()函数 s="离开" re= bytes(s,encoding="utf-8")  # bytes() 把字符串 转换成字节 print(re) res = str(re,encoding="utf-8") #转换回字符串 print(res) re= bytes(s,encodi

【Python】】对于input函数直接对两个字符串赋值的试验

1.第一次试验 s , t = input() print('{0},{1}'.format(s,t)) #对于上述代码,输入1,2会发生错误 #发生ValueError: too many values to unpack (expected 2)这种错误 2.第二次试验 s , t = eval(input()) print('{0},{1}'.format(s,t)) #对于上述代码,输入1,2是可以执行的 #但是因为eval的原因输入字符串会出现NameError: name '我' i