为a:5:{i:0;s:56:"Unable to Connect to ssl://api.payson.se:443. Error
#0: ";i:1;s:2213:"
#0 /usr/local/www/apache24/webroot/multistore/lib/Zend/Http/Client.php(1073): Zend_Http_Client_Adapter_Socket->connect('api.payson.se', 443, true)
#1 /usr/local/www/apache24/webroot/multistore/app/code/community/Payson/Payson/Helper/Api.php(1181): Zend_Http_Client->request('POST')
#2 /usr/local/www/apache24/webroot/multistore/app/code/community/Payson/Payson/Model/Method/Abstract.php(126): Payson_Payson_Helper_Api->PaymentDetails('204103')
#3 /usr/local/www/apache24/webroot/multistore/app/code/core/Mage/Sales/Model/Order/Payment.php(1152): Payson_Payson_Model_Method_Abstract->cancel(Object(Mage_Sales_Model_Order_Payment))
#4 /usr/local/www/apache24/webroot/multistore/app/code/core/Mage/Sales/Model/Order/Payment.php(865): Mage_Sales_Model_Order_Payment->_void(true, NULL, 'cancel')
#5 /usr/local/www/apache24/webroot/multistore/app/code/core/Mage/Sales/Model/Order.php(1155): Mage_Sales_Model_Order_Payment->cancel()
#6 /usr/local/www/apache24/webroot/multistore/app/code/community/Payson/Payson/controllers/CheckoutController.php(62): Mage_Sales_Model_Order->cancel()
#7 /usr/local/www/apache24/webroot/multistore/app/code/community/Payson/Payson/controllers/CheckoutController.php(92): Payson_Payson_CheckoutController->cancelOrder('Unable to Conne...')
#8 /usr/local/www/apache24/webroot/multistore/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Payson_Payson_CheckoutController->redirectAction()
#9 /usr/local/www/apache24/webroot/multistore/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('redirect')
#10 /usr/local/www/apache24/webroot/multistore/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#11 /usr/local/www/apache24/webroot/multistore/app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#12 /usr/local/www/apache24/webroot/multistore/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#13 /usr/local/www/apache24/webroot/multistore/index.php(83): Mage::run('mystore', 'store')
#14 {main}";s:3:"url";s:26:"/payson/checkout/redirect/";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:8:"mystore";}
分配给定列表sum_extra
的额外信用额度。完全信用是100,所以100以上的额外信用。对于给定的程序,test_grades
为8,因为1 + 0 + 7 + 0为8.给定程序的示例输出:
额外总和:8
原谅我,我是编码的先驱,而且非常糟糕! 这是我的代码(不起作用)请帮忙!:
sum_extra
我的两个循环中哪一个更适合这个问题,我如何编辑它们以使它们变得更好?因为我可以告诉他们不会工作!需要任何帮助!谢谢! :)
答案 0 :(得分:1)
您的第一个循环将失败,因为test_grades
的类型为list
,因此说while list < 100
没有意义。
替代while循环看起来像:
i = 0;
while i < len(test_grades):
if test_grades[i] > 100:
test_grades[i] -= 100
else:
test_grades[i] = 0
print sum(test_grades)
您的第二个循环将再次失败,因为test_grades[0:3]
再次属于list
类型,而您不能拥有list < 100
。
请参阅L. M&#39的答案。
对于这类问题,for
循环会更好,因为您正在迭代元素,没有真正的条件&#39;检查,这将使一个while循环更好地风格化(它们导致相同的输出)。
A&#39; pythonic&#39;方法是使用列表理解:
test_grades = [101, 83, 107, 90]
extra_grades = [grade - 100 for grade in test_grades]
print sum(filter(lambda x: x > 0, extra_grades)) #prints 8
答案 1 :(得分:1)
user_input = input()
test_grades = list(map(int, user_input.split())) # contains test scores
sum_extra = -999 # Initialize 0 before your loop
sum_extra = 0
count = 0
for num in test_grades:
if num > 100:
sum_extra += num
count += 1
sum_extra = sum_extra - (100 * count)
print('Sum extra:', sum_extra)
答案 2 :(得分:0)
你可以做到
test_grades = [101, 83, 107, 90]
count = 0
for i in test_grades:
if i-100>0:
count += (i-100)
print count``
除了计数
之外,它与你的for循环非常相似答案 3 :(得分:0)
您应该首先了解数据类型。
在您的代码中,您尝试将列表与整数进行比较,这是不可能的。
test_grades [0:3]也会进行切片,这会给你一个子列表。所以当你这样做时:
sum_extra = test_grades[0:3]
sum_extra现在成为一个列表。我觉得你希望它保持整数。
现在考虑这一行:
test_grades = test_grades - 100
这一行只是从列表的当前元素中减去100。那么让我们说当前元素是83.在这种情况下你的答案应该是什么?
83-100 = -17 ?
可能不是。所以你应该首先检查数字是否大于100,如果是,则从中减去100。像这样:
if test_grages[i] > 100:
sum_extra = test_grades[i] -100 # Dont alter the content of test_grades. You may need to use it further in you code.
您需要为列表的每个元素循环上面的代码行。所以使用循环:
i=0 # First element is at 0th index.
while i < len(test_grades):
if test_grages[i] > 100:
sum_extra += test_grades[i] -100
i++
现在把它们全部放在一起:
test_grades = [101, 83, 107, 90]
sum_extra =0
i=0
while i < len(test_grades): #len() method gives you the length.
if test_grages[i] > 100:
sum_extra += test_grades[i] -100
i++
print(sum_extra)
答案 4 :(得分:0)
只需你可以
test_grades = [101, 83, 107, 90]
sum_extra = 0 # Initialize 0 before your loop
#iterate over the values of the list
for i in test_grades:
if i>100:
#add extra to the sum extra
sum_extra=sum_extra+(i-100)
#finally print the extra sum
print('Sum extra:', sum_extra)