2014-04-03 3 views
0

그래서 파이썬으로 코딩하기 시작했고 몬테카를로 알고리즘을 사용하여 파이의 값을 근사값으로하는 프로젝트를 할당 받았습니다. 나는 이미 개념적 비트를 가졌지 만 이제는 사각형을 인쇄하고 그것에 체크 표시를해야합니다. 사각형은 사용자가 지정한 크기로 정의해야합니다.사각형 만들기

나는 다음과 같은 코드를 사용하여 인쇄 광장을 얻을 관리했습니다 : 내가 추가 할 때 어떤 이유를 들어

import random 
#defines the size of the square 
squareSize = raw_input("Enter a square size:") 
#defines the width of the square 
print "#" * (int(squareSize)+2) 
#defines the length of the square. 
for i in range(0,int(squareSize)): 

    print "#", " " * (int(squareSize)-2), "#" 

print "#" * (int(squareSize)+2) 

을 :

#determines the x value of a point to display 
x = random.uniform(-1*(squareSize),squareSize) 
놨어요 변수를 생성

또는 다른 어떤 "squareSize"는 다음과 같습니다.

Traceback (most recent call last): 
    File "<stdin>", line 6, in <module> 
    File "/lib/python2.7/random.py", line 357, in uniform 
    return a + (b-a) * self.random() 
TypeError: unsupported operand type(s) for -: 'str' and 'str' 

내가 할 수있는 도움을 주시면 감사하겠습니다. 이걸로, 나는 그것이 내가 바라보고있는 것이 어리석은 것이 틀림 없다라고 확신한다. 그러나 나는 그것을 이해할 수 없다.

감사합니다.

알렉스.

+1

raw_input에 의해 반환 된 문자열을 변환하여, 당신의 squareSize 변수 (유형 변경) 캐스트 할 수 있습니다 당신은 random.uniform에서 "INT"를 잊었다 :'random.uniform (-1 * int (squaresize), int (squaresize))). 그러나 @alecxe가 암시 하듯이이 작업은 한 번만 수행해야합니다. – fredtantini

답변

3

squareSizestr 유형입니다. random.uniformint 유형의 인수를 기다립니다.

당신은 간단하여 고정 할 수 :

squareSize = int(raw_input("Enter a square size:")) 

이 코드는 결국 다음과 같아야합니다 :

import random 

squareSize = int(raw_input("Enter a square size:")) 

print "#" * (squareSize + 2) 
for i in range(0,squareSize): 
    print "#", " " * (squareSize) - 2, "#" 
print "#" * (squareSize + 2) 

x = random.uniform(-1 * squareSize, squareSize) 
한 번 시작 부분에 int에, 더 나은 캐스트 squareSize

x = random.uniform(-1*(int(squareSize)),int(squareSize)) 

그러나

희망이 도움이됩니다. squareSize 문자열이기 때문에

+0

도움을 주셔서 감사 드리며 늦게 회신 해 주셔서 진심으로 감사드립니다. 완벽하게 일했습니다. – alexniu149

1

raw_input 함수는 문자열 (str)이 아닌 정수 (int)

를 반환, 당신은에 - 작업을 수행 할 수 없습니다. 이것은 당신이하고 싶지 않았기 때문입니다. 두 정수에서 대입 (또는 함수 random)을 수행하려고했습니다.

그래서, 그 목적을 위해, 당신은 int

#defines the size of the square 
squareSize = raw_input("Enter a square size:") 
관련 문제