我是python的新手,需要帮助解决问题.基本上我需要打开一个文件并阅读它,我可以没有问题.问题出现在第0行,我需要检查标题格式.
标题需要采用以下格式:p wncf nvar nclauses hard
其中'nvar''nclauses'和'hard'都是正整数.
例如:
p wncf 1563 817439 186191
将是一个有效的标题行.
这是编码我已经感谢人们之前回答的一个问题:
import re
filename = raw_input('Please enter the name of the WNCF file: ')
f = open(filename, 'r')
for line in f:
p = re.compile('p wncf \d+ \d+ \d+$')
if p.match(line[0]) == None:
print "incorrect format"
Run Code Online (Sandbox Code Playgroud)
即使文件格式正确,我仍然会得到不正确的格式.是否可以将整数分配给对象?
提前致谢.
我已经读过一个文件并将每一行转换成一个列表.列表的示例如下所示:
['15','2','0'],['63','3','445','456''0'],['23','4','0']
我想从每个列表中检索第一个数字并将其转换为整数,所以当我执行类型函数即
type(x)
<type 'int'> is returned
Run Code Online (Sandbox Code Playgroud)
此外,当我打印x时,整数是单独打印而不是连接.即如果我从上面的列表中取出前3个数字,则数字不会被打印为:
156323
假如我有几个列表:
x = [['48', '5', '0'], ['77', '56', '0'],
['23', '76', '34', '0']]
Run Code Online (Sandbox Code Playgroud)
我希望将此列表转换为单个数字,但单个数字类型仍然是整数,即:
4850775602376340
Run Code Online (Sandbox Code Playgroud)
我一直在使用此代码来执行此过程:
num = int(''.join(map(str,x)))
Run Code Online (Sandbox Code Playgroud)
但我一直得到一个价值错误.
此外,如果我的列表包含负整数,我将如何将它们转换为绝对值?然后将它们转换为单个数字?
x2 = [['48',' - 5','0'],['77','56','0'],['23','76',' - 34','0'] ]
x2 = 4850775602376340
提前致谢.
如果:
x = 0
b = x==0
Run Code Online (Sandbox Code Playgroud)
我打印它会打印'真'
但如果我做了:
x = 0
b = x == 3
我印的是假的.而不是它打印假如何我将采用布尔值'b'来打印我想要的文本?
让我进一步解释一下:
bool = all(n > 0 for n in list)
if bool != 'True':
print 'a value is not greater than zero'
Run Code Online (Sandbox Code Playgroud)
但它什么都不打印?