我的python脚本出错

时间:2014-12-30 10:51:01

标签: python python-2.7

我有一个新问题。 这是我的剧本。 我尝试用额外的加班来计算工资。 我无法理解这里的问题:

def computePay(Hours,Rate):
 print 'Enter Hours:\t'
 Hours = float (raw_input())
 print 'Enter Rate:\t'
 Rate = float (raw_input())
 try:
  if Hours > 40:
   R1 = print 'Pay:', (Hours-40)*Rate*1.5 + (40*Rate)
   return R1
  else:
   R2 = print 'Pay:', (Hours*Rate)
   return R2
 except:
  print 'Error, please enter numeric input!'

请帮忙。 我是编程新手

1 个答案:

答案 0 :(得分:2)

你的问题是这样的:

R1 = print 'Pay:', (Hours-40)*Rate*1.5 + (40*Rate)
R2 = print 'Pay:', (Hours*Rate)
  • 在为变量指定字符串时无法使用print

如果要将字符串设置为R1和R2,则应执行以下操作:

R1 = 'Pay: ' + str((Hours-40)*Rate*1.5) + str((40*Rate))
R2 = 'Pay:' + str((Hours*Rate))

或者您也可以这样做:

R1 = 'Pay: %.2f  %.2f' % ( ((Hours-40)*Rate*1.5),  (40*Rate) )
R2 = 'Pay: %.2f' % ( Hours*Rate )
  • 更改%.2f %.NfN小数位数

你的功能应该是:

def computePay():
    print 'Enter Hours:\t'
    Hours = float (raw_input())
    print 'Enter Rate:\t'
    Rate = float (raw_input())
    try:
        if Hours > 40:
            R1 = 'Pay: %.2f  %.2f' % ( ((Hours-40)*Rate*1.5),  (40*Rate) )
            return R1
        else:
            R2 = 'Pay: %.2f' % ( Hours*Rate )
            return R2
    except:
        print 'Error, please enter numeric input!'

如果您执行代码,您将获得:

Enter Hours:    
20
Enter Rate: 
8
Pay: 160.00

提示

  • 缩进在Python中非常重要!您应该检查 Pep8 Style Guide for Python Code

  • 您的功能名称为def computePay(Hours,Rate):,但您未发送小时费率。您在函数中要求他们,因此名称应为def computePay():

  • Python 中的manage/concatenate字符串有多种方法,对于了解这一点非常有用,为每种情况选择最佳解决方案。有一个有用的示例教程:String concatenation and formatting in Python