2014-12-13 4 views
0

Я делаю программу на основе меню, и я хочу, чтобы это было, когда вы откроете скрипт, он скажет. «Загрузка меню, пожалуйста, подождите ..» Тогда меню начнет появляться, но не сразу, оно начнет появляться по одному слову за раз, как будто я пишу его там, а потом, если вы меня поймете. я его, как это до сих пор, например:Как написать код питона python

#Imports time so i can delay things:D 
import time 

# This will ask the end user to input his/her choice ;D 
def area(): 
    print("Loading Menu please wait..") 
    time.sleep(2) 
    print (" _______________") 
    time.sleep(1) 
    print ("||    ||") 
    time.sleep(1) 
    print ("||Area Calculator||") 
    time.sleep(1) 
    print ("||  V1.0  ||") 
    time.sleep(1) 
    print ("|| By William F ||") 
    time.sleep(1) 
    print ("||_______________||") 
    time.sleep(1) 
    print ("Please Select A Shape") 
    time.sleep(1) 
    print ("1. Square") 
    time.sleep(1) 
    print ("2. Rectangle") 
    time.sleep(1) 
    print ("3. Circle") 
    time.sleep(1) 
    print ("4. Triangle") 
    time.sleep(1) 
    print ("5. Exit") 
    print() 
    time.sleep(1) 
    return 

#This will call the function to display the menu 
area() 

Это работает, но я хочу, чтобы вводить себя, как он загружает так я попытался добавить это:

print (" _", time.sleep(1),"______________") 

Собиралась добавить, что после каждого письма, но когда я тестировал на нем, он отображал «Нет», где время сна? Любые идеи? Большое вам спасибо. Очень признателен.

ответ

2

Вот функция, которая может помочь вам:

import time 
import sys 


def slowshow(text, delay=0.2): 
    for c in text: 
     time.sleep(delay) 
     sys.stdout.write(c) 
    print "" 

slowshow("Hello, I am Reut Sharabani!") 

Более забавная версия этого было бы сделать его синхронизированы, чтобы вы могли выполнять вычисления без блокировки своей программы:

import time 
import sys 
import threading 

# lock the sys.stdout stream when a thread is printing. 
slowshow_lock = threading.Lock() 

def slowshow(text, delay=0.2): 
    slowshow_lock.acquire() 
    for c in text: 
     time.sleep(delay) 
     sys.stdout.write(c) 
    print "" 
    slowshow_lock.release() 

# they will show when needed 
threading.Thread(target=slowshow, args=("Hello, I am Reut Sharabani!",)).start() 
threading.Thread(target=slowshow, args=("Hello, I am Albus Dumbledore!",)).start() 

# this should show immediately, even though we've sent text to printing! 
print "VERY COMPLEX BACKGROUND CALCULATION" 
+0

Вау, спасибо! Работает отлично !!!: D –

+0

Я добавил более удобную синхронизированную версию, если вы намереваетесь выполнять длительные операции и не хотите ждать, пока текст будет напечатан. –

0

Используйте это, чтобы сделать его «типом себя»; это просто удаляет символ новой строки:

import sys, time 
sys.stdout.write(' _') 
time.sleep(1) 
sys.stdout.write('____________") 

Выход:

_(1 second wait)_____________ 
Смежные вопросы