2016-04-12 23 views
-2

için bir belirli bir çizgiyi nasıl yazdırılır Temelde ben 10 elemanlı bir sözlük var ve bu baskı zaman çoksadece döngü

abc_dict { 'a':'Apple','b':'Banana','c':'Cat'}: 
str = user input 
for key, value in abc_dict.iteritems(): 
    str = str.replace(key, value) 
     print str 

Ancak böyle sözlükte kayıtlı olanlara kullanıcı girişi dizesi yerine gidiyorum sözlükteki her eleman için bir satır yazdırır ve sadece son satır tamamen değiştirilir. Benim çıkış Örnek

I like a, b, and c 
I like apple, banana, and c 
I like apple, banana, and cat 
Ben sadece bunun için sırayla kullanmalısınız hangi kavram

son satırı yazdırmak

+2

Baskı str'si satırını, döngü dışına gelinceye kadar çevirin. – zondo

+0

@zondo Neden baskı ifadesi döngü dışında olmalı? İçinde bir baskı ifadesi olan başka bir döngü var ama bunun bir "if" ifadesi altında olması durumu nasıl değiştiriyor? – juan

cevap

0

Sağ kodu:

abc_dict { 'a':'Apple','b':'Banana','c':'Cat'}: 
str = user input 
for key, value in abc_dict.iteritems(): 
    str = str.replace(key, value) 
print str 
Sizin hata

: Eğer forprint str kullanmak döngü

+0

Yani her döngüde "baskı" etkin olması için döngü dışında kalmalıdır? – juan

+0

@juan For döngüsüne koyduğunuz her şey for döngüsünün _every run_'ında yürütülür. Döngülerin ne için olduğu budur. Bir döngü her çalıştırdığınızda bir şey yapmak istemiyorsanız, bir döngü içine koymayın. Eğer bir for döngüsünün içine 'yazdırırsanız', döngünün her çalışmasına basacaktır. Her baskıda 'print' işleminin yapılmasını istemiyorsanız, bunu dışarıya koyun ve sadece döngü bittikten sonra çalışır. Kadar basit. –

+0

@juan Döngü bittikten sonra, döngüde belirli bir noktada çalışmak için "yazdır" a ihtiyacınız varsa, [ifadeler] 'e bakın (http://anh.cs.luc.edu/python/hands- açık/3.1/handsonHtml/ifstatements.html). –