python-3.x - 在 python 计算器中处理负整数输入的最佳方法是什么?
问题描述
你好,开发人员和工程师:
如何处理这两种类型的输入1) 当用户输入 "-0"和2) 当用户输入减号 "-"时,在我的while循环中添加非负整数。
该程序在整体设计中开发了一些功能,即添加非负整数,但在用户输入-0或-(减号)符号时存在缺陷。当用户输入这些条目时,我想打印('你输入了一个负整数或负/减号')。
目前,当用户在输入中提交 -0 时程序继续运行而不添加,而当用户仅提交 - 符号时出现 ValueError。
请提供反馈。
entry = 0
sum = 0
# Request input from the user
print('This is nonnegative integer addition program. \n',)
while entry >= 0:
entry=int(input('Please enter numbers to add: '))
if entry >=0:
sum+=entry
elif entry<0 or str(entry[0])=='-' or str(entry)=='-0': # -0 nor (first index -(minus) does not work
print('You have entered a negative integer or symbol:', \
entry, ', therefore you have been exited out of the program')
print('total integer input sum =',sum)
解决方案
如另一个答案中所述。您将值转换为 int 并且您不能再访问这些字符。我已经让程序存储了 user_input 并检查了它。
entry = 0
sum = 0
# Request input from the user
print('This is nonnegative integer addition program. \n',)
while entry >= 0:
user_input = input('Please enter numbers to add: ')
if '-' in user_input:
print(
'You have entered a negative integer or symbol:',
user_input,
', therefore you have been exited out of the program'
)
break
entry = int(user_input)
sum+=entry
print('total integer input sum =',sum)
在这个版本中,我将输入字符串存储为user_input
并检查它是否有“-”符号。我使用'-' in
而不是user_input[0]=='-'
因为以空格开头的输入仍然可以使用int
.
需要注意的另一件事是,您的 if/elif 指定过多。
if entry >=0:
sum+=entry
elif entry<0 or str(entry[0])=='-' or str(entry)=='-0':
break
在您的第二个子句中,条目保证小于零。所以str(entry[0])
永远不会被调用。谢天谢地,因为这是一个错误。您的 if 语句等效于。
if entry>=0:
...
else:
...
最后一个小点。当您在打印语句中有一组括号时。您不需要 a\
来指示续行。
print(
"one",
"two"
)
Python 识别打开的(
. 如果你想继续一个字符串,你需要它。
print("one \
two")
推荐阅读
- javascript - 安全问题:在 POST 请求中发送访问令牌
- reactjs - 我正在尝试使用 jest 在我的代码中执行单元测试,但出现错误
- java - 如何更改同步适配器项目名称
- java - 快速将新创建的对象添加到数组中
- swift - 具有依赖注入的类与具有实现的协议
- sql - 在sql中查找并显示
- ruby-on-rails - 枚举和包含在 models.rb 中不获取数据
- php - imageMagick gif 移出框架
- mongodb - 如何使用java mongo spark连接器进行upsert操作并处理spark中的数据?
- javascript - 以不同的方式声明方法