개발자입니다
03. [자료형] Python 튜플, 리스트(+함수), 사전, 문자열 본문
튜플
# 생성 방법
변수명 = (value1, value2, ...)
변수명 = tuple([value1, value2, ...]) # 리스트에서 튜플로
tup = (1, 2, 3, 4, 2) # 왼쪽과 같을 때
tup.count(2) # 2 라는 값이 몇개인가
tup.index(2) # 2 라는 값의 인덱스는 무엇인가
tup.index(2, 3) # 2라는 값에 대해 3번 인덱스부터 찾아라
리스트
# 생성 방법
변수명 = [value1, value2, ...]
변수명 = list((value1, value2, ...)) # 튜플에서 리스트로
리스트 함수
append(value) # 리스트 끝에 값 추가
extend(iter) # 리스트 끝에 list, tuple, dict의 값 하나씩 추가
insert(idx, value) # 특정 인덱스 위치에 값 추가
pop([idx]) # 마지막 인덱스 값 반환 후 삭제. 인덱스 번호 지정도 가능
remove(value) # 특정 값 삭제
clear() # 모든 값 삭제 후 빈 리스트 남김
count(value) # 리스트에서 일치하는 값의 수 반환
index(value) # 일치 값 인덱스 번호 반환
index(1, 2) # 1 값을 2번 인덱스부터 찾아라
reverse() # 리스트의 모든 값 뒤집어 나열
sort([reverse=False]) # 리스트 값 오름차순(False), 내림차순(True) 정렬
사전
# 생성 방법
변수명 = {key1:value1, key2:value2, ...}
변수명 = dict([(k1, v1), (k2, v2), ...])
# 사전 함수
update(dict) # 자료 추가
fromkeys(iter[, value]) # 리스트 튜플에 존재하는 값을 키로 사전형 자료를 생성하여 반환
get(key[, value]) # 사전형의 키를 통해 값 반환
get(key, '문구') # 해당 키가 없으면 문구 반환
keys() # 사전형의 모든 키 반환
values() # 사전형의 모든 값 반환
items() # 사전형의 모든 키-값 쌍 튜플로 반환
pop(key) # 키를 통해 값 반환 후 삭제
popitem() # 키-값 쌍 튜플로 반환 후 삭제
clear() # 모든 키-값 삭제하여 빈 사전형 남김
문자열
문자열 하나하나에 인덱싱, 슬라이싱, 반복문 가능
find(str) # 특정 문자열 찾아 index 값 반환
count(str) # 특정 문자열 찾아 해당 문자열 수 반환
lower() # 소문자로 반환
upper() # 대문자로 반환
stip() # 앞뒤 공백 제거
lstrip() # 왼쪽 공백 제거
rstrip() # 오른쪽 공백 제거
replace(old, new) # 특정 문자열 변경
split(str) # 특정 문자열 기준으로 분리하여 리스트로 반환
문제1.
다음 조건을 보고 회원가입을 위한 프로그램 코드를 작성하시오
- 아이디는 반드시 10자리 이상
- 패스워드는 반드시 8~16자리 사이
- 패스워드에 아이디가 포함되면 안됨
- 패스워드에는 다음의 특수문자가 반드시 하나 이상 포함(~,!,@,#,$,%,^,&,*,_,?)
while True:
Id = input('아이디 입력(10자리 이상): ')
if len(Id) < 10: # 아이디 10자리 이상인지 확인
print('\n*****아이디는 10자리 이상이어야 합니다.*****')
else:
break
PwMustChr = '~!@#$%^&*_?'
while True:
Pw = input('[아이디 포함 불가]\n[다음 특수문자 하나 이상 포함(~,!,@,#,$,%,^,&,*,_,?)]\n위 조건 확인하여 패스워드 입력(8~16자리): ')
if 8 <= len(Pw) <= 16: # 패스워드 8~16자리인지 확인
if Id not in Pw: # 패스워드 아이디 포함 불가 확인
for x in PwMustChr: # 패스워드 특수문자 하나 이상 포함 확인
if x in Pw:
print('\n회원가입 완료 되었습니다.')
print('아이디 : {}'.format(Id))
print('패스워드 : {}'.format(Pw))
break
else:
print('\n*****(~,!,@,#,$,%,^,&,*,_,?) 해당 특수문자 반드시 하나 이상 포함해야 합니다.*****')
break
else:
print('\n*****패스워드에 아이디를 포함할 수 없습니다.*****')
else:
print('\n*****패스워드는 8~16자리로 입력해 주십시오.*****')
break
처음에는 while로 검사하고 빠져나오면 다음 조건 while로 검사하도록 짰는데 강사님 강의 보고 if로 조건 맞으면 다음 조건 검사하는게 더 간결하고 직관적인거 같아서 수정하였다.
'Python > Python 기초' 카테고리의 다른 글
04. [함수] Python 함수 (0) | 2022.08.07 |
---|---|
02. [제어문] Python 랜덤 함수, 조건문, 반복문 (0) | 2022.08.06 |
01. [기본 문법] Python 내장 함수, 서식 문자, 변수, 사용자 입력, 연산자 (0) | 2022.08.05 |