【问题标题】:random number of " * " in a row in python 3python 3中连续随机数“*”
【发布时间】:2021-02-19 15:24:56
【问题描述】:

我想在python中连续生成一个小于21大于0的随机数“*”100次

我试着写:

import random 
for x in range(100): 
    a = random.randint(1, 20) 
    for y in a: 
        print("*")

有人可以帮助我吗? 我是编程初学者

【问题讨论】:

  • 进入一个交互式 python 会话,看看当你写像5 * '*' 这样的行时会发生什么。

标签: python python-3.x random python-3.9


【解决方案1】:

你可以像'a'*5 = 'aaaaa'这样的字符串相乘

import random 
for x in range(100): 
    #a = random.randint(1, 20)
    #print('*'*a)
    print('*'*random.randint(1, 20))

【讨论】:

    【解决方案2】:

    您可以像这样在一行中完成:

    from random import randint
    print(*( "*"*randint(1,20) for _ in range(100) ),sep="\n")
    

    print 函数可以接受多个值,并用其sep= 参数中提供的字符串分隔它们(此处"\n" 用于换行)。

    您可以生成 100 个带有解析式 (... for _ in range(100)) 的字符串,其中每个字符串都是 "*" 字符的随机重复(通过将单个字符乘以随机数来重复)。

    可以使用解包*(...)将此推导转换为打印功能的单独参数

    【讨论】:

      【解决方案3】:

      这样可以吗?我刚刚在第二个 for 循环中添加了范围,在第一个循环中添加了 end = "\n",在内部循环中添加了 end = ""

      import random 
      for x in range(100): 
          a = random.randint(1, 20) 
          for y in range (a) : 
              print("*",end = "")
          print(end = "\n")
      

      【讨论】:

        猜你喜欢
        • 2020-05-21
        • 2012-09-15
        • 2022-08-19
        • 2015-05-29
        • 1970-01-01
        • 1970-01-01
        • 2014-04-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多