eval()函数只能执行一行语句
exec()函数能执行多条语句
input()函数只能以原生字符串的形式从控制台接收输入
下面展示 代码:
myStr = input("请输入:") # 自动转为原生字符串raw string
# 输入示例1: print("我是程序员...")\nprint("我使用Python...")
# 输入示例2: print("我是程序员...");print("我使用Python...")
# 输入示例3: print("我是程序员..."),print("我使用Python...")
expression = myStr.replace("\\n","\n")
# exec(expression) # 适用示例1、2和3
# exec(myStr) # 适用示例2和3
# eval(myStr) # 适用示例3
# eval(expression) # 适用示例3
下面展示 Python shell 下的实验:
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> sRegular = input("请输入一个字符串:") # lzq\n林祖泉
请输入一个字符串:lzq\n林祖泉
>>> sRegular
'lzq\\n林祖泉'
>>> print(sRegular)
lzq\n林祖泉
>>> sRegular == 'lzq\\n林祖泉'
True
>>> print('lzq\\n林祖泉')
lzq\n林祖泉
>>> sRegular == 'lzq\n林祖泉'
False
>>> sRegular == r'lzq\n林祖泉'
True
>>> sRaw = r'lzq\n林祖泉'
>>> sRaw
'lzq\\n林祖泉'
>>> print(sRaw)
lzq\n林祖泉
>>> sRegular == sRaw
True
>>> s = 'lzq\n林祖泉'
>>> s
'lzq\n林祖泉'
>>> print(s)
lzq
林祖泉
>>> s
'lzq\n林祖泉'
>>> s == sRegular
False
>>> s == sRaw
False
>>>
>>>