2015-10-14 226 views
-6

编辑成什么我想While循环和if语句

清楚,我想一个随机的7到14个字符长的字符串,其中包含字母“d”到“G”,没有连续重复字母。预期产出的 例子:dgfede

import random 

num = random.randint(7,14) 
print(num) 

message="" 
end = False 
for n in range(num): 

    while end == False: 
     newnum= random.randint(100,103)   
     val=chr(newnum) 
     val = newnum 
     message +=chr(val) 


     if(message != message[-1:]): 
      print(message) 
      end=True 
     else: 
      message ="" 
+5

什么是应该做你的代码?你目前有一个无限循环。 if条件永远不会满足,因为消息是一个字母,消息[-1]也是如此,因此您总是将消息转换为空字符串并重做所有事情。此外,你连续两次赋值“val”。 – dorverbin

+0

该代码假设重复自己,直到它输出类似efdedeg这是num生成的长度 – Bob

+0

您应该解释**精确**功能,您希望代码有人帮助您。如果我必须猜测,你需要一个长度为7到14个字符的字符串,它包含字母'd'到'g',没有连续的重复字母。是对的吗? – dorverbin

回答

0

这应该这样做:

import random 

num = random.randint(7, 14) 
print num 

message = "" 
prevnum = -1 
for n in range(num): 
    newnum = random.randint(100, 103) 
    while newnum == prevnum: 
     newnum = random.randint(100, 103) 
    prevnum = newnum 
    message += chr(newnum) 

你已经在你的代码频频失误,你应该检讨他们。

0

您可以结合使用choicereplace

import random 
num = random.randint(7, 14) 
chars = "defg" 
result = "" 
for n in range(num): 
    result += random.choice(chars.replace(result[-1:],''))