2017-12-16 28 views
0

그래, 주어진 숫자를 찾을 때까지 숫자를 취한 다음 난수를 거치는 프로그램을 만들려고합니다. 지금까지 내 코드입니다 :파이썬 3 : 0의 숫자로 숫자를 전송하려합니다.

import random 
number=input("Enter any number: ") #takes input from user 
length=len(number) #gets the length of the number 
zero=("0"xlength) #is supposed to set the number of zero's to the number length. eg if the length is "4" it returns "0000" 

가변 숫자를 스스로 복제하는 방법을 모르겠습니다.

+6

는 이것이 random''로해야합니까? 여기에는 무작위가 없습니다. 어쨌든'length'를'int'로 변환하고 적절한 연산자를 사용하면 코드가 작동합니다 :'zero = '0'* int (length)' – DeepSpace

+1

[Python에서, n 문자 한 줄에?] (https://stackoverflow.com/questions/1424005/in-python-how-do-i-create-a-string-of-n-characters-in-one-line-of -암호) – quamrana

답변

0

len()을 정수로 호출 할 수 없습니다.
은 전달 된 인자의 실제 길이를 반환하므로, len(33)은 2를 반환합니다. 왜냐하면 숫자 33에는 2 문자가 있기 때문에 파이썬에서 할 수있는 것이 아니기 때문입니다.

대신 간단하게 수행 할 수 있습니다 input()는 문자열을 반환하고 문자열로 문자열을 증식 할 수 없기 때문에 당신이 정수로 number을 변환해야

number = input("Enter any number: ") # takes input from user 
number = int(number) # convert number to an integer 
zero = '0' * number # multiplies '0' by number 

이유입니다. 예 : 대신

>>> number = '4' 
>>> zero = '0' * number 
Traceback (most recent call last): 
    File "<pyshell#2>", line 1, in <module> 
    zero = '0' * number 
TypeError: can't multiply sequence by non-int of type 'str' 

, 이것은 잘 될 것입니다 :

>>> number = 4 
>>> zero = '0' * number 
>>> print(zero) 
0000