Python 仅使用9创建“n”位数,其中“n”是可变的
例如,如果用户输入5,则输出:99999Python 仅使用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
我知道我可以使用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需要线性数的运算,而**需要对数数的运算。