Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 仅使用9创建“n”位数,其中“n”是可变的_Python_Python 3.x - Fatal编程技术网

Python 仅使用9创建“n”位数,其中“n”是可变的

Python 仅使用9创建“n”位数,其中“n”是可变的,python,python-3.x,Python,Python 3.x,例如,如果用户输入5,则输出:99999 我知道我可以使用for循环连接字符串,然后对字符串进行整型,但这种解决方案似乎无效。您可以尝试以下方法: n=input() result=int(('9'*int(n))) 您可以尝试以下操作: n=input() result=int(('9'*int(n))) 您可以简单地执行以下操作: >>> my_count = 5 >>> int('9'*my_count) 99999 这里,'9'*my_cou

例如,如果用户输入5,则输出:99999


我知道我可以使用for循环连接字符串,然后对字符串进行整型,但这种解决方案似乎无效。

您可以尝试以下方法:

n=input()

result=int(('9'*int(n)))

您可以尝试以下操作:

n=input()

result=int(('9'*int(n)))

您可以简单地执行以下操作:

>>> my_count = 5
>>> int('9'*my_count)
99999
这里,'9'*my_count将在字符串中重复'9'五次my_count,然后我将其键入int以获得一个整数值


注意:如果您想将返回值设置为整数,那么就使用它,因为它会提供更好的性能。但是,如果您希望返回值为字符串,而不将其类型转换为int,那么您应该使用此答案,因为它将更高效地提高性能。

您可以简单地执行以下操作:

>>> my_count = 5
>>> int('9'*my_count)
99999
这里,'9'*my_count将在字符串中重复'9'五次my_count,然后我将其键入int以获得一个整数值

注意:如果您想将返回值设置为整数,那么就使用它,因为它会提供更好的性能。但是,如果您希望返回值为字符串,而不将其类型转换为int,那么您应该使用这个答案,因为它将更高效地提高性能

简明扼要

简单且充分

尝试以下方法:

>>>n=6 >>>10**n-1 999999 与备选方案int9*n的性能比较:

>>>从timeit导入timeit >>>timeit'10**n-1',setup='n=1000' 3.0823026559999107 >>>timeit'int9*n',setup='n=1000' 10.0500816629999>慢3倍 >>>timeit'10**n-1',setup='n=100000',number=100 0.5580871940001089 >>>timeit'int9*n',setup='n=100000',number=100 7.984304671000245>慢14倍 事实上,10**n-1渐进地更有效,因为求幂是由执行Olog n算术运算的算法计算的,而将字符串9*n转换为整数则不执行算术运算

当然,如果您希望输出为字符串而不是int,那么只需执行9*n,这将是最快的方法。

尝试以下方法:

>>>n=6 >>>10**n-1 999999 与备选方案int9*n的性能比较:

>>>从timeit导入timeit >>>timeit'10**n-1',setup='n=1000' 3.0823026559999107 >>>timeit'int9*n',setup='n=1000' 10.0500816629999>慢3倍 >>>timeit'10**n-1',setup='n=100000',number=100 0.5580871940001089 >>>timeit'int9*n',setup='n=100000',number=100 7.984304671000245>慢14倍 事实上,10**n-1渐进地更有效,因为求幂是由执行Olog n算术运算的算法计算的,而将字符串9*n转换为整数则不执行算术运算


当然,如果您希望输出为字符串而不是int,那么只需执行9*n,这将是最快的方法。

您可以执行以下操作:

inputValue = 5

number = "9"

print(int(number * inputValue))
print(int("9"*int(input("How many 9's"))))

如果要打印字符串,可以省略int。但重要的是,inputValue是一个整数,数字是一个字符串。

您可以这样做:

inputValue = 5

number = "9"

print(int(number * inputValue))
print(int("9"*int(input("How many 9's"))))

如果要打印字符串,可以省略int。但重要的是,inputValue是一个整数,数字是一个字符串。

如果9可以是一个字符串,那么最短的,也许不是最惯用的方式是:

print("9" * int(input("How many 9's")))
否则,如果必须是int,则只需按如下方式键入cast:

inputValue = 5

number = "9"

print(int(number * inputValue))
print(int("9"*int(input("How many 9's"))))

如果9可以是一个字符串,那么最短的,也许不是最惯用的方式是:

print("9" * int(input("How many 9's")))
否则,如果必须是int,则只需按如下方式键入cast:

inputValue = 5

number = "9"

print(int(number * inputValue))
print(int("9"*int(input("How many 9's"))))

将输入转换为整数后,可以执行9*user\u值这是否回答了您的问题?你考虑的n值是多少?对于任何合理的价值来说,这几乎不重要;选择一个你认为最可读的。一旦你把输入转换成整数,你就可以做9*user\u值这能回答你的问题吗?你考虑的n值是多少?对于任何合理的价值来说,这几乎不重要;选择一个你觉得最可读的。这感觉像是这篇文章的最佳解决方案,通常数学比字符串处理快9*n远比10**n-1快,对于n的大值。大体上,我指的是100@chepner这是因为您没有将字符串转换为int。这个问题意味着OP正在构建一个字符串,然后将其转换为int,因此他们希望结果为int。将10**n-1与int'9'*n进行比较,我发现当n=1000时,后者的速度要慢3倍多。原因大概是因为将一个以10为基数的字符串转换为int需要线性数的运算,而**需要对数数的运算。这感觉像是这篇文章的最佳解决方案,通常数学比字符串处理快。对于n的大值,9*n远比10**n-1快。大体上,我指的是100@chepner这是因为您没有将字符串转换为int。这个问题意味着OP正在构建一个字符串,然后将其转换为int,因此他们希望结果为int。将10**n-1与i进行比较 nt'9'*n,我得到,当n=1000时,后者的速度要慢3倍多。原因大概是因为将一个以10为基数的字符串转换为int需要线性数的运算,而**需要对数数的运算。