当我运行以下代码时:
# This program calculates gross pay.
def main():
# Get the number of hours worked.
hours = int(input('How many hours did you work? '))
# Get the hourly pay rate.
pay_rate = float(input('Enter your hourly pay rate: '))
# Calculate the gross pay.
gross_pay = hours * pay_rate
# Display the gross pay.
print('Gross pay: $', format(gross_pay, ',.2f), sep=''')
# Call the main function.
main()
我收到错误:
SyntaxError: invalid syntax.
最后一个主要部分以红色突出显示。出了什么问题?
答案 0 :(得分:5)
python中有两种类型的字符串文字:
"a string"
或'a string'
- 表示单行字符串。
"""a string"""
或'''a string'''
- 表示多行字符串。
您所做的是(1)无法关闭字符串,.2f
,以及(2)无意中打开了(三引号)多行字符串文字:
print('Gross pay: $', format(gross_pay, ',.2f), sep=''')
missing a close quote here ^ ^^^ Opened a string literal
解释器假定它之后的所有内容都是该字符串文字的一部分。当它找不到右括号时(因为你从未关闭过字符串文字),那就抱怨了。
有两种解决方法:
sep='\'')
。这将阻止python将其解释为多行文字。sep="'")
答案 1 :(得分:4)
print('Gross pay: $', format(gross_pay, ',.2f), sep=''')
您未能终止字符串。我想你的意思是:
print('Gross pay: $', format(gross_pay, ',.2f'), sep='\'')
或者
print('Gross pay: $', format(gross_pay, ',.2f'), sep="'")
答案 2 :(得分:3)
您在print('Gross pay: $', format(gross_pay, ',.2f), sep=''')
行上缺少单引号,更不用说sep='''
将无效。你基本上已经这样做了:
print(
"Gross pay: $",
format(gross_pay,
",.2f), sep=''"
)
我假设你要做的是:
print("Gross pay: ${:,.2f}".format(gross_pay, sep="'"))