2

私の目標はコードの最後の印刷行ですが、TypeError:+: ' int' および ' str' のオペランド タイプがサポートされていないというエラーが発生し続けるため、実際にはできません。それを可能にするために出力部分だけを変更する簡単な方法はありますか? そもそもintに変換する必要がありますが、この出力の場合、intの横に「人口」と「面積」という単語が必要です!

def _demo_fileopenbox():        
    msg  = "Pick A File!"
    msg2 = "Select a country to learn more about!"
    title = "Open files"
    default="*.py"
    f = fileopenbox(msg,title,default=default)
    writeln("You chose to open file: %s" % f)    
    countries = {}   

        with open(f,'r') as handle:

        reader = csv.reader(handle, delimiter = '\t')  

        for row in reader:

        countries[row[0]] = int(row[1].replace(',', '')), int(row[2].replace(',', ''))

        reply = choicebox(msg=msg2, choices= list(countries.keys()) )

        print(reply)

        print((countries[reply])[0])

        print((countries[reply])[1])

        #print(reply + "- \tArea: + " + (countries[reply])[0] + "\tPopulation: " + (countries[reply])[1] )
4

2 に答える 2

4

次のように文字列に変換する必要がありますstr()

print(reply + "- \tArea: " + str(countries[reply][0]) + "\tPopulation: " + str(countries[reply][1]))

または、それらを引数として渡して、print処理させます。

print(reply + "- \tArea:", countries[reply][0] + "\tPopulation:", countries[reply][1])

この時点では、文字列の書式設定を使用します。

print('{}- \tArea: {}\tPopulation: {}'.format(reply, rountries[reply][0], rountries[reply][1]))
于 2013-02-27T05:20:13.267 に答える