为什么我的程序无法将整数列表转换为文本(字符串)?

问题描述 投票:0回答:2

我想将整数列表(在选取素数之后)转换为文本,一个 str (不是字符串列表)。如何以有效的方式实现它,当我运行程序时,它什么也没有显示,甚至没有显示“错误” 顺便说一句,程序应该显示:“11-19”

这是我的代码:

v=[11,18,19]
n=3
def premier(v):   
        I=2
        valid=True
        while valid==True and  ( I<=(v/2) ) :
            if (v%I !=0) :
                I +=1              
            else:
                valide=False                
        return(valid)
def chaine(v,n):
    ch=""
    for i in range(n):
        if premier(v[i]):
            ch=ch+str(v[i])+"-"
    ch=ch[:len(ch)-1]
    return(ch)
print(chaine(v,n))

python arrays string list integer
2个回答
0
投票

函数

else
的第一个
premier
语句中存在拼写错误,这会导致无限循环。

v=[11,18,19]
n=3
def premier(v):
        I=2
        valid=True
        while valid==True and  ( I<=(v/2) ) :
            if (v%I !=0) :
                I +=1
            else:
                valid=False
        return(valid)

def chaine(v,n):
    ch=""
    for i in range(n):
        if premier(v[i]):
            ch=ch+str(v[i])+"-"
    ch=ch[:len(ch)-1]
    return(ch)
print(chaine(v,n))

通过这个微小的更改,您的代码应该可以正常工作。让我知道这是否适合您。


0
投票

一个小错字导致它停止工作。您需要更改第 1 行中的

valide=False
。 while 循环中的 10 到
valid=False

© www.soinside.com 2019 - 2024. All rights reserved.