2012-02-27 67 views
0

這是問題和高清功能的設置是一個字符串的函數:編寫洗牌使用binKey

shuffleString(myString, binKey) - return myShufString.

編寫慢騰騰字符,myString的字符串,使用binKey功能。這是主意。我們形成一個新的空字符串myShufString,然後我們通過連接來自myString的開頭或結尾的字符來建立,這取決於binKey[i]是0還是1,從i = 0開始並根據需要循環通過binKey。你的功能應該是shuffleString(myString, binKey)的形式,應該返回myShufString

提示:你可能會想從myString形成字符的名單,超過的myString長度使用中的列表方法流行的循環。這樣您就不必跟蹤myString末尾的哪些字符已被使用並添加到myShufString。您將在步驟5中調用此函數以混洗您在步驟1中創建的字母表。

下面是一個示例。假設myString = 'abcdefgh'binKey = '101'

然後myShufString = 'hagfbedc'

原因:以

我們建立myShufString如下。

0)形成字符的myString的列表,並調用它myList,所以:

myList = ['a','b','c','d','e','f','g','h']. 

1)開始與空字符串:myShufString = ''

2)由於binKey[0] = '1',彈出' h'從myList的末尾開始,並連接到myShufString

3)由於binKey[1] = '0',從myList開始彈出「a」並連接到myShufString

4)由於binKey[2] = '1',從myList末尾彈出'g'並連接到myShufString

5)現在我們已經到了binKey的末尾,所以我們回到起點。

6)由於binKey[0] = '1',從myList末尾彈出'f'並連接到myShufString

7)由於binKey[1] = '0',從myList開始彈出'b'並連接到myShufString

我得到這個至今:

def shuffleString(myString, binKey): 
    myShufString = "" 
    myList = list(myString) 
    for string in range(len(myString)): 
     if binKey[i] == '0': 
      myShufString += myList.pop(0) 
     else: 
      myShufString += myList.pop(-1) 

我應該使用ELIF而不是別的,或者是這樣行嗎? 不知道如何彈出和binKey命令工作...不知道如何做其餘的...

編輯: 我得到了以下錯誤消息:

回溯(最近通話最後一個):

文件 「」,1號線,在

decryptCS8Cipher("That Sam-I-Am. That Sam-I-Am. I do not like that Sam-I-Am.","decaf") 

文件「C:\ Users \ Elizabeth \ Dropbox \ CMPSC 8 \ lab05 \ lab05_function.py「,第54行,在

decryptCS8Cipher

shufAlph = shuffleString(alphabet, binKey) 

文件 「C:\用戶\伊麗莎白\收存箱\ CMPSC 8 \ lab05 \ lab05_function.py」,第18行,在shuffleString

if binKey[i] == '0': 

NameError:全局名稱的 'i' 沒有定義

我不知道該怎麼做的字符串和我的變量! 請幫忙!謝謝!

+0

我認爲這是一個家庭作業問題,在這種情況下,您應該將其標記爲「作業」 – 2012-02-27 04:57:28

+0

這是,謝謝!我會! – Elizabeth 2012-02-27 04:58:52

回答

0

一對夫婦的提示,因爲這是一個家庭作業問題:

你有一些問題,你的變量istring。想想他們代表什麼,他們來自哪裏。

至於elseelif考慮binKey[i]可以採取什麼值,以及每個這些值的if語句的結果是什麼。