我在打印命令中不断收到语法错误(这就是为什么括号位于底部的那个),并且如果我尝试运行代码,还会收到文件结尾错误(解析时文件结尾意外)。
我在打印语句上放置了一个括号,并且尝试重新键入代码没有成功。
print ("input a number")
a = (str(input(''))
if 9 in (a)
(b = a.count('9')
if 8 in (a)
(c = a.count('8')
if 7 in (a)
(d = a.count('7')
if 6 in (a)
(e = a.count('6')
if 5 in (a)
(f = a.count('5')
if 4 in (a)
(g = a.count('4')
if 3 in (a)
(h = a.count('3')
if 2 in (a)
(i = a.count('2')
if 1 in (a)
(j = a.count('1')
if 0 in (a)
(k = a.count('0')
(print("the highest number you can make is", 9*b, 8*c, 7*d, 6*e, 5*f, 4*g, 3*h, 2*i, 1*j, 0*k)
File "/home/ubuntu/workspace/SuPeRsIzE.py", line 26
^
SyntaxError: unexpected EOF while parsing
请注意,代码只有25行-我什至还没有将其打开到26行
---------------------------------------------------------------------------
File "/home/ubuntu/workspace/SuPeRsIzE.py", line 25
print("the highest number you can make is", 9*b, 8*c, 7*d, 6*e, 5*f, 4*g, 3*h, 2*i, 1*j, 0*k)
^
SyntaxError: invalid syntax
这是我从打印语句中删除括号后得到的结果。
答案 0 :(得分:1)
此代码非常令人困惑,但解决了语法错误:
if
行都必须以:
结尾if 4 in (a) # missing : at the end
应该是
if 4 in a:
if
正文都以(
开头,但没有关闭(b = a.count('9')
应该是
b = a.count('9')
b = a.count('9')
c = a.count('8')
d = a.count('7')
e = a.count('6')
f = a.count('5')
g = a.count('4')
h = a.count('3')
i = a.count('2')
j = a.count('1')
k = a.count('0')
print("the highest number you can make is", 9*b, 8*c, 7*d, 6*e, 5*f, 4*g, 3*h, 2*i, 1*j, 0*k)
但是我认为这不会产生正确的答案,尽管很难知道您的目标是什么。
input()
还支持显示字符串a = input('input a number: ')
# ...
print('the highest number...')
更新以发表评论,以说明目标是重新安排。
最简单的方法是使用python sorted
,然后join
将结果返回到单个字符串
a = input('input a number: ')
highest = ''.join(sorted(a, reverse=True))
print('The highest number you can make is', highest)
但是,如果您希望保留所有变量的现有方法,则只需引用int
并用str
来替换sep=''
中的print("the highest number you can make is ",
'9'*b, '8'*c, '7'*d, '6'*e, '5'*f, '4'*g,
'3'*h, '2'*i, '1'*j, '0'*k,
sep='')
删除之间的空格
a = input('input a number: ')
result = ''
for i in range(10, -1, -1):
count = a.count(str(i))
result += count * str(i)
print("the highest number you can make is", result)
一种更必要但又不那么重复的方法是随您建立一个结果字符串
spring.output.ansi.enabled=always
答案 1 :(得分:1)
因此,语法错误实际上是因为您没有用if
结束:
语句,并且在if
块的每一行上都有很多开括号。您可能需要看一下有关Python基本语法的教程。
之所以不会立即发生语法错误,是因为Python的工作方式。如果我们删除换行符:
if 9 in (a)(b = a.count('9') if 8 in (a)(c = a.count('8') ...
它的作用是尝试测试9
是否在正确的表达式中,这是一个函数调用。它尝试调用a
作为函数,其关键字参数b
等于a.count('9') if <expr> else <expr>
,这是Python的三元表达式语法。最后,它表示“意外的EOF”,因为它期望括号更加紧密,因为您打开了很多本来不应该出现的括号。如果将它们全部放入,则会显示“无效语法”,因为它希望else
语句完成三元表达式。
答案 2 :(得分:0)
b = a.count('9')
c = a.count('8')
d = a.count('7')
e = a.count('6')
f = a.count('5')
g = a.count('4')
h = a.count('3')
i = a.count('2')
j = a.count('1')
k = a.count('0')
´
print("the highest number you can make is", ´9´*b, ´8´*c, ´7´*d, ´6´*e, ´5´*f, ´4´*g, ´3´*h, ´2´*i, ´1´*j, ´0´*k)
这似乎很好用-感谢大家的帮助,但这对我来说有用