22.python 内置函数input/eval

  • 2020 年 3 月 12 日
  • 筆記

22.python 内置函数input/eval

最后更新于:2019-10-27 09:28:54

python的内置函数其实挺多的,其中input和eval算得上比较特殊,input属于交互式内置函数,eval函数能直接执行字符串表达式并返回表达式的值.

一.input函数

input是Python的内置函数也是交互式函数,何为交互式函数?交互式程序是指程序可以接用户交互。

可能以前的代码,部分童鞋可能会觉得有些死板,变量声明和定义都已经提前准备好了,可能老司机会说你不运行程序我也知道输出的结果是什么。

input()函数能接收用户输入的内容,并返回字符串str类型,示例代码如下:

Python

while True: a = input("请输入:") print("输入的内容是:{} 类型是:{}".format(a,type(a)))

123

while True:    a = input("请输入:")    print("输入的内容是:{} 类型是:{}".format(a,type(a)))

大家现在都知道AI已经是大势所趋,未来的十年属于AI,那么今天我要告诉你价值一个亿的AI核心代码:(沙雕机器人1.0版本)

Python

while True: ''' replace("?","!") 将字符串中英文状态下的问号 ?替换为 感叹号 ! replace("?","!")将字符串中中文状态下的问号 ?替换为 感叹号 ! replace("吗","") 将字符串中的中文 "吗" 替换为 "" ''' print(input("").replace("?","!").replace("?","!").replace("吗",""))

1234567

while True:    '''    replace("?","!") 将字符串中英文状态下的问号 ?替换为 感叹号 !     replace("?","!")将字符串中中文状态下的问号 ?替换为 感叹号 !    replace("吗","") 将字符串中的中文 "吗" 替换为 ""    '''    print(input("").replace("?","!").replace("?","!").replace("吗",""))

测试结果:

Python

在吗? 在! 你好 你好 是python教程吗? 是python教程! 看完教程就能学会编程吗? 看完教程就能学会编程! python能生孩子吗 python能生孩子

12345678910

在吗?在!你好你好是python教程吗?是python教程!看完教程就能学会编程吗?看完教程就能学会编程!python能生孩子吗python能生孩子

二.eval函数

在以前的文章中我们也曾经使用过eval,将字符串转为eval 内置函数eval()除了这个功能还能直接执行字符串表达式,并返回表达式的结果,示例代码如下:

Python

a = eval("3+2.5") print("a={} ,a的类型是{}".format(a,type(a))) a = eval("3+2") print("a={} ,a的类型是{}".format(a,type(a))) b = 33 a = eval("b/2") print("a={} ,a的类型是{}".format(a,type(a)))

123456789

a = eval("3+2.5")print("a={} ,a的类型是{}".format(a,type(a))) a = eval("3+2")print("a={} ,a的类型是{}".format(a,type(a))) b = 33a = eval("b/2")print("a={} ,a的类型是{}".format(a,type(a)))

输出结果:

Python

a=5.5 ,a的类型是<class 'float'> a=5 ,a的类型是<class 'int'> a=16.5 ,a的类型是<class 'float'>

123

a=5.5 ,a的类型是<class 'float'>a=5 ,a的类型是<class 'int'>a=16.5 ,a的类型是<class 'float'>

三.input函数和eval函数配合使用

input函数和eval函数配合使用完成一个无界面的计算器:

Python

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解忧 @Blog(个人博客地址): shuopython.com @WeChat Official Account(微信公众号):猿说python @Github:www.github.com @File:python_input_eval.py @Time:2019/10/6 21:48 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! """ while True: result = eval(input("请输入表达式:")) print("结果:",result)

1234567891011121314151617

# !usr/bin/env python# -*- coding:utf-8 _*-"""@Author:何以解忧@Blog(个人博客地址): shuopython.com@WeChat Official Account(微信公众号):猿说python@Github:www.github.com @File:python_input_eval.py@Time:2019/10/6 21:48 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!""" while True:    result = eval(input("请输入表达式:"))    print("结果:",result)

输出结果:

Python

请输入表达式:3+2-6 结果: -1 请输入表达式:55*25 结果: 1375 请输入表达式:89/7 结果: 12.714285714285714 请输入表达式:

1234567

请输入表达式:3+2-6结果: -1请输入表达式:55*25结果: 1375请输入表达式:89/7结果: 12.714285714285714请输入表达式:

四.重点总结

1.注意input函数的返回值是字符串str类型,如果需要int或者list类型可以通过转换完成

2.eval是一个很强大的内置函数,除了以上功能,eval还能直接删除系统文件,这里不做过多讲解,注意eval不要滥用。

Exit mobile version