사용하지않는공간/Python

[python] 리스트를 사용한 다양한 파이썬 예제(카이사르 암호 해독, 생성)

반나무 2020. 8. 6. 22:03

a:b:c:d를 a,b,c,d로 : -> , 치환하기

sep_str = "a:b:c:d"
sep_str = sep_str.split(':')

",".join(sep_str)

'a,b,c,d'

 

주민번호를 통해 성별 판단하기

pin = "891120-1234567"

gender = pin.split('-')

print(gender[1][0])

1

 

주문하지 않은 고객찾기

총 고객 수가 26명일 때, 주문을  한번도 하지 않은 고객의 수 는 몇명인가?

HINT : 리스트를 set자료형(집합자료형)으로 전환하면 중복값을 제거할 수 있다.

대신 인덱싱은 안됨.

order_list = ["A","A","B","B","C","A","E","B","F","C","C","C","E","X"]

order_list = set(order_list)

print("주문고객: "+str(order_list))
nonOrder_num = 26-len(order_list) #주문하지 않은 고객 수 구하기

print("주문을 한번도 하지 않은 고객의 수 : " + str(nonOrder_num))

인덱싱이 되지않기때문에 뒤죽박죽이다

 

딕셔너리 자료형

dic = {'one':'하나','two':'둘','three':'셋'}

text = input("단어를 입력하시오: ")

print(dic[text])

카이사르 암호 해독기

import  string

#키 리스트
key_list = list(string.ascii_lowercase[3:26]+string.ascii_lowercase[0:3]+" ")  
#값 리스트
value_list = list(string.ascii_lowercase+" ")   
#dict
code_book = dict(zip(key_list, value_list))
    

text = list(input("암호를 입력하세요: "))
#초기화
num = 0
value = list()

#text의 길이만큰 변수num 증가 
for num in range(len(text)):
    #value리스트에 text[num만큼 dict찾아서 리스트 삽입]
    value.append(code_book[text[num]])
    
print("".join(value))

카이사르 암호 생성기

import string

text = "CEASER CIPHER DEMO"
s = 4
    
def encrypt(text,s):
    result = ""
    
    for i in range(len(text)):
        char = text[i] # 문자열에서 문자를 뽑아 char에 넣는다
        
        # 대문자라면 ? 
        if(char.isupper()):
            result += chr((ord(char) + s - 65) % 26 + 65)
        
        # 대문자가 아니라면 ? -> 이부분에서 띄어쓰기가 r로 변경
        else:
            result += chr((ord(char) + s - 97) % 26 + 97)
            
    return result


    
print("Plain Text : " + text)
print("Shift pattern : " + str(s))
print("Cipyher:" + encrypt(text,s))

반응형