Форум сайта python.su
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png) 
			 
							 3
  3   
								
								Если это квадрат из текстовых исмволов ‘*’ в консоли, то код таков
Вот функция, где единственный аргумент n - длина стороны квадрата
def kvadrat(n):
    s = ‘*’*n + ‘\n’ + ('*' + ‘ ’*(n-2) + ‘*’ + ‘\n’)*(n-2) + ‘*’*n
    return s
А юзать следующим образом:
print kvadrat(10)
Офлайн
 
							 12
  12   
								
								у меня на экране так примерно
def kvadrat(n):
    s = ‘*’*n + ‘\n’ + ('*' + ‘ ’*(n-2) + ‘*’ + ‘\n’)*(n//3) + ‘*’*n
    return s
Офлайн
 
							 12
  12   
								
								даже так:
def kvadrat(n):
s = '*'*n + '\n' + ('*' + ' '*(n-2) + '*' + '\n')*(int(n/2.5)) + '*'*n
return s
Офлайн
 
							 3
  3   
								
								Поскольку, действительно, на разных экранах такое будет по разному (и в зависимости от настроек), так что я поставил своей целью считать длину стороны в количестве звездочек, а не в единицах длины… По-моему, главное принцип…=)
Офлайн
 
							 12
  12   
								
								да я не спорю))
Офлайн
 
							 3
  3   
								
								izekia
В связи с таким подходом у меня возникает вопрос, можно ли как-то програмно вычислить этот коэффициент, чтоб максимально реальный квадрат получить (не подбирая вручную) ?
Отредактировано (Июль 28, 2008 18:31:47)
Офлайн
 
							 1
  1   
								
								По отношению ширины символа/высоты строки.
PS: ребята, не ведитесь на женские имена типа Настя/Катя. В многих случаях это ленивый студент **ческого факультета у которого проблема с лабами. Этакий психологический ход. 
Я уже не говорю, что могло бы хватить мозгов нормально и человеческим языком формулировать просьбу и не где попало.
Отредактировано (Июль 28, 2008 18:44:47)
Офлайн
 
							 0
  0   
								
								Да ладно, это все повод для разминки ума. %)
import time
import turtle
import math
def zvezda5():
razmer = 20
turtle.up()
turtle.forward((razmer/2)/(math.sin(36)))
turtle.right(-18)
turtle.down()
for x in xrange(5):
turtle.forward(razmer)
turtle.right(144)
turtle.up()
turtle.right(198)
turtle.forward((razmer/2)*math.sin(36))
turtle.right(180)
turtle.speed('fast')
turtle.degrees()
turtle.up()
turtle.left(90)
for x in xrange(4):
for x in xrange(5):
turtle.forward(25)
turtle.left(90*x)
zvezda5()
turtle.right(90*x)
turtle.right(90)
time.sleep(15)
Отредактировано (Июль 28, 2008 18:48:24)
Офлайн
 
							 10
  10   
								
								Супер решение!!
Жаль отвалилась рейтинговая система - некуда плюсик поставить :)
Офлайн
 
							 0
  0   
								
								офигенно…..
Офлайн
![[RSS Feed] [RSS Feed]](/static/djangobb_forum/img/feed-icon-small.png)