Python 如何通过用户输入控制循环的数量?

Python 如何通过用户输入控制循环的数量?,python,for-loop,input,Python,For Loop,Input,我的问题是:如何定义用户可以输入的输入代码,例如3、5、6或任何数字,以获得3个字母、5个字母等的输出(根据用户输入) 此代码的输出为: TC:2, CG:2, 时间:3,, GC:1, CA:1, GA:1, 代码: 如果用户输入3,该代码将更改如下: 编号3的输出为: ATC : 2, CAT : 1, CGA : 1, CGC : 1, GAT : 1, GCA : 1, TCG : 2, 所以,我的问题是: 如何通过用户输入控制或向代码中添加新循环? 例如,如果用户输入4,程序将

我的问题是:如何定义用户可以输入的输入代码,例如3、5、6或任何数字,以获得3个字母、5个字母等的输出(根据用户输入)

此代码的输出为:

TC:2,
CG:2,
时间:3,,
GC:1,
CA:1,
GA:1,
代码:

如果用户输入3,该代码将更改如下:
编号3的输出为:

ATC : 2,
CAT : 1,
CGA : 1,
CGC : 1,
GAT : 1,
GCA : 1,
TCG : 2,  
所以,我的问题是:
如何通过用户输入控制或向代码中添加新循环?
例如,如果用户输入4,程序将自动添加一个新循环,方法是使用以下输出将字母拆分为4:

ATCG : 2,
CATC : 1,
CGAT : 1,
CGCA : 1,
GCAT : 1,
TCGA : 1,
TCGC : 1,  

我认为您可以将最内部循环的逻辑放入一个函数中,然后根据输入调用该函数。或者,您可以尝试用递归解决相同的问题,其中用户输入将定义递归深度。初始化全局变量depth并将其设置为0。在函数的第一行,用1增加深度,每次调用函数时,它的值都会增加。在基本情况下,为深度变量和输入变量设置一个相等的条件,一旦深度变量==输入变量,递归将停止。

因为您试图在用户输入n的时候获得给定列表n的所有排列,而不是使用for循环try permutation函数。置换函数给出了一个元组列表,其中包含每次n个置换

from itertools import permutations 
n=int(input(“enter the value of n”))
dna = "ATCGCATCGAT"
bases = ['A', 'C', 'G', 'T']
perm = permutations(bases, n)
all_counts = {}
for i in list(perm):
    dinucleotide= ''.join(i)
    count = dna.count(dinucleotide)
    if count > 0:
       all_counts[dinucleotide] =count
for key, value in all_counts.items():
     print(key, ':', value)


          
像这样的

dna = "ATCGCATCGAT"
#print(dna)
sub_len = int(input('enter len: '))
combis = set()
for pos in range(len(dna) - sub_len + 1):
    sub_str = dna[pos:pos + sub_len]
    combis.add(sub_str)
for combi in combis:
    print(combi, dna.count(combi))
print(combis)
输出:

enter len: 4
TCGC 1
CATC 1
TCGA 1
ATCG 2
GCAT 1
CGCA 1
CGAT 1
{'TCGC', 'CATC', 'TCGA', 'ATCG', 'GCAT', 'CGCA', 'CGAT'}

您好,您是否尝试了
if
语句?在我写答案之前,我想
如果
是你想要的。是吗?嗨,事实上,我需要为这段代码定义一个输入,我需要与用户交互。你想计算(ny)子字符串与len n的出现次数吗,其中n是由用户输入的?是的,事实上,根据输入数字,形成了多少个字母组合。输出应该与示例类似。
dna = "ATCGCATCGAT"
#print(dna)
sub_len = int(input('enter len: '))
combis = set()
for pos in range(len(dna) - sub_len + 1):
    sub_str = dna[pos:pos + sub_len]
    combis.add(sub_str)
for combi in combis:
    print(combi, dna.count(combi))
print(combis)
enter len: 4
TCGC 1
CATC 1
TCGA 1
ATCG 2
GCAT 1
CGCA 1
CGAT 1
{'TCGC', 'CATC', 'TCGA', 'ATCG', 'GCAT', 'CGCA', 'CGAT'}