我为我的Python课程练习了一个简短的程序,用于计算所提供质量的牛顿重量。
到目前为止,我有这个 public void ProcessRequest(HttpContext context)
{
//What do I do here?
}
它在某种程度上确实有效。除了它只接受输入的整数。因此输入300个工作,但输入300.x只返回输入提示。
gravity = 9.8
while True:
mass = float(input('Please enter mass of object (in kg): '))
if mass not in range (100, 501):
if mass < 100:
print ('Input too low.')
elif mass > 500:
print ('Input too high.')
else :
break
weight = mass * gravity
print ('the weight of your object is',weight,'newtons.')
我哪里错了?我指定质量输入应转换为浮点数,重力变量设置为浮点数。
我能想到的唯一一件事(就像我写这篇文章时那样来到我身边)是因为我没有使用浮点数作为范围或者&lt; &GT;检查,所以它的错误并返回到提示,但是并没有这样说,因为我从未为该特定情况设置消息。
答案 0 :(得分:3)
add_filter( 'woocommerce_checkout_fields' , 'override_billing_checkout_fields', 20, 1 );
function override_billing_checkout_fields( $fields ) {
$fields['billing']['billing_phone']['placeholder'] = 'Telefon';
$fields['billing']['billing_email']['placeholder'] = 'Email';
return $fields;
}
并不意味着数学区间;它检查该间隔中的整数之一(因为这是add_filter('woocommerce_default_address_fields', 'override_default_address_checkout_fields', 20, 1);
function override_default_address_checkout_fields( $address_fields ) {
$address_fields['first_name']['placeholder'] = 'Fornavn';
$address_fields['last_name']['placeholder'] = 'Efternavn';
$address_fields['address_1']['placeholder'] = 'Adresse';
$address_fields['state']['placeholder'] = 'Stat';
$address_fields['postcode']['placeholder'] = 'Postnummer';
$address_fields['city']['placeholder'] = 'By';
return $address_fields;
}
返回的内容)。使用x not in range(a,b)
的{{1}}参数无济于事;它不允许它们,因为它产生离散的结果(并且存在陷阱,涉及浮点数学的不谨慎)。试试range
,这是Python支持的一个很好的标准数学语法(但在其他一些语言中)。
答案 1 :(得分:1)
范围为您提供类似于数字列表的内容,因此当您运行第if mass not in range (100, 501):
行时,您实际上正在检查mass
中是否有[100, 101, ... , 500]
。这仅涵盖整数,因此不起作用。
相反,只需使用代码中已有的比较:
gravity = 9.8
while True:
mass = float(input('Please enter mass of object (in kg): '))
if mass < 100:
print ('Input too low.')
elif mass > 500:
print ('Input too high.')
else :
break
weight = mass * gravity
print ('the weight of your object is',weight,'newtons.')
答案 2 :(得分:1)
你的问题是你有一个浮点数,但你的测试是否在整数的范围内。这适用于float是精确值的情况:
Please enter mass of object (in kg): 100.0
('the weight of your object is', 980.0000000000001, 'newtons.')
但是当它有小数时失败。您必须将输入直接与值进行比较:
if not 100 <= mass < 501: # range is exclusive.
但是,您已经在代码中检查了这一点,因此不需要上述内容:
mass = float(input('Please enter mass of object (in kg): '))
if mass < 100:
print ('Input too low.')
elif mass > 500:
print ('Input too high.')
else:
break