Arpasland被攻击者包围。一辆卡车进入城市。司机声称,这是伊朗人的食物和药品。阿里是阿帕斯兰的士兵之一。他怀疑这辆卡车,也许是因为围困。他知道,如果标签的每两个连续数字之和为偶数且其字母不是元音,则该标签有效。确定卡车的标签是否有效。
我们认为字母“ A”,“ E”,“ I”,“ O”,“ U”,“ Y”是解决此问题的元音。
输入格式
第一行包含一个长度为9的字符串。格式为“ DDXDDD-DD”,其中D代表一个数字(非零),X代表一个大写英文字母。
输出格式
如果标记有效,则打印“有效”(不带引号),否则打印“无效”(不带引号)
code
我写道:
x=input()
for i in range(len(x)-1):
x1=x[i]
x2=x[i+1]
j=list()
j.append(x1)
j.append(x2)
print(j)
j1="".join(j)
print(j1)
print(j1.isdigit())
print(j1[0],j1[1])
if(j1.isdigit()):
if(((j1[0]+j1[1])%2)!=0):
print("invalid")
break
else:
conitnue
elif('A,E,I,O,U,Y,-'.find(y)!=-1 or 'A E I O U Y'.find(x)!=-1):
continue
else:
print("invalid ")
break
print("valid")
我在第二条error
条件行收到if
消息
我的error
信使是not all argument are converted during string formatting
答案 0 :(得分:1)
在(((j1[0]+j1[1])%2)!=0)
中,j1[0]
和j1[1]
都是字符串,而您使用它们时就好像它们是整数一样。使用int
将其转换为整数,您应该会很好;即检查(((int(j1[0]) + int(j1[1])) % 2) != 0)
。
具体来说,这是在假设j1 = ['8', '9']
是j1[0] + j1[1]
的字符串。当在字符串上应用'89'
时,幕后发生的事情是Python试图将其字符串格式应用于输入,这在这里是不可能的。也就是说,%
会给您字符串'f%d' % 2
,但是'f2'
是不可能的,并会导致您所描述的错误。
'89' % 2