Ray-先生 发表于 2021-7-1 17:37:15

Python如何运行多层嵌套循环

本帖最后由 Ray-先生 于 2021-7-8 21:14 编辑

最近的Python训练题好多都要多层嵌套循环
网上的那些教程我都看不懂是什么意思,最好能把每一步是干什么的都展示出来

例如这道题:小A有n枚硬币,现在要买一样不超过m元的商品,他不想得到找钱(多脏啊),同时又不想带太多的硬币,且硬币可以重复,现在已知这n枚硬币的价值,请问最少需要多少硬币就能组合成所有可能的价格?
输入格式
第一行两个数:n、m。
下一行,共n个数字,表示硬币的面值。
输出格式
一行一个数,表示最少需要多少硬币。如果无解请输出“No answer!!!”
示例1
输入:
5 31
1 2 8 4 16
输出:
5
或者这道题现在请你编一个程序,它的目的是:用户输入N个数,并执行N次嵌套循环,输出s,每次循环的次数为N个数的每一个数
输入格式
第一行输入N个数
第二行输入s
输出格式
一行一个s

示例1:
输入:
1 5 2
Ray
输出
Ray
Ray
Ray
Ray
Ray
Ray
Ray
Ray
Ray
Ray

wp231957 发表于 2021-7-1 17:55:13

太多了,都是基础

深谙流年 发表于 2021-7-1 23:37:52

你可以设置一个变量。然后每层嵌套的时候打印出来,可以根据打印的时间和位置来理解嵌套

深谙流年 发表于 2021-7-1 23:39:56

嵌套循环其实很简单,就是第一层循环一次,然后进行第二个嵌套循环,依次类推,有几个嵌套第一次就进入到最里面的那个循环,等到最里面的循环结束,然后在进行倒数第二层的循环,然后依次,有点像递归,

深谙流年 发表于 2021-7-1 23:42:07

for i in range(10):
    print('第{}次循环'.format(i))
    for i_1 in range(10):
      print("第2个循环里面的第{}次执行".format(i_1))

Ray-先生 发表于 2021-7-2 15:23:59

深谙流年 发表于 2021-7-1 23:42
for i in range(10):
    print('第{}次循环'.format(i))
    for i_1 in range(10):


我的意思是,如何运行N层嵌套循环(N是用户输入或系统随机数等),而不是这种循环!这么简单的循环,谁不会呀

深谙流年 发表于 2021-7-2 18:06:31

Ray-先生 发表于 2021-7-2 15:23
我的意思是,如何运行N层嵌套循环(N是用户输入或系统随机数等),而不是这种循环!这么简单的循环,谁 ...

用函数不就可以了,,,,,

Ray-先生 发表于 2021-7-2 18:23:21

深谙流年 发表于 2021-7-2 18:06
用函数不就可以了,,,,,

怎么写函数呢……

阿奇_o 发表于 2021-7-2 20:04:32

因为你没给出具体的例子,可以分一下 有哪些“嵌套”方式:
   1. 相同的字符串/列表或字典等的 N次嵌套(笛卡尔积), 如 itertools.product("ABC", repeat=3)即 for i in "ABC": 嵌套3次
   2. 定义一个函数,自己嵌套N次自己(递归N次)
   3. 生成器 yield (一次次生成直到N次)

深谙流年 发表于 2021-7-2 20:24:29

Ray-先生 发表于 2021-7-2 18:23
怎么写函数呢……

d定义一个函数,然后在里面调用它

永恒的蓝色梦想 发表于 2021-7-3 08:57:39

Ray-先生 发表于 2021-7-2 15:23
我的意思是,如何运行N层嵌套循环(N是用户输入或系统随机数等),而不是这种循环!这么简单的循环,谁 ...

这个一般递归
页: [1]
查看完整版本: Python如何运行多层嵌套循环