-
Python 기초 공부 - 2Programming/Python 2021. 3. 4. 23:53반응형
2일차
반복문num1 = 6 num1 += 1 # num1 = num1 + 1 num2 = 7 num2 -= 5 # num2 = num2 - 1 num3 = 8 num3 /= 2 # num3 = num3 / 2 print(num1,num2,round(num3)) num1 = 1 num1 *= 3 num2 = 2 num2 **= 3 # ^ , ** print(num1, num2)
7 2 4
3 8
# 3항 연산자 x = 5 ans = 'Non-negative' if x>=10 else 'Negative' print(ans)
Negative
city = ' '# 문자열 거짓, 공백도 문자열, 숫자:0, list:[], dict:{}, tuple:() 모두 거짓 if city: # 조건이 참인 경우만 실행 print('empty city')
empty city
# 날짜의 입력은 # 특수하게 해석해서 년월일로 해석 import datetime dt = datetime.datetime.now() # 함수는 ()를 사용해야함 print(dt) print() #데이터입력 age = input("생년월일(19951031)을 입력하시오") #데이터처리 year = int(age[0:4]) # 마지막은 미포함 month = int(age[4:6]) day = int(age[6:]) # 빼기연산 # 분산 : 상계방지 (제곱) year_diff = dt.year - year month_diff = dt.month - month day_diff = dt.day - day if day_diff < 0: # 일 내림 month_diff -=1 if month_diff <0: # 월 내림 year_diff -=1 #데이터 출력 print("당신의 나이는 ", year_diff + 1) if year_diff < 18: print("당신은 미성년자입니다.") else: print("당신은 미성년자가 아닙니다.")
# 데이터 입력 -> 처리(연산자), 제어문(판단문, 한가지 규칙을 여러데이터에 적용: 반복문)
# for
# for(i=0; i<100; i++): 인덱스 오버플로우
# {}: 인덱스 오버플로우
# for in 문# 데이터를 이용하는 방법 elements = ["earth","air","fire","water"] for i in elements: # i = "earth" # Collections, iterator, generator, enumerate print(i, end = " ") # 공백
# Collections : list, tuple, dict, set
# iterator : range : (i=0; i<100; i++): 와 같은 방법으로 사용(start, end, step)
# generator : 실시간 데이터 생성, 메모리를 차지하지 않음
# enumerate : 매핑을 해줌 0:earth, 1:air, 2:firefor i in range(5): # 최종값 print(i)
0 1 2 3 4
# python 은 오버로딩이 없음 : default 값으로 처리 for i in range(2,5): print(i)
2 3 4
for i in range(0,10,2): # start, end, step print(i)
0 2 4 6 8
# 인덱스를 이용하는 방법 for i in range(4): print(i) print(elements[i])
0 earth 1 air 2 fire 3 water
# range는 객체(object)다 ra = range(4) print(ra) print(list(ra)) #리스트로 캐스팅
range(0, 4) [0, 1, 2, 3]
print(list(range(5,-1,-1)))
# 증가변수, 누적변수 sum = 0 for x in range(1,11): #sum = sum + x sum+=x print(sum)
55
# 중첩된 for 문 for x in range(2,10): print() for y in range(2,10): print(y, '*', x, '=', x*y, '\t', end = " ")
# 내장 리스트 : 동적으로 데이터 생성 [i for i in range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
{i: i**3 for i in range(10)}
{0: 0, 1: 1, 2: 8, 3: 27, 4: 64, 5: 125, 6: 216, 7: 343, 8: 512, 9: 729}
[i**2 for i in range(10) if i%2 == 0]
[0, 4, 16, 36, 64]
#for r in rows : # for c in cols: # (r,c) rows = range(1, 5) cols = range(10,15) vectors = [(r,c) for r in rows for c in cols] vectors
[(1, 10), (1, 11), (1, 12), (1, 13), (1, 14), (2, 10), (2, 11), (2, 12), (2, 13), (2, 14), (3, 10), (3, 11), (3, 12), (3, 13), (3, 14), (4, 10), (4, 11), (4, 12), (4, 13), (4, 14)]
# 문자열 연산자 +, * (반복) # 앞이 참이면 뒤의 것은 계산하지 않음. # True == 1, False == 0 ["3의배수 " * (i%3==0) + "5의배수" * (i%5 == 0) or i for i in range(1,21)]
[1, 2, '3의배수 ', 4, '5의배수', '3의배수 ', 7, 8, '3의배수 ', '5의배수', 11, '3의배수 ', 13, 14, '3의배수 5의배수', 16, 17, '3의배수 ', 19, '5의배수']
# 정수를 입력받아서 A,B,C,D,F 학점으로 출력하시오 (점수를 학점으로 mapping 시키시오) jumsu = int(input("점수를 입력하시오 : ")) pf = int() if jumsu >= 90: pf = 'A' elif jumsu >= 80: pf = 'B' elif jumsu >= 70: pf = 'C' elif jumsu >= 60: pf = 'D' else: pf = 'F' print("당신의 학점은 : " , pf) #d = {'one':1,'two':2} #dict
점수를 입력하시오 : 65
당신의 학점은 : D
# 번호 국어 영어 수학 점수를 입력하는 프로그램 작성 (2명 분) # 2차원 리스트로 작성 final = [] for i in range(2): sungjuk=[] num = input("번호를 입력하시오 : ") name = input("이름을 입력하시오 : ") kor = int(input("국어 점수 입력 : ")) eng = int(input("영어 점수 입력 : ")) math = int(input("수학 점수 입력 : ")) sungjuk.append(num) sungjuk.append(name) sungjuk.append(kor) sungjuk.append(eng) sungjuk.append(math) final.append(sungjuk) print(final)
# 문제 합계와 평균을 구해서 추가시켜 보시요 final = [] prr = 3 for i in range (prr): sungjuk=[] grade = str() hap1 = float() hap = float() num = input("번호를 입력하시오 : ") name = input("이름을 입력하시오 : ") kor = float(input("국어 점수 입력 : ")) if kor >= 101: print("다시입력하세요.") break eng = float(input("영어 점수 입력 : ")) if eng >= 101: print("다시입력하세요.") break math = float(input("수학 점수 입력 : ")) if math >= 101: print("다시입력하세요.") break sungjuk.append(num) sungjuk.append(name) sungjuk.append(kor) sungjuk.append(eng) sungjuk.append(math) hap1 = (kor+eng+math) hap = hap1/3 hap = round(hap,2) if hap >= 90: grade ="A" elif hap >= 80: grade ="B" elif hap >= 70: grade ="C" elif hap >= 60: grade ="D" else: grade ="F" sungjuk.append(hap1) sungjuk.append(hap) sungjuk.append(grade) final.append(sungjuk) print(final)
# 정렬하고 싶은 경우 (이름으로 정렬) # 기본 데이터함수 : str, int, float, list, set, tuple # 파이썬은 모든 것은 객체(변수+함수) : 사용자 정의 데이터 타입. final.sort() # 번호순
# 함수를 키로한다 # 이름순 def getKey(a1): return a1[1] final.sort(key=getKey, reverse = True) # 내림차순 큰것부터 작은순으로\ print(final)
# lambda 함수 : 무명함수, 간단한 함수를 작성할 때 사용 final.sort(key=lambda row:row[1], reverse = True) final
# 문제 number guess (숫자 맞추기 게임 1:1 )
# 1. 컴퓨터는 숫자를 랜덤으로 발생시킵니다. (1 ~ 100 )
# 2. 사용자는 숫자를 입력합니다.
# 3. 컴퓨터가 낸 숫자와 사용자가 입력한 숫자가 일치하는지 확인하고 일치하면 확인하고
# 다시 다음 게임으로 진행합니다.
# 4.만약 맞추지 못하였으면 사용자가 입력한 숫자가 컴퓨터가 가지고 있는
# 수 보다 큰지 작은지를 알려줍니다.
# 5.무한루프보다 진행하던 게임은 q 가 눌리면 종료합니다
# 6. 몇회만에 맞추었는지를 확인하여 출력해 줍니다.
# 7. 총 진행횟수하고 guess횟수를 누적시킨다음에 평균 시도 횟수를 출력하시오# 경우의 수는 3가지 (정답, 작은경우, 큰경우) # 전체게임 회수와 이긴회수 # 평균 시도회수를 계산하기 위해서 변수를 정의하고 계산 from random import randint count = int() ss = int() n = randint(1, 101) while True: sa = input(" 1 ~ 100 사이중 숫자를 입력하시오 . (Q to exit)") if sa == 'Q': qw = count/ss print(" 탈출입니다. ","성공횟수", ss , "총 도전횟수", count, "평균 도전횟수", qw,"입니다.") break if int(sa) > 100: count = count + 1 print("100이하만 입력하시오.") if n == int(sa): ss = ss + 1 print(" 성공입니다 ","성공횟수",ss , "총 도전횟수", count) if n > int(sa): count = count + 1 print(" 랜덤수가 더 큽니다. ") if n < int(sa): count = count + 1 print(" 적은수가 더 큽니다. ")
# 문제 1 제곱미터로 입력되는 아파트 면적을 평형으로 계산하여 종류 판정 # 30평형을 기준으로 판정하는 프로그램 작성 # 소형 (17) 중소형 (25) 중형 (30) # 평형수 = 제곱미터 / 3.305 jekop = float(input(" 면적을 입력하시오 ")) pyung = jekop/3.305 print(pyung) if pyung >= 30: print("중형아파트") elif pyung >= 25: print("중소형아파트") elif pyung >= 17: print("소형아파트") else: print("다시입력하세요.")
# 문제 2 날 수를 입력하면 이를 초로 변경하는 프로그램 작성 date = int(input("일수를 입력하시오")) si = int(input("시을 입력하시오 1~24시중")) if si> 60: print("다시입력하세요.") break bun = int(input("분를 입력하시오 1~60분중")) if bun> 60: print("다시입력하세요.") break date1 = (date*24)*60 date1_1 = date1*60 si1 = si*60 bun1 = bun*60 hap = print(date,"분은 초로 환산할시",cho,"초입니다")
# 소득세 계산 : 소득 세율표를 구해보고 이를 이용하여 소득이 들어오면 세금이 # 얼마인지 계산하시오 (연봉, 단순히 세율만 적용합니다.) income = int(input(" 연봉을 입력하시오 . ")) inco = (income*3.3)/100 con = income-inco print("세후 연봉은 ",round(con,-1),"원 입니다.")
# 놀이공원 매표소 단체 입장료 계산하기 # 조건 : 팀별 인원 구성을 입력 (초등, 청소년, 일반인, 경로대상) 하면 입장료 소견표에 # 정산요금 : 초등(5000원), 청소년(10000원), 일반인(15000원), 경로대상(3000원) # 팀별 할인 카드 확인 # 카드 없음 : 할인 무 , 일반카드 :10%, VIP : 20% print(" 놀이공원 매표소 단체 입장료 계산기입니다. ") halin = str() gg = str() cho = 5000 chung = 10000 liban = 15000 gyung = 3000 insu = int(input(" 초등생은 몇명인가요? ")) insu2 = int(input(" 청소년은 몇명인가요? ")) insu3 = int(input(" 일반인은 몇명인가요? ")) insu4 = int(input(" 경로자는 몇명인가요? ")) cho1 = 5000*insu chung1 = 10000*insu2 liban1 = 15000*insu3 gyung1 = 3000*insu4 chong = cho1+chung1+liban1+gyung1 halin = input("할인카드가 있으신가요? y or n") if halin == "y": gg = input(" VIP이신가요? y or n") if gg == "y": chho1 = chong/20 print("총 가격은", chong-chho1,"입니다.") if gg == "n": chho = chong/10 print("총 가격은", chong-chho,"입니다.") if halin == "n": print("총 가격은", chong,"입니다.")
ele = int(input("초등생 몇명?")) mid = int(input("청소년 몇명?")) adult = int(input("일반 몇명?")) old = int(input("경로 몇명?")) ele1 = 5000*ele mid1 = 10000*mid adult1 = 15000*adult old1 = 3000*old tot = ele1+mid1+adult1+old1 dis = int(input("카드X:0, 일반:1,VIP:2")) se = [tot,tot*0.9,tot*0.8] print("총요금",se[dis],"원 입니다.")
# for # for(i=0; i<100; i++): 인덱스 오버플로우 # {}: 인덱스 오버플로우 # for in 문 num = int(input("숫자를 입력하시오")) for i in range(num): for j in range(i+1): print("*", end = "") print()
숫자를 입력하시오 5
*
**
***
****
*****
num2 = int(input('숫자 입력')) for i in range(num2): for k in range(num2-i): print(" ", end='') for j in range(i+1): print("*",end='') print()
숫자 입력5
*
**
***
****
*****
n = int(input('숫자 입력')) for i in range(n): for k in range(n-i): print("@", end = '') for j in range(i*2 - 1): print(" ", end = '') for j in range(n-i): print("@", end = '') print()
n = int(input('숫자 입력')) for i in range(n): for k in range(n-i): print("+", end = '') for k in range(n+1): print(" ", end = '') for k in range(n-1): print("+", end = '') print()
n = int(input('숫자 입력')) for i in range(n): for j in range(n-i): print(" ", end='') for j in range(i+1): print("*", end='') for j in range(i): print("*", end='') print()
print("") for i in range(1,11): print(" "*(10-i), "*"*(i*2-1))
n = int(input('숫자 입력')) n1 = n-1 for i in range(n): for j in range(i+1): print("*",end='') print() for i in range(n1): for k in range(n1-i): print("*",end='') print()
반응형'Programming > Python' 카테고리의 다른 글
Python 기초 공부 - 4 (0) 2021.03.06 Python 기초 공부 - 3 (0) 2021.03.05 Python 기초 공부 - 1 (0) 2021.03.04 Python PEP8 요약 (0) 2021.02.06 Flask를 이용하여, 웹 구축 - 1 (0) 2020.09.06