使用Python msvcrt时的代码问题

问题描述 投票:1回答:1

仅显示空白屏幕,怎么了?

import msvcrt
while(1):
  choice = msvcrt.getch()
  if(choice =='a'):
      print('a')
  elif(choice =='s'):
      print('s')
python python-3.x msvcrt
1个回答
0
投票

您的问题是getch()返回的是字节而不是字符串。如果按a,则choice的值是字节字符串b'a',与字符串'a'不同。考虑一下:

>>> choice = b'a'
>>> choice == 'a'
False
>>> choice.decode() == 'a'
True

并且您的屏幕保持空白,因为if-条件不可能为真,并且您没有包罗万象的else:子句。您只需打印出choice的值,便可以自己发现这一点。

从]更改测试>

if choice =='a':

if choice.decode() == 'a':

((并从if测试中删除那些不必要的paren)。

© www.soinside.com 2019 - 2024. All rights reserved.