整天都在这里,并且完全没有进步,它肯定应该非常简单,但我是Python的新手。谷歌没有提高太多,所以这是我的最后一招!
它应该是手动将数值放入列表的一些基本代码。如果我在脚本中添加一条“print”行,我可以看到随着时间的推移成功输入了值,但是我似乎无法通过将输入留空来添加正确的脚本来打破循环。目前,如果我设置任何东西使其中断,脚本似乎在它运行时冻结,我必须完全重置控制台。
另外我想知道有没有办法确保输入始终是整数?如果用户输入任何非数字的东西,最好让事情变得更清洁,并提出错误信息。
这是代码。
public virtual TEntity Find(params object[] keyValues)
{
return _db.Set<TEntity>().Find(keyValues);
}
谢谢!
答案 0 :(得分:4)
您只能使用
限制为数字if a.isdigit():
所以你的功能看起来像
def accept_inputs():
values = []
while True:
a = raw_input('Enter numeric values. Leave blank to stop: ')
if a.isdigit():
values.append(float(a))
if not a:
return values
测试
>>> accept_inputs()
Enter numeric values. Leave blank to stop: 5
Enter numeric values. Leave blank to stop: 42
Enter numeric values. Leave blank to stop: 73
Enter numeric values. Leave blank to stop: ab
Enter numeric values. Leave blank to stop: abc
Enter numeric values. Leave blank to stop:
[5, 42, 73]
答案 1 :(得分:0)
字符串具有内置函数isdigit()
,如果所有字符都是数字,则返回true。
如果未输入任何内容,则使用len()
函数检测字符串是否为空。
你的代码看起来像这样:
if a.isdigit():
#keep going, and add it to the list
elif len(a) == 0:
break #stop the loop
答案 2 :(得分:0)
我的方法类似于@CoryKramer,只有很小的改动
>>> values = []
>>> while True:
val = raw_input('Enter Number : ')
if not val:
print values
elif val.isdigit():
values.append(int(val))
else:
print 'you have entered non - digit value'
Enter Number : 2
Enter Number : a
you have entered non - digit value
Enter Number : 3
Enter Number : 5
Enter Number : 6
Enter Number : 22
Enter Number : 546
Enter Number : 31s
you have entered non - digit value
Enter Number : 345678
Enter Number :
>>> values
[2, 3, 5, 6, 22, 546, 345678]