質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2236閲覧

turtleの書く線の色を途中で変えたい

arinomi

総合スコア4

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/09/14 08:18

python初心者です。図形をtkinterとturtleで書くコードを作っていて、円の色と多角形の色を別で書かせようとしているのですが、以下のエラーコードが出てしまいました。どうしたらいいでしょうか。
エラーコードを調べて、渡す引数が本来より多くなってしまっていることが分かったのですが、どこを変更すべきかわかりません。

エラーコード

python

1 line 90, in circle 2 circle(int(get_txt4)) 3TypeError: circle() takes 0 positional arguments but 1 was given

該当のソースコード

python

1import tkinter as tk 2from turtle import* 3from tkinter import StringVar 4 5root = tk.Tk() 6root.geometry('300x600') 7 8frame = tk.Frame(root, width=300, height=300, bg="white") 9frame.place(x=100, y=140) 10lblL = tk.Label(text='x角形の色') 11lblL.place(x=25, y=140) 12 13 14 15var = StringVar(value=['black', 'red', 'blue', 'yellow', 'pink', 'green','white']) 16listbox0 = tk.Listbox(frame, 17 listvariable=var, 18 height=5) 19listbox0.pack() 20 21frame1 = tk.Frame(root, width=300, height=300, bg="white") 22frame1.place(x=100, y=320) 23lblL1 = tk.Label(text='円の色') 24lblL1.place(x=25, y=220) 25 26 27 28var = StringVar(value=['black', 'red', 'blue', 'yellow', 'pink', 'green','white']) 29listbox1 = tk.Listbox(frame, 30 listvariable=var, 31 height=5) 32listbox1.pack() 33 34lbl0 = tk.Label(text='x角形') 35lbl0.place(x=25,y=40) 36txt0 = tk.Entry(width=20) 37txt0.place(x=100, y=40) 38 39lbl3 = tk.Label(text='一辺の長さ') 40lbl3.place(x=25,y=60) 41txt3 = tk.Entry(width=20) 42txt3.place(x=100, y=60) 43 44lbl2 = tk.Label(text='x角形の数') 45lbl2.place(x=25,y=80) 46txt2 = tk.Entry(width=20) 47txt2.place(x=100, y=80) 48 49lbl1 = tk.Label(text='描きたい円の数') 50lbl1.place(x=25,y=100) 51txt1 = tk.Entry(width=20) 52txt1.place(x=100, y=100) 53 54lbl4 = tk.Label(text='半径') 55lbl4.place(x=25,y=120) 56txt4 = tk.Entry(width=20) 57txt4.place(x=100, y=120) 58 59 60def col1(): 61 if len(listbox0.curselection()) == 0: 62 return 63 index = listbox0.curselection()[0] 64 pencolor(listbox0.get(index)) 65 66def col2(): 67 if len(listbox1.curselection()) == 0: 68 return 69 index = listbox1.curselection()[0] 70 pencolor(listbox1.get(index)) 71 72def draw(): 73 get_txt0 = txt0.get() 74 get_txt2 = txt2.get() 75 get_txt3 = txt3.get() 76 for i in range(int(get_txt2)): 77 left(360 / int(get_txt2)) 78 for i in range(int(get_txt0)): 79 forward(int(get_txt3)) 80 left(360 / int(get_txt0)) 81 82 83 84 85 86def circle(): 87 get_txt1 = txt1.get() 88 get_txt4 = txt4.get() 89 for i in range(int(get_txt1)): 90 circle(int(get_txt4)) 91 left(360 / int(get_txt1)) 92 93 94 95 done() 96hideturtle() 97btn = tk.Button(text = '実行', command=lambda:[col1(), draw(), col2(), circle()],bg='RoyalBlue2',fg='green2') 98btn.pack(fill = 'x', padx=30) 99 100 101tk.mainloop()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

turtleからimportしたcircle関数とご自身で定義したcircle関数が同じ名前であるために提示エラーが発生しています。
ご自身で定義した関数名をmy_circleなりに変更すると動作するようになります。

投稿2020/09/14 08:40

can110

総合スコア38256

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

arinomi

2020/09/14 08:42

ありがとうございます。実行することができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問