Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 19, 2014 10:04:14

vadimzlobin
Зарегистрирован: 2014-11-19
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите настроить программу(Я новичёк)

Операторы нужно переставить в нужном порядке и вставить необходимые отступы.
Программа спрашивает у пользователя, сколько фигур нарисовать, и рисует с помощью средств модуля turtle квадраты и окружности. Координаты начала, сторона квадрата/диаметр окружности выбираются случайно, также как и вид фигуры.

Данные каждой фигуры записываются в файл. В конец файла выводится самая большая сторона квадрата и самый большой диаметр окружности с пояснительным текстом.



Дополнительно

Изменить программу так, чтобы она рисовала и равносторонние треугольники.

Дополнить программу так, чтобы пределы случайных чисел для координат и размеров читались из текстового файла .

Отредактировано vadimzlobin (Ноя. 19, 2014 10:25:46)

Прикреплённый файлы:
attachment K.r.py (926 байт)

Офлайн

#2 Ноя. 19, 2014 10:26:46

vadimzlobin
Зарегистрирован: 2014-11-19
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите настроить программу(Я новичёк)

http://pastebin.com/fEJHkfWT - начало

Отредактировано vadimzlobin (Ноя. 19, 2014 10:41:06)

Офлайн

#3 Ноя. 19, 2014 11:43:27

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

Помогите настроить программу(Я новичёк)

Зачем создавать темы? обраматить код в теги надо



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#4 Ноя. 19, 2014 11:47:48

vadimzlobin
Зарегистрирован: 2014-11-19
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите настроить программу(Я новичёк)

from random import randint
from turtle import *
print('Please enter a number')
Answer=input('How many figures to draw? ')
def draw(x,y,length,shape):
    up()
    setpos(x,y)
    x=randint(-100,100)
    y=randint(-100,100)
    down()
    
def polygon(L):
    for i in range(N):
        draw(x,y,L,shape)
        for i in range(4):
            forward(L),left(90)
            
if Answer.isdigit():
    L=randint(50,100)
    
while True:
    N=int(Answer)
    if f==0:
    if len(circles)>0:
        circle(length/2)
        circles.append(L)
        circles=[]
    if len(squares)>0:
    if shape=='circle':
        squares=[]
        shape='circle'
    if shape=='square':
        shape='square'
        squares.append(L)
        squares=[]
        break
    
f=randint(0,1)
polygon(length)
squares.append(L)
shape='circle'
shape='square'
else:
else:
else:
else:
return False
return True
#OK
MyFile = open("kt31.txt", "w")
MyFile.write('The largest square is '+str(max(squares))+'\n')
MyFile.write('The largest circle is '+str(max(circles))+'\n')
MyFile.write(str(x)+'\t'+str(y)+'\t'+str(L)+'\t'+shape+'\n')
MyFile.close() 

Отредактировано vadimzlobin (Ноя. 19, 2014 11:49:13)

Офлайн

#5 Ноя. 19, 2014 22:34:09

Paranoia_Agent
Зарегистрирован: 2014-06-25
Сообщения: 75
Репутация: +  5  -
Профиль   Отправить e-mail  

Помогите настроить программу(Я новичёк)

Дело было вечером, делать было нечего…

Код для сохранения начальных пределов:

import pickle
coord_max=(800,600)
max_len_figure={"circle":40,"square":42,"triangle":38}
data=[coord_max,max_len_figure]
filename="C:/Users/User/Desktop/file_figures_max.ff"
filesaves=open(filename, "wb")
pickle.dump(data, filesaves)
filesaves.close()

Код программы:

import pickle
import turtle
import random
import math
def turtle_circle(diameter,x,y):
    turtle.up()
    turtle.goto(x+diameter/2,y+diameter)
    turtle.down()
    turtle.circle(-diameter/2)
def turtle_square(length,x,y):
    turtle.up()
    turtle.goto(x,y)
    turtle.down()
    for counter in range(4):
        turtle.forward(length)
        turtle.left(90)
def turtle_triangle(length,x,y):
    turtle.up()
    turtle.goto(x,y)
    turtle.down()
    for counter in range(3):
        turtle.forward(length)
        turtle.left(120)
filenameset="C:/Users/User/Desktop/file_figures_max.ff"
filenamesave="C:/Users/User/Desktop/figures.txt"
fileopen=open(filenameset, "rb")
filesaves=open(filenamesave, "w")
coord_max,max_len_figure=pickle.load(fileopen)
fileopen.close()
window=turtle.Screen()
window.setup (width=coord_max[0]+40, height=coord_max[1]+40)
turtle.up()
turtle.goto(-coord_max[0]/2,-coord_max[1]/2)
turtle.down()
turtle.goto(coord_max[0]/2,-coord_max[1]/2)
turtle.goto(coord_max[0]/2,coord_max[1]/2)
turtle.goto(-coord_max[0]/2,coord_max[1]/2)
turtle.goto(-coord_max[0]/2,-coord_max[1]/2)
figure=("circle","square","triangle")
max=[0,0,0]
while True:
    try:
        number=int(input("Введите количество фигур: "))
        if number>0:
            break
        else:
            print ("Неправильный ввод, введите цифру не меньше 1")
    except ValueError:
        print ("Это не число, введите, пожалуйста, цифру не меньше 1.")
200
for index in range(number):
    temp_fig=random.choice(figure)
    length=random.randint(1,max_len_figure.get(temp_fig))
    x_coor=random.randint(-coord_max[0]/2,coord_max[0]/2-length)
    if temp_fig=="triangle":
        y_coor=random.randint(-coord_max[1]/2,coord_max[1]/2-math.ceil(math.sqrt(3)/2*length))
    else:
        y_coor=random.randint(-coord_max[1]/2,coord_max[1]/2-length)
    if temp_fig=="circle":
        turtle_circle(length,x_coor,y_coor)
        if length/2>max[0]:
            max[0]=length/2
        filesaves.write(str(index+1)+". Построен круг радиусом: "+str(length/2)+", с координатами центра: "+str(x_coor+length/2)+", "+str(y_coor+length/2)+"\n")
    elif temp_fig=="square":
        turtle_square(length,x_coor,y_coor)
        if length>max[1]:
            max[1]=length
        filesaves.write(str(index+1)+". Построен квадрат со сторонами: "+str(length)+", с координатами левого нижнего угла: "+str(x_coor)+", "+str(y_coor)+"\n")
    elif temp_fig=="triangle":
        turtle_triangle(length,x_coor,y_coor)
        if length>max[2]:
            max[2]=length
        filesaves.write(str(index+1)+". Построен равнобедренный треугольник со сторонами: "+str(length)+", с координатами левого нижнего угла: "+str(x_coor)+", "+str(y_coor)+"\n")
    else:
        print("Нет функции постройки фигуры: ",temp_fig)
        filesaves.write(str(index+1)+". Не построена фигура: "+temp_fig+"\n")
filesaves.write("-"*40+"\n")
filesaves.write("Максимальный радиус круга: "+str(max[0])+"\nМаксимальная сторона квадрата: "+str(max[1])+"\nМаксимальная сторона треугольника: "+str(max[2]))
filesaves.close()

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version