আমি কিভাবে একটি মেনু তৈরি করব যা ব্যবহারকারীকে নির্বাচন করার জন্য [এন্টার] চাপতে হবে না?

আমি পাইথনে একটি মেনু পেয়েছি যে অংশ সহজ ছিল। আমি ব্যবহারকারী থেকে নির্বাচন পেতে raw_input() ব্যবহার করছি

সমস্যা হল যে raw_input (এবং ইনপুট) ব্যবহারকারীকে নির্বাচন করার পর এন্টার নির্বাচন করার প্রয়োজন হয়। কী কী কী কী কী কী পদ্ধতিতে অবিলম্বে কাজ করা কোন উপায় আছে? এখানে আমি কি পেয়েছি এখানে:

import sys
print """Menu
1) Say Foo
2) Say Bar"""
answer = raw_input("Make a selection> ")

if "1" in answer: print "foo"
elif "2" in answer: print "bar"

এটা ভালো কিছু আছে মহান হবে

print menu
while lastKey = "":
    lastKey = check_for_recent_keystrokes()
if "1" in lastKey: #do stuff...
0

4 উত্তর

বাহ, যে চিরতরে নেয় ঠিক আছে, আমি এখানে শেষ করেছি

#!C:\python25\python.exe
import msvcrt
print """Menu
1) Say Foo 
2) Say Bar"""
while 1:
    char = msvcrt.getch()
    if char == chr(27): #escape
        break
    if char == "1":
        print "foo"
        break
    if char == "2":
        print "Bar"
        break

এটি IDLE, পাইথন ... জিনিস ... যা পাইথন দিয়ে আসে। কিন্তু একবার ডস (এ, সিএমডি। এক্সে) এ এটি একটি বাস্তব প্রোগ্রাম হিসাবে ব্যবহার করার পরে, এটি দারুণ রান করে।

যদি কেউ টাস্ক ম্যানেজার না থাকে তবে আইডিএলে এটির কোনও চেষ্টা করা হয় না।

আমি ইতিমধ্যেই ভুলে গেছি কিভাবে আমি মেনুসের সাথে বসবাস করতাম যেগুলি অতি তাত্ক্ষণিক প্রতিক্রিয়াশীল নয়।

0
যোগ

লিনাক্সে:

  • কাঁচা মোড সেট করুন
  • কীস্ট্রোক নির্বাচন করুন এবং পড়ুন
  • স্বাভাবিক সেটিংস পুনরুদ্ধার
import sys
import select
import termios
import tty

def getkey():
    old_settings = termios.tcgetattr(sys.stdin)
    tty.setraw(sys.stdin.fileno())
    select.select([sys.stdin], [], [], 0)
    answer = sys.stdin.read(1)
    termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_settings)
    return answer

print """Menu
1) Say Foo
2) Say Bar"""

answer=getkey()

if "1" in answer: print "foo"
elif "2" in answer: print "bar"

0
যোগ

উইন্ডোজে:

import msvcrt
answer=msvcrt.getch()
0
যোগ

কারণ msvcrt IDLE- এ ব্যর্থ হয় কারণ IDLE msvcrt চালানোর লাইব্রেরি অ্যাক্সেস করছে না। যখন আপনি cmd.exe এ natively প্রোগ্রাম চালানোর সময় এটি চমত্কারভাবে কাজ করে। একই কারণে ম্যাক এবং লিনাক্স টার্মিনালে আপনার প্রোগ্রামটি উড়ে যায়।

কিন্তু আমি অনুমান করি যদি আপনি এই উইন্ডোতে বিশেষভাবে ব্যবহার করতে যাচ্ছেন, তাহলে আরও শক্তি।

0
যোগ