python tutorial मैं एक मेनू कैसे बना सकता हूं जिसके लिए उपयोगकर्ता चयन करने के लिए[प्रविष्ट करें] की आवश्यकता नहीं है?




python tutorial pdf (4)

मेरे पास पायथन में एक मेनू है वह भाग आसान था। मैं उपयोगकर्ता से चयन प्राप्त करने के लिए 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...

लिनक्स पर:

  • कच्चा मोड सेट करें
  • कुंजीस्ट्रोक का चयन करें और पढ़ें
  • सामान्य सेटिंग्स को पुनर्स्थापित करें
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"


वाह, वह हमेशा के लिए ले लिया ठीक है, यह है कि मैंने क्या किया है

#!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, अजगर ... का उपयोग करके कड़ी मेहनत करता है ... जो अजगर के साथ आता है। लेकिन एक बार मैंने डॉस (एर, सीएमडी। एक्सई) में एक वास्तविक कार्यक्रम के रूप में कोशिश की, तो यह ठीक चल रहा था।

जब तक आपके पास कार्य प्रबंधक काम नहीं करते हैं, तब तक कोई भी इसे आईडीई में नहीं आज़माएं।

मैं पहले से ही भूल गया हूं कि मैं मेनू के साथ कैसे जीता हूं जो अति-त्वरित उत्तरदायी नहीं है।


कारण एमएसवीसीआरएस आईएसएलई में विफल रहता है क्योंकि आईडीईएल पुस्तकालय तक पहुंच नहीं कर रहा है जो कि एमएसवीसीआरएम चलाता है। जबकि जब आप cmd.exe में natively कार्यक्रम चलाते हैं तो यह अच्छी तरह से काम करता है उसी कारण के लिए कि आपका प्रोग्राम मैक और लिनक्स टर्मिनलों पर चल रहा है

लेकिन मुझे लगता है कि यदि आप इसे विशेष रूप से खिड़कियों के लिए उपयोग कर रहे हैं, फिर अधिक शक्ति।


विंडोज़ में:

import msvcrt
answer=msvcrt.getch()




python