2017-03-18 8 views
1

Imに問題があります:ユーザーの希望に基づいて単語/数値を生成するプログラムを作成しました私はそれらをtxtファイルで印刷します。 1行に1語。 問題は、これを行うと(下に表示)、すべての数字/単語が2文字のみで機能することです。私は3つの鉱石より多くの文字を使用すると、それは次のようになります。Python 3.x - 生成された文字をリストとしてテキストファイルに書き込む

(行ごとに1つは、その記事でこれを行う方法を知らない。) を AA BA CA A DA EA FA GA HA IA JA KA LA MA NA OA PA QA RA SA TA UA VA WA A XA A YA ZA B AA B BA B CA B

CMDでの出力は右ですが、TXTファイルが間違っています。それで、私は何か間違っていましたか? (PSそのくだらないコードではなく、最高のIKのために私を責めいけない。)(PPSあなたはドイツ語でその足すBCSコードをunterstand願っています:/) あなたはPythonインタプリタで出力することを言っている場合

from colorama import Fore 
from colorama import init 
from os import system 
import itertools 

AZ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 


init() 

def Menu1(): 
    print(Fore.GREEN + "Dies ist ein Listengenerator. Bitte wähle deine Einstellungen") 
    print(Fore.CYAN + "Grossbuchstaben: ", Fore.RED + "1") 
    print(Fore.CYAN + "Kleinbuchstaben: ", Fore.RED + "2") 
    print(Fore.CYAN + "Gross- & Kleinbuchstaben: ", Fore.RED + "3") 
    print(Fore.CYAN + "Zahlen: ", Fore.RED + "4") 
    print(Fore.CYAN + "Grossbuchstaben & Zahlen: ", Fore.RED + "5") 
    print(Fore.CYAN + "Kleinbuchstaben & Zahlen: ", Fore.RED + "6") 
    print(Fore.CYAN + "Gross & Kleinbuchstaben sowie Zahlen: ", Fore.RED + "7") 
    print(Fore.CYAN + "") 
    user_input = input("") 
    global x 
    if user_input == "1": 
     x=1 

Menu1() 

if x==1: 
    def x1(): 
     with open("Grossbuchstaben.txt", "w") as f: 
      x = int(input("Minimale Zeichenlänge: ")) 
      y = int(input("Maximale Zeichenlänge: ")) 
      for n in range(x, y+1): 
       for xs in itertools.product(AZ, repeat=n,): 
        f.write("\n".join(xs)) 
        print("".join(xs)) #shows letters in console for seeing when its done 
if x==1: 
    x1() 
+0

これは、人々が目を通すことを期待する多くのコードでやってみたいです。デバッグを試みて、問題を絞り込んでください。 – Carcigenicate

+0

問題のある箇所が疑わしいコードの部分まで切り捨ててください。問題を絞り込むために何をトラブルシューティングしましたか?ここには多くのコードがあります。たぶん、誰かがこれを見て実行するかもしれませんが、通常、これは高速な回答を得るための最良の方法ではありません。 – idjaw

+0

私は申し訳ありませんが、idk何が間違って..それは完全に最大2文字で動作しますが、私は3、それはバグ.. – HealYouDown

答えて

0

をファイルの出力が間違っている場合は、実際に同じことを試してみるべきでしょう。通訳

"".join(xs) 

にファイルへのあなたのコードあなたの出力で

"\n".join(xs) 

が、あなたの出力は、最初の1は、第ながら、それらの間で改行してxsのすべての要素を連結しますxsのすべての要素を連結するだけで、それらの間に何も配置されません。

おそらく

f.write("".join(xs) + "\n") 
+0

ちょっと、あなたの答えのためにありがとう:) 私は 'f.writeを使用" ( '\ n" .join(xs)) 'の代わりに' 'f.write(" xs) ''の代わりに使用されます。/ – HealYouDown

+0

@HealYouDownは私の答えを更新しました –

+0

ありがとう、それはこのように動作します。<3 – HealYouDown

関連する問題