for-cycle是如何工作的?我哪里做错了?刽子手的游戏


from turtle import*
from random import*
def joonista_mees(valede_pakkumiste_arv):
    if valede_pakkumiste_arv == 1:
        ht()
        up()
        right(90)
        forward(150)
        right(90)
        forward(30)
        right(180)
        down()
        forward(200)
        back(170)
        left(90)
        forward(150)
        right(90)
        forward(100)
        right(90)
    if valede_pakkumiste_arv == 2:
        forward(15)
        right(90)
        circle(15)
        left(90)
        up()
        forward(30)
        down()
    if valede_pakkumiste_arv == 3:
        forward(45)
        backward(45)
        right(45)
        forward(20)
        backward(20)
        left(90)
    if valede_pakkumiste_arv == 4:
        forward(20)
        backward(20)
        right(45)
        forward(45)
        right(30)
    if valede_pakkumiste_arv == 5:
        forward(45)
        backward(45)
        left(60)
    if valede_pakkumiste_arv == 6:
        forward(45)
        backward(45)
        right(30)
        up()
        backward(67)
    if valede_pakkumiste_arv == 7:
        right(90)
        forward(3)
        right(45)
        down()
        forward(3)
        backward(6)
        forward(3)
        right(90)
        forward(3)
        backward(6)
        forward(3)
        right(45)
        up()
        forward(6)
        left(45)
        down()
        forward(3)
        backward(6)
        forward(3)
        right(90)
        forward(3)
        backward(6)
asjad=["arvuti", "pliit", "ideed", "piimakokteil", "pilvelõhkuja", "saun", "mikrolaineahi",
       "vannituba", "niidumets", "lamminiit", "paber",]
s6na = choice(asjad)
print("Sa pead ühe sõna ära arvama.nSul on selleks 7 võimalustnSõna pikkus on "+str(len(s6na))+".")
s6na_pikkus = len(s6na)
max_valede_pakkumiste_arv = 7
proovitud_t2hed = ""
pakkumiste_arv_6ige = 0
valede_pakkumiste_arv = 0
arvamiste_arv_kokku = 0
while (valede_pakkumiste_arv != max_valede_pakkumiste_arv) and (pakkumiste_arv_6ige != s6na_pikkus):
    t2ht = input("Paku täht:")
    t2ht.strip().upper()
    print("Pakkusid tähte '"+t2ht+"'.")
    if len(t2ht) == 1 and t2ht.isalpha():
        if proovitud_t2hed.find(t2ht) != -1:
            print("Sa oled juba seda tähte '" + t2ht + "' juba valinud.")
        elif s6na.count(t2ht) >= 1:
            print("See täht '" + t2ht + "' on selles sõnas olemas.")
            proovitud_t2hed += t2ht
            pakkumiste_arv_6ige += int(s6na.count(t2ht))
            arvamiste_arv_kokku += 1
        else:
            print("See täht '" + t2ht + "' ei ole selles sõnas olemas.")
            proovitud_t2hed += t2ht
            valede_pakkumiste_arv += 1
            joonista_mees(valede_pakkumiste_arv)
            arvamiste_arv_kokku += 1
else:
    print("Sa pead kirjutama ainult ühe tähe.")
for t2ht in s6na:
    if t2ht in proovitud_t2hed:
        print(t2ht)
    else:
        print("_")

print("nSeni proovitud tähed: " + proovitud_t2hed + ".n")
if valede_pakkumiste_arv == max_valede_pakkumiste_arv:
    print("Mäng läbi!")
    break
if pakkumiste_arv_6ige == s6na_pikkus:
    print("nArvasid kõik tähed selles sõnas ära.nSee sõna oli '"+s6na+"'.")
    break
input("nVajuta ENTER, et väljuda...")

这是我的编程课程项目。显然,它已经完成并按预期工作,但有一个小问题。这是绞刑游戏,你可能知道这个游戏。所以,当运行时,它看起来是这样的…这是爱沙尼亚语,但我希望你能理解,因为我不想翻译。S6na = word, t2ht = letter, proprovitud_t2hed = tried_letters

Sa pead ühe sõna ära arvama.
Sul on selleks 7 võimalust
Sõna pikkus on 9.
Paku täht:l
Pakkusid tähte 'l'.
See täht 'l' ei ole selles sõnas olemas.
_
_
_
_
_
_
_
_
_
Seni proovitud tähed: l.
Paku täht:n
Pakkusid tähte 'n'.
See täht 'n' on selles sõnas olemas.
n
_
_
_
_
_
_
_
_
Seni proovitud tähed: ln.

但是我想让它看起来像这样。

n _ _ _ _ _ _ _ _

我是Python的新手,所以请帮助我解决这个问题。我只是不喜欢这样的程序外观,而且它占用了太多的空间。

你需要告诉print在每行打印后使用空格而不是换行符:

if t2ht in proovitud_t2hed:
    print(t2ht, end=' ')
else:
    print("_", end=' ')
print()

,在末尾加上一个额外的print()来打印最后的换行符。

或者,传递一个连接字符串给print():

print(' '.join(t2ht if t2ht in proovitud_t2hed else '_' for t2ht in s6na))

相关内容

最新更新