small = None
larg = None
count = 0
while True:
inp = raw_input("Enter a number: ")
if inp == "done" : break
try:
num = float (inp)
except:
print "Invalid number"
if num < small:
small = num
print "Done"
print small
此代码应该让用户添加数字,直到他/她键入&#34; done&#34;然后找到最小的数字(我的想法是每次比较num和较小的数字,并在完成后打印最后一个小值)
但是当我运行它时,它会一直显示None
作为最小值。
答案 0 :(得分:2)
在Python 2.x中,None
小于所有数字,因此,因为您的起始编号是None
,所以它始终是最小的。
你可以检查一下None
小是否用输入进行初始化(这应该将small
设置为第一个输入的数字。)
示例 -
small = None
larg = None
count = 0
while True:
inp = raw_input("Enter a number: ")
if inp == "done" : break
try:
num = float (inp)
except:
print "Invalid number"
if small is None or num < small:
small = num
print "Done"
print small
答案 1 :(得分:0)
您最初无法将small
作为None
值启动。否则你的状态
if num < small:
每次评估为False
。因为您要将None
值与浮点值进行比较,None
小于每个数字。做这样的事情
if small is None or num < small:
small = num
答案 2 :(得分:0)
我可以建议这样的事情
input_list = []
while True:
inp = raw_input("Enter a number: ")
if inp == "done" : break
try:
input_list.append(float(inp))
except:
print "Invalid number"
continue
smalest = min(input_list[-2:])
print smalest
input_list.append(input_list.pop(input_list.index(smalest)))
print "Done"
答案 3 :(得分:0)
这是一种相当简单的方法。我没有尝试通过在提示符中键入乱码来打破它,但我认为它可以正常工作。
var app = angular.module('myApp', ['googlechart'])
app.controller('myController', function($scope, $log, $http) {
$http.get("getCharts")
.success(function(response) {
metrics = response.data;
var chart1 = {};
chart1.type = "google.charts.Line";
chart1.displayed = false;
chart1.data = metrics;
$scope.myChart = chart1;
});
}).value('googleChartApiConfig', {
version: '1.1',
optionalSettings: {
packages: ['line'],
language: 'en'
}
});