连续打印数字而不使用字符串

时间:2016-12-10 16:12:32

标签: python

我是python的新手,我正在练习我的黑客级别的编码技巧。我遇到了一个问题,我必须一个接一个地打印数字而不在它们之间添加任何新的行或空格,最重要的是我不能使用字符串方法来获得所需的输出。

如果是一个例子 输入是

3

然后输出

123

没有字符串怎么办?

请指导我......

提前致谢

7 个答案:

答案 0 :(得分:3)

您可以在end方法中使用print()关键字来避免空格:

num = int(input("Enter number: "))
for i in range(1, num+1):
    print(i, end='')

答案 1 :(得分:1)

您可以使用range()创建自定义函数以及math.log10()的用法:

import math

def get_my_number(num):
    my_num = 0
    for i in range(1, num+1):
        digits = int(math.log10(i))+1  # count number of digits in number
        my_num = my_num * (10 ** digits) + i
    return my_num

示例运行:

>>> get_my_number(3)
123
>>> get_my_number(13)  # For number greater than 10
12345678910111213

通过这种方式,您将获得实际价值,而您不会只是在控制台上打印

答案 2 :(得分:1)

下面的 for 语句采用从 1 到 n 的元素。

  • 如果您使用“in range(n)”,它将打印从 0 到 n-1 的元素。
  • 如果您使用“in range(1,n)”,它将打印从 1 到 n-1 的元素。
  • 如果您使用“in range(1,n+1)”,它将打印从 0 到 n 的元素。这就是您想要的。

无需换行的打印需要在打印命令中添加。

  • end = "" 例如会打印 123。

  • end = " " 中间有 1 个空格会打印 1 2 3 等等。

    if __name__ == '__main__':
        n = int(input())
        for i in range(1,n+1):
            print (i, end = "")
    

答案 3 :(得分:0)

在写入缓冲区 ls 并进行单个写入调用(打印)之前,以下将整数值复制到数组 pr

n = int(input())
ls = []
pr = ("")
for i in range(1,n+1):
    ls.append(i)
for i in range(len(ls)):
    pr += "{}".format(ls[i])
print(pr)

答案 4 :(得分:-1)

n=int(input())

for i in range(n):    
    print(i+1, end="")

答案 5 :(得分:-1)

num = int(input())
for i in range(num):
    print(i+1, end='')
    if num == i:
        break

答案 6 :(得分:-1)

如果要不使用字符串而打印n个自然数,则可以尝试以下代码:

n=int(input())
print(*range(1,n+1),sep="")

简单输入:5
输出将是:12345