2015-10-14 227 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:],''))