Linux下python中的Open函数报错
#!/usr/bin/envpythonfromTOSSIMimport*importsyst=Tossim([])t.addChannel("SimpleCollect...
#! /usr/bin/env python
from TOSSIM import *
import sys
t=Tossim([])
t.addChannel("SimpleCollectionC",sys.stdout)
f=open("topo.txt","r")
r=t.radio()
lines=f.readlines()
for line in lines:
s=line.split()
if(len(s)>0):
print s[0]," to ",s[1]," gain ",s[2]
r.add(int(s[0]),int(s[1]),float(s[2])
noise = open("meyer-heavy.txt", "r")
lines = noise.readlines()
for line in lines:
str = line.strip()
if(str != ""):
val = int(str)
for i in range(1,4):
m = t.getNode(i);
m.addNoiseTraceReading(val)
for i in range(1,4):
print "creating noise model for node %s"%(i)
t.getNode(i).createNoiseModel()
print "noise model created"
t.getNode(1).bootAtTime(10000)
t.getNode(2).bootAtTime(12000)
t.getNode(3).bootAtTime(13000)
print "start simulation"
for i in range(0,10000):
t.runNextEvent()
print "simulation done, exit" 展开
from TOSSIM import *
import sys
t=Tossim([])
t.addChannel("SimpleCollectionC",sys.stdout)
f=open("topo.txt","r")
r=t.radio()
lines=f.readlines()
for line in lines:
s=line.split()
if(len(s)>0):
print s[0]," to ",s[1]," gain ",s[2]
r.add(int(s[0]),int(s[1]),float(s[2])
noise = open("meyer-heavy.txt", "r")
lines = noise.readlines()
for line in lines:
str = line.strip()
if(str != ""):
val = int(str)
for i in range(1,4):
m = t.getNode(i);
m.addNoiseTraceReading(val)
for i in range(1,4):
print "creating noise model for node %s"%(i)
t.getNode(i).createNoiseModel()
print "noise model created"
t.getNode(1).bootAtTime(10000)
t.getNode(2).bootAtTime(12000)
t.getNode(3).bootAtTime(13000)
print "start simulation"
for i in range(0,10000):
t.runNextEvent()
print "simulation done, exit" 展开
1个回答
展开全部
【现象】
很多Python初学者,在安装了最新版本的Python 3.x版本,比如Python 3.2之后,
去参考别人的代码(基于Python 2.x写的教程),去利用print函数,打印输出内容时,结果却遇到print函数的语法错误:
SyntaxError: invalid syntax
比如,虽然找个例子的截图为:
【原因】
这是因为,你正在用的Python版本是Python 3.x,而参考别人的代码是Python 2.x的代码,而由于Python 2.x升级到Python 3.x,print函数的语法变化了,
所以你用Python 2.x的print函数的代码,放在Python 3.x中运行,结果就出现了print函数的“SyntaxError: invalid syntax”了。
即,这也是Python初学者,第一个最容易遇到的问题:
在安装了(最新版本的)Python 3.x后,去运行(参考了别人的)Python 2.x的print函数的代码,结果就是遇到了print函数的语法错误:SyntaxError: invalid syntax
【Python 2.x和Python 3.x中print函数语法方面的区别】
最简洁的解释为:
Python 2.x: print函数(所要打印的内容)不带括号
Python 3.x: print函数(所要打印的内容),必须带括号
举例来说明,即为:
1.不带百分号格式化的
python 2.x:
?
1
print "Pyhon 2 can use print string without ()";
python 3.x:
?
1
print("Python3, print must use () to output string");
2. 带百分号格式化的
Python 2.x:
?
1
print "old %s version is %d, print no ()"%("Python", 2);
Python 3.x:
?
1
print("new %s version is %d, print must have ()"%("Python", 3));
很多Python初学者,在安装了最新版本的Python 3.x版本,比如Python 3.2之后,
去参考别人的代码(基于Python 2.x写的教程),去利用print函数,打印输出内容时,结果却遇到print函数的语法错误:
SyntaxError: invalid syntax
比如,虽然找个例子的截图为:
【原因】
这是因为,你正在用的Python版本是Python 3.x,而参考别人的代码是Python 2.x的代码,而由于Python 2.x升级到Python 3.x,print函数的语法变化了,
所以你用Python 2.x的print函数的代码,放在Python 3.x中运行,结果就出现了print函数的“SyntaxError: invalid syntax”了。
即,这也是Python初学者,第一个最容易遇到的问题:
在安装了(最新版本的)Python 3.x后,去运行(参考了别人的)Python 2.x的print函数的代码,结果就是遇到了print函数的语法错误:SyntaxError: invalid syntax
【Python 2.x和Python 3.x中print函数语法方面的区别】
最简洁的解释为:
Python 2.x: print函数(所要打印的内容)不带括号
Python 3.x: print函数(所要打印的内容),必须带括号
举例来说明,即为:
1.不带百分号格式化的
python 2.x:
?
1
print "Pyhon 2 can use print string without ()";
python 3.x:
?
1
print("Python3, print must use () to output string");
2. 带百分号格式化的
Python 2.x:
?
1
print "old %s version is %d, print no ()"%("Python", 2);
Python 3.x:
?
1
print("new %s version is %d, print must have ()"%("Python", 3));
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询