有没有办法在Python中执行此操作?(我知道你可以做Java.)
#PSEUDO CODE!!
while (inp = input()) != 'quit'
print(inp)
Run Code Online (Sandbox Code Playgroud)
例如,在java中,上面的伪代码转换为:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
String inp;
while (!(inp = reader.readLine()).equals("quit")) {
System.out.println(inp);
}
} catch (IOException io) {
System.out.println(io.toString());
}
Run Code Online (Sandbox Code Playgroud)
编辑:
......回答......但这是唯一的方法吗?
while True:
inp = input()
if inp == 'quit':
break
print(inp)
print('eof')
Run Code Online (Sandbox Code Playgroud) 当我尝试创建这个
self.cmds = {
'help' : self.cmdsHelp,
'write-start' : self.startWriter,
'write' : self.writeTo,
'read-start' : self.startReader,
'read' : self.readFrom
}
Run Code Online (Sandbox Code Playgroud)
具有内置dict()功能...即
self.cmds = dict(
help = self.cmdsHelp,
write-start = self.startWriter,
write = self.writeTo,
read-start = self.startReader,
read = self.readFrom
)
Run Code Online (Sandbox Code Playgroud)
...我收到此错误:
write-start = self.startWriter,
^
SyntaxError: keyword can't be an expression
Run Code Online (Sandbox Code Playgroud)
带有大括号({})的字典- 无论是什么特殊名称 - 都有效,但我无法理解为什么"较新版本"(dict()表单)不起作用.有什么东西我错过了,或者你只需要使用花括号?
字典中的每个值都是一个函数(是的,我确实删除了self.,我也尝试过这两个self.function(),function()所以当我调用它时,我不必这样做,self.cmds[<input>]()但我宁愿这样做self.cmds[<input>])
如果我在主要内容中有以下内容......
int i;
int *p;
i = 0;
p = &i;
printf("%x\n", *p);
for (int j = 0; j < 20; j++) {
printf("%x ", *p++);
}
puts("\n\n");
p = &i;
for (int j = 0; j < 20; j++) {
printf("%x ", ++*p);
}
Run Code Online (Sandbox Code Playgroud)
......我的输出很奇怪......
0 569d8a48 7fff 1 0 569d8a38 7fff 9227ce4 1 0 0 0 0 1 0 569d8b98 7fff 0 0 569d8be9
1 2 3 4 5 6 7 8 9 a b c d e …Run Code Online (Sandbox Code Playgroud) 为什么即使你已经声明了一个私有的静态最终变量,一个颜色 - 默认C,让我们说 - 然后你仍然不能this.defaultC在超级构造函数中使用(即你只能使用super(defaultC)而不是super(this.defaultC),即使它只是简单的等价defaultC.
我只是试图将Tile类扩展为Wall类,而Wall类我存储了所有墙的所有必要private static final变量(例如它们的宽度和高度,另一个int和默认颜色),而Tile类已经有了一些变量(但它们protected不是private).我不希望Field hides another field弹出警告(因为Tile.java和Wall.java对于许多变量都有相同的名称),所以我使用this.了我的私有静态最终变量,并且有很多错误.
这并不是特别令人不安(因为我只是有一些警告),但我只是想知道为什么.我猜测编译器根本不喜欢它,因为你不能this在超类型之前引用,但仍然完全相同.是否还没有添加这样的功能,忽略了这样的事情,还是有其他原因我看不到你不能使用super(this.PRIVATE_STATIC_FINAL_VARIABLE);?
python ×2
c ×1
dictionary ×1
final ×1
inline ×1
java ×1
loops ×1
pointers ×1
python-3.x ×1
static ×1
super ×1
supertype ×1
syntax-error ×1