python - 是否有任何特殊输入可以破坏 Python 3 中的 input() 函数?
问题描述
假设我正在制作一个 cat 程序,我打算使用 input() 获取用户的输入,将其存储为字符串以供以后使用,然后输出字符串(为简单起见,假设它只是打印它)。
用户是否可以输入任何内容会使我的程序无法正确存储字符串?我已经测试过特殊字符,\n
但它们工作正常 - 是否有任何非常晦涩的字符可能会以某种方式破坏我的程序?
这是我的代码的一个高度简化的版本,它的行为方式应该与我的非简化代码相同:
a = input()
print(a)
解决方案
没有办法通过输入来破坏代码,输入函数只存储用户所说的内容。无论您输入的是字符串、unicode 还是其他任何内容,结果都将始终相同。但是,如果变量被赋予权力,如下例所示:
import os
a = input()
os.system(a)
然后变量可以访问命令行。如果您不写入对 shell 的访问权限,则该变量无能为力。
推荐阅读
- postgresql - 在反应式 pgclient Kotlin 中强制执行 SQL 时出错
- excel - 基本数组公式仅适用于第一个单元格
- java - 使用 uid 为当前用户显示来自实时数据库的某些数据
- ios - 无法将“A”类型的值转换为“B”
- scala - 在 scala 2.11+ 中,如何准确地使用单例类型作为类型证据?
- c# - 如何验证所有字典 KVP 是否包含在列表中的某些其他字典中
- node.js - 从 create-react-app 运行 CLI 脚本
- python - 如何在 TF2.0 中创建具有自定义渐变的 keras 图层?
- r - lapply 函数对具有列表列的数据框列表
- python - sns.kdeplot - 绘图的 Y 轴是不可取的