encrypt06.py
# 使用 randint() import random # 定義 Encrypt 類別 class Encrypt: def __init__(self): self.setcode() def setcode(self): # 取得 a 、 b 值 a = 0 b = 0 while a % 2 == 0: a = random.randint(0, 9) b = random.randint(0, 9) # 利用公式建立密碼表 self.code = "" c = "a" i = 0 while i < 26: x = c y = ord(x) * a + b m = y % 26 self.code += chr(m + 97) c = chr(ord(c) + 1) i += 1 def getcode(self): return self.code # 編碼的方法 def toEncode(self, str): # 暫存編碼結果的字串 result = "" # 利用迴圈走完參數字串的所有字元 for c in str: # 判斷該字元是否為英文小寫字母 # 若是英文小寫字母就進行編碼轉換 c1 = ord(c) >= 97 c2 = ord(c) <= 122 if c1 and c2: m = ord(c) - 97 result += self.code[m] else: result += c # 結束回傳編碼過的字串 return result # 解碼的方法 def toDecode(self, str): pass # 測試部分 if __name__ == '__main__': e = Encrypt() print() print(e.getcode()) s1 = "There is no spoon." print("Input : " + s1) s2 = e.toEncode(s1) print("Encode: " + s2) print() # 檔名: encrypt06.py # 作者: Kaiching Chang # 時間: July, 2014
exercise1801.py
answer = "1234" def ab_counter(answer, guess, ab): a = 0 b = 0 for i in guess: if i in answer: if guess.index(i) == answer.index(i): a += 1 else: b += 1 ab[0] = a ab[1] = b def find_number(array): for i in array: if array.count(i) > 1: return True return False if __name__ == "__main__": abcounter = [0, 0] times = 0 while True: times += 1 guess = input(": ") if len(guess) != 4: print("Wrong length!!") continue if find_number(guess): print("Repeating digits!!") continue ab_counter(answer, guess, abcounter) if abcounter[0] == 4: print("Right!!") break else: print(str(abcounter[0]) + "A" + str(abcounter[1]) + "B") print("You guess " + str(times) + " times.") # 檔名: exercise1801.py # 作者: Kaiching Chang # 時間: July, 2014
exercise1802.py
from random import shuffle answer = [chr(i) for i in range(48, 58)] shuffle(answer) answer = answer[0:4] def ab_counter(answer, guess, ab): a = 0 b = 0 for i in guess: if i in answer: if guess.index(i) == answer.index(i): a += 1 else: b += 1 ab[0] = a ab[1] = b def find_number(array): for i in array: if array.count(i) > 1: return True return False if __name__ == "__main__": abcounter = [0, 0] times = 0 while True: times += 1 guess = input(": ") if len(guess) != 4: print("Wrong length!!") continue if find_number(guess): print("Repeating digits!!") continue ab_counter(answer, guess, abcounter) if abcounter[0] == 4: print("Right!!") break else: print(str(abcounter[0]) + "A" + str(abcounter[1]) + "B") print("You guess " + str(times) + " times.") # 檔名: exercise1802.py # 作者: Kaiching Chang # 時間: July, 2014
the end
沒有留言:
張貼留言