即使用户输入的是小写字母,如何以大写字母接收用户的任何输入?
How to take any input from the users in capital letters even if the user is entering it in small letters?
我正在尝试使用 python 生成故事。为此,我试图从用户那里获取一些问题的意见。我想要得到的场景是,每当用户输入时,它就会以大写字母显示在输出屏幕上。
但是发生的是文本显示为小写字母。
这是代码示例
message1 = input(" my name is: ")
message2 = input(" i am from: ")
message3 = input(" i love to eat: ")
print( " My name is " + message1.upper() + " I am from " + message2.upper() + " I love to eat " + message3.upper())
当用户输入 sandeep
时,我希望 My name is SANDEEP
,但我得到 sandeep
。
因此,这仅适用于 Linux 系统且仅适用于 ASCII 字符:
import termios
import sys
def uppercase_input(prompt):
sys.stdout.write(prompt)
sys.stdout.flush()
old = termios.tcgetattr(sys.stdout.fileno())
new = old[:]
new[1] |= termios.OLCUC
termios.tcsetattr(sys.stdout.fileno(), termios.TCSANOW, new)
try:
return input().upper()
finally:
termios.tcsetattr(sys.stdout.fileno(), termios.TCSANOW, old)
result = uppercase_input("all uppercase? ")
print("yes: {}".format(result))
这使用一些有趣的古老设置将 I/O to/from 大写从旧时代的终端仅支持大写 ASCII 转换为大写。
来自man tcsetattr
:
OLCUC (not in POSIX) Map lowercase characters to uppercase on output.
所以这个解决方案并不是真正可移植的。
对于完全可移植的解决方案,您需要自己实现回显。
您可以将以下代码用于控制台应用程序。我在完整阅读后正在转换输入。但是当你在 web 应用程序中实现它时(通过在那里使用 html 和 javascript),你可以轻松地安静地完成工作并获得你想要的结果(将你输入的每个字符转换为大写)。
import os
message1 = input(" MY NAME IS: ")
os.system('cls')
message1="MY NAME IS : "+message1.upper()
res=message1+"\n"
message2 = input(res+"I AM FROM: ")
os.system('cls')
res+="I AM FROM : "+message2.upper()+"\n"
message2="I AM FROM : "+message2.upper()
message3 = input(res+"I LOVE TO EAT: ")
os.system('cls')
res+="I LOVE TO EAT : "+message3.upper()+"\n"
message3="I LOVE TO EAT: "+message3.upper()
print(res+"\n\n\n"+ message1 +"\t"+message2+"\t"+message3)
我正在尝试使用 python 生成故事。为此,我试图从用户那里获取一些问题的意见。我想要得到的场景是,每当用户输入时,它就会以大写字母显示在输出屏幕上。
但是发生的是文本显示为小写字母。
这是代码示例
message1 = input(" my name is: ")
message2 = input(" i am from: ")
message3 = input(" i love to eat: ")
print( " My name is " + message1.upper() + " I am from " + message2.upper() + " I love to eat " + message3.upper())
当用户输入 sandeep
时,我希望 My name is SANDEEP
,但我得到 sandeep
。
因此,这仅适用于 Linux 系统且仅适用于 ASCII 字符:
import termios
import sys
def uppercase_input(prompt):
sys.stdout.write(prompt)
sys.stdout.flush()
old = termios.tcgetattr(sys.stdout.fileno())
new = old[:]
new[1] |= termios.OLCUC
termios.tcsetattr(sys.stdout.fileno(), termios.TCSANOW, new)
try:
return input().upper()
finally:
termios.tcsetattr(sys.stdout.fileno(), termios.TCSANOW, old)
result = uppercase_input("all uppercase? ")
print("yes: {}".format(result))
这使用一些有趣的古老设置将 I/O to/from 大写从旧时代的终端仅支持大写 ASCII 转换为大写。
来自man tcsetattr
:
OLCUC (not in POSIX) Map lowercase characters to uppercase on output.
所以这个解决方案并不是真正可移植的。
对于完全可移植的解决方案,您需要自己实现回显。
您可以将以下代码用于控制台应用程序。我在完整阅读后正在转换输入。但是当你在 web 应用程序中实现它时(通过在那里使用 html 和 javascript),你可以轻松地安静地完成工作并获得你想要的结果(将你输入的每个字符转换为大写)。
import os
message1 = input(" MY NAME IS: ")
os.system('cls')
message1="MY NAME IS : "+message1.upper()
res=message1+"\n"
message2 = input(res+"I AM FROM: ")
os.system('cls')
res+="I AM FROM : "+message2.upper()+"\n"
message2="I AM FROM : "+message2.upper()
message3 = input(res+"I LOVE TO EAT: ")
os.system('cls')
res+="I LOVE TO EAT : "+message3.upper()+"\n"
message3="I LOVE TO EAT: "+message3.upper()
print(res+"\n\n\n"+ message1 +"\t"+message2+"\t"+message3)