2017-12-16 4 views
0

だから、数値をとり、与えられた数値が見つかるまで乱数を通すプログラムを作ろうとしています。これはこれまでの私のコードです:Python 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'と関係があるのでしょうか?ここにはランダムなものは何もありません。 'zero = '0' * int(length)' – DeepSpace

+1

重複している可能性があります[Pythonでは、nの文字列を作成するにはどうすればよいですか? 1行のコード内の文字?](https://stackoverflow.com/questions/1424005/in-python-how-do-i-create-a-string-of-n-characters-in-one-line-of -コード) – quamrana

答えて

0

len()を整数に呼び出すことはできません。
len()は渡された引数の実際の長さを返します。したがって、len(33)は2を返します。これは33という数字に2文字しかないためですが、これはPythonで行うことができないものです。

代わりに、あなたは簡単に行うことができます: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 
関連する問題