import re
import sys
def isValid(s):
pattern_= re.compile("[12][\d]{12}$")
return pattern_.match(s)
loop = int(input ())
output=[]
for _ in range(0, loop):
ele = int(input())
output.append(ele)
entries = ''
for x in output :
entries += str(x)+ ''
print (output ) #['0123456789012']
print (entries ) #0123456789012
print(type(entries )) #str
print(type(output )) #list
# Driver Code
for _ in range(loop):
for x in entries:
if (isValid(x)):
sys.stdout.write ("Valid Number")
break
else :
sys.stdout.write ("Invalid Number")
break
电话号码以数字1或2开头,后跟12位数字,即电话号码由13位数字组成。
对于每个电话号码,请在新行中打印“有效”或“无效”。列表中的输入有误
生成的输出为,
2
0123456789012
1123456789012
[123456789012, 1123456789012]
123456789012 1123456789012
<class 'str'>
<class 'list'>
Invalid NumberInvalid Number
[Program finished]
此外,我已经搜索了堆栈前张贴。这看起来不同的问题。如果有任何匹配的错误堆栈,请重定向我那里。
2
1123456789012
0123456778901
Valid Number
Invalid Number
[Program finished]
这是它应该看起来的样子
3条答案
按热度按时间pxyaymoc1#
print
首先将对象转换为字符串(如果它还不是字符串),如果它不是一行的开头和结尾的换行符,它还会在对象前放置一个空格。当使用
stdout
时,您需要自己将对象转换为字符串(例如,通过调用“str”),并且没有换行符。我还可以建议重新措辞你的问题,因为它不是一个逻辑问题,而是一个语法问题。
备注:已检查单个和多个输入。工作正常。
soat7uwm2#
尝试使用以下正则表达式
我不知道你为什么要把数字附加到实体变量上。我已经修改了一些代码,正则表达式工作得很好。
输入:
输出:
kqhtkvqz3#
生产
print总是返回carriage,而sys.stdout.write不返回,这个问题就这样解决了。