简单的Python帮助

时间:2015-06-24 01:22:38

标签: python

两个修正:,main应该对返回的列表进行排序,而for循环应该在一行上打印所有数字。

这是我要回答的问题,我认为我已经完成了所有这些,但我上面解释的两个错误需要帮助:

  1. 在main中,生成一个大于5且小于13的随机整数。在自己的行上打印此数字。
  2. 使用随机整数作为唯一参数调用makelist函数。
  3. 在makelist函数中创建一个空列表。
  4. 使用循环在列表中附加一些等于随机整数参数的元素。所有新的列表元素必须是1到100之间的随机整数,包括1和100。重复是可以的。
  5. 将列表返回主页。
  6. 返回main,抓住返回的列表并对其进行排序。
  7. 最后,使用for循环显示已排序的列表元素,所有这些元素都在一行上,由单个空格分隔。

    列表大小为7

    以下是排序列表:

    8 28 35 41 51 62 72

    另一个示例输出

    列表大小为10

    以下是排序列表:

    3 3 9 20 36 43 48 50 81 93

  8. 非常感谢我对代码的任何帮助。我是初学者,并尝试过教程。

    这是我的代码

    import random   
    
    def main():
    
        random_int = random.randint(6, 12)
        print (random_int)
    
        elements = makelist(random_int)
        for n in sorted(elements):
            print (n,)
    
    def makelist(random_int):
    
        number_list = []
        for count in range(random_int):
            number_list.append(random.randint(1, 101))
        return number_list  
    
    main()
    

3 个答案:

答案 0 :(得分:2)

print (n,)如果你想打印你的样品输出项目,你的逗号位置就是问题所在。你看,python中的括号用于封闭数学/逻辑表达式和元组。如果你想要一个单项元组会怎么样? (n)n相同。为了解决这个问题,python将(n,)理解为元组。

因此,要打印您想要的项目,请使用:

    for n in sorted(elements):
        print (n),
    print() # This last one is only to go down a line 
            # for any further prints

修改:此外,如果您希望{1}在1到100之间,请使用random_int,而不是random.randint(1, 100)

答案 1 :(得分:0)

我会在makelist函数中对列表进行排序。除此之外,您应该从NSString *urlString = [NSString stringWithFormat:@"http://mywebsite/loginToApp.php?email=%@&password=%@", email.text, password.text]; NSData *dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]; NSString *returnedString = [[NSString alloc] initWithData:dataURL encoding:NSUTF8StringEncoding]; NSLog(@"urlString %@", urlString); NSLog(@"dataURL %@", dataURL); NSLog(@"%@", returnedString); 中删除逗号。否则你的代码几乎解决了这个问题。下次再问一下你的问题。

编辑:在列表中的每个元素上调用每个print (n,)将在换行符上打印每个元素(垂直)。由于您需要删除逗号,print()会将列表转换为字符串,每个元素用空格分隔。

' '.join(map(str, sorted(elements))

答案 2 :(得分:0)

这样做

import random   

def main():

    random_int = random.randint(6, 12)
    print ('List size will be %d' % random_int)

    elements = makelist(random_int)
    print('Here is the sorted list:')
    print( ' '.join(map(str, sorted(elements))) )

def makelist(random_int):

    number_list = []
    for count in range(random_int):
        number_list.append(random.randint(1, 100))
    return number_list  

main()

感兴趣的线是

print( ' '.join(map(str, sorted(elements))) )

做了一些事情。

sorted(elements)

返回列表的已排序副本。

map(str, sorted(elements))

将整数元素映射(转换)为字符串。这只是在列表中的每个元素上调用str。需要它因为join需要iterable个字符串。

' '.join(map(str, sorted(elements)))

这个看起来很滑稽的语法会在所有值中创建一个长字符串。它将使用''(空格字符)作为每个元素之间的值,并将所有已排序并转换为字符串的元素连接成一个可以打印的长字符串。