diff --git "a/1213/\354\226\221\354\230\210\354\235\200/1213.py" "b/1213/\354\226\221\354\230\210\354\235\200/1213.py" deleted file mode 100644 index c3f7fe2..0000000 --- "a/1213/\354\226\221\354\230\210\354\235\200/1213.py" +++ /dev/null @@ -1,9 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Tue Dec 13 20:22:37 2022 - -@author: Galaxy Book Ion -""" - -#github test -# 20221213 \ No newline at end of file diff --git "a/1213/\354\235\264\355\225\230\354\230\201/1213.py" "b/1213/\354\235\264\355\225\230\354\230\201/1213.py" deleted file mode 100644 index e6de67a..0000000 --- "a/1213/\354\235\264\355\225\230\354\230\201/1213.py" +++ /dev/null @@ -1,11 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Tue Dec 13 20:22:37 2022 - -@author: Galaxy Book Ion -""" - -#github test -#1차 -#2차 진짜되나? - diff --git "a/1213/\354\240\225\354\213\234\355\230\204/1213.py" "b/1213/\354\240\225\354\213\234\355\230\204/1213.py" deleted file mode 100644 index ce5c65f..0000000 --- "a/1213/\354\240\225\354\213\234\355\230\204/1213.py" +++ /dev/null @@ -1,10 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Tue Dec 13 20:22:37 2022 - -@author: Galaxy Book Ion -""" - -#github test -#20221213 -#rebase test \ No newline at end of file diff --git "a/20221213/\354\235\264\355\225\230\354\230\201/20221213.py" "b/20221213/\354\235\264\355\225\230\354\230\201/20221213.py" deleted file mode 100644 index 56a2960..0000000 --- "a/20221213/\354\235\264\355\225\230\354\230\201/20221213.py" +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -Created on Tue Dec 13 21:50:44 2022 - -@author: ryong -""" - -#안녕 되니? \ No newline at end of file diff --git "a/20221213/\354\240\225\354\213\234\355\230\204/20221213.py" "b/20221213/\354\240\225\354\213\234\355\230\204/20221213.py" deleted file mode 100644 index a26c805..0000000 --- "a/20221213/\354\240\225\354\213\234\355\230\204/20221213.py" +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Tue Dec 13 21:49:29 2022 - -@author: Galaxy Book Ion -""" - -#20221213 folder test \ No newline at end of file diff --git "a/20221214/\354\213\240\353\217\231\355\230\204/2022.12.14.py" "b/20221214/\354\213\240\353\217\231\355\230\204/2022.12.14.py" deleted file mode 100644 index ad52b10..0000000 --- "a/20221214/\354\213\240\353\217\231\355\230\204/2022.12.14.py" +++ /dev/null @@ -1,427 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Spyder Editor -This is a temporary script file. -""" -# F9 키로 한줄또는 선택영역 실행 -# 한줄 주석 -""" - 여러줄 주석 -""" -''' - 여러줄 주석 - 여러줄 주석은 나중에 문자열 표현에서도 사용됨. -''' - -print('hello') -print("hello") -#여러개의 데이터 화면에 출력 -print(10,20,30,40,50) -#문자열을 여러번 출력 -print("abc"*3) -print('abc'*3) -#문자열+숫자 안됨. -print("학번:"+100) #오류발생 -print("학번:",100) -print("학번:"+"100") #문자열간의 +연산은 가능함 -print("학번:"+str(100)) #str() : 문자열로 변환 -print("'안녕하세요' 라고 말했습니다.") -print('"안녕하세요" 라고 말했습니다.') -print("\"안녕하세요\" 라고 말했습니다.") -print('\'안녕하세요\' 라고 말했습니다.') -# \n : new line -print("동해물과 백두산이 마르고 닳도록\n하느님이 보우하사") -#\ 라인 연결. 다음라인도 연결된 문장. -# \사용시 공백이 없어야 함. -print("동해물과 백두산이 마르고 닳도록 \ - 하느님이 보우하사") -''' - 여러줄 주석 - 문자열의 """ 표시는 여러줄 문자열 표시에 사용가능함 -''' -print("""동해물과 백두산이 마르고 닳도록 - 하느님이 보우하사 우리나라 만세 - 무궁화 삼천리 화려강산""") - -#10 20 30 출력 -print(10,end="\t") -print(20,end="\t") -print(30,end="\n") #end 속성값의 기본값 : \n. -#10,20,30 출력 -print(10,end=",") -print(20,end=",") -print(30) -# print("문장의 처음에 공백이 있으면 오류") #오류 - -#문자열 : 문자들의 모임. 문자여러개. 문자의 배열로 인식 -print("안녕하세요"[0]) #안 -print("안녕하세요"[2]) #하 - -#문자열의 범위를 지정하여 출력하기 -#문자열[첫번째인덱스:마지막인덱스+1:증감값] -print("안녕하세요"[0:2]) #안녕. 0번인덱스부터 1번인덱스까지 -print("안녕하세요"[:2]) #안녕. 처음부터 1번인덱스까지 -# 처음부터 4번인덱스까지 2칸씩 -print("안녕하세요"[:5:2]) #안하요. -print("안녕하세요"[2:]) #하세요. 2번인덱스 이후 -print("안녕하세요"[::2])#안하요 -print("안녕하세요"[::-1])# 뒤부터 - -#len() : 문자열의 길이 -print(len("안녕하세요")) -len("안녕하세요") - -#### 자료형 : 변수선언하지 않고 사용가능함. -# 변수의 자료형은 값으로 결정됨. -n = 10 -type(n) -n = 10.5 -type(n) -n='안녕' -type(n) - -#### 연산자 -# 산술연산자 : +,-,* , /, %, // ,** -5+7 -5*7 -5/7 -5%7 -5//7 #정수형 몫의 값 -5**2 # 5*5. 제곱 -5^2 # 비트연산자 (XOR) -# 문제 : 3741초가 몇시간 몇분 몇초인지 출력하기 -print(3741//3600,"시간",(3741%3600)//60,"분",\ - (3741%60),"초") - -# 키보드에서 초를 입력받아 몇시간 몇분 몇초인지 출력하기 -# input함수:키보드에서 입력받기. -# 문자열형태로 입력받음. -second = int(input("초를 입력하세요:")) -print(second//3600,"시간",(second%3600)//60,"분",\ - (second%60),"초") - -#대입연산자 : =, +=, -=, *=,.... -a=10 -a += 10 -a -a -=5 -a -a *=2 -a -# 문자열에서 사용가능한 대입연산자 : =, +=, *= -s= "abc" -s += "d" -s -s *= 3 -s - -#자연수를 입력받아 +100을한 값을 출력하기 -num = int(input("자연수를 입력하세요")) -num += 100 -print(num) - -#형변환 함수 -# int() : 정수형으로 변환 -# float() : 실수형으로 변환 -# str() : 문자열형으로 변환 -print("num+100="+str(num)) - -#2,8,16 진수를 10진수로 변환 -print(int("11",2)) -print(int("11",8)) -print(int("11",16)) -#10진수를 2,8,16진수로 변환 -print(10,"의 2진수:",bin(10)) -print(10,"의 8진수:",oct(10)) -print(10,"의 16진수:",hex(10)) - -#형식문자를 이용하여 출력하기 : -# %d(10진수정수) -# %f(실수) -# %s(문자열) -print("%d * %d = %d" % (2,3,6)) -print("%f * %f = %f" % (2,3,6)) -print("%.2f * %.2f = %.2f" % (2,3,6)) - -#format 함수를 이용한 출력 -#{0:5d} : 첫번째값을 정수형 5자리로 출력 -#{1:5d} : 두번째값을 정수형 5자리로 출력 -#{2:5d} : 세번째값을 정수형 5자리로 출력 -print("{0:5d}{1:5d}{2:5d}".format(100,200,300)) -print("{1:5d}{2:5d}{0:5d}".format(100,200,300)) -# %x,%X : 16진수 표현 -print("%X" % (255)) -print("%x" % (255)) - -print("안녕 %s!, 나도 %s" % ("홍길동","김삿갓")) -# 직접 변수이름으로 출력 -a=100 -b=200 -print(f"{a},{b}") - -### 조건문 : if문 -# 들여쓰기 해야함 -score = 65 -if score >= 90 : - print("A학점") - print("합격입니다.") -else : - if score >= 80 : - print("B학점") - print("합격입니다.") - else : - if score >= 70 : - print("C학점") - print("합격입니다.") - else : - if score >= 60 : - print("D학점") - else : - print("F학점") - -# if elif 구문 -if score >= 90 : - print("A학점") - print("합격입니다.") -elif score >= 80 : - print("B학점") - print("합격입니다.") -elif score >= 80 : - print("B학점") - print("합격입니다.") -elif score >= 60 : - print("D학점") - print("합격입니다.") -else : - print("F학점") - print("불합격입니다.") - -score = 50 -if(score >= 60) : - print("합격입니다.") - print("자격증을 받으러 오세요") - -# 점수가 60이상이면 PASS 60미만이면 FAIL을 출력하기 -score = 65 -if score >= 60 : - print("PASS") -else : - print("FAIL") - -if score >= 60 : - print("PASS") -elif score < 60 : - print("FAIL") - -# 간단한 조건식 -# TRUE if 조건식 else FALSE -score = 65 -print(score,"점수는",'PASS' if score>=60 else 'FAIL') - -# 반복문 -#1부터 100까지의 합 구하기 -num = 100 -hap = 0 -# range(1,num+1,증감값) : 1 ~ num까지의 숫자들 -for i in range(1,num+1) : - hap += i -print ("1부터 %d까지의 합:%d" % (num,hap)) - -#짝수의 합 구하기 -hap=0 -for i in range(1,num+1) : - if i % 2== 0 : - hap += i -print ("1부터 %d까지의 짝수합:%d" % (num,hap)) - -hap=0 -for i in range(2,num+1,2) : - hap += i -print ("1부터 %d까지의 짝수합:%d" % (num,hap)) - -#12345 반복문을 이용하여 출력하기 -print(12345) -for i in range(1,6) : - print(i,end="") - -# while 조건문: 조건문의 결과가 참인 동안 반복함 -num = 1 -while num <= 5 : - print(num, end="") - num += 1 - -#break : 반복문 종료 -#continue : 반복문의 처음으로 제어 이동 -hap = 0 -for i in range(1,11) : #1 ~ 10 - if i == 5 : - break; - hap += i -print('hap=',hap) # 10 - -hap = 0 -for i in range(1,11) : - if i == 5 : - continue - hap += i -print('hap=',hap) # 50 - -#1 ~ 45사이의 숫자 6개 출력하기 -# 난수 생성하기 -import random #모듈 -rnum = random.randrange(1,46) #1~45까지의 임의의 수 -print(rnum) - -for i in range(1,7) : - print(random.randrange(1,46),end=",") - -''' - 컴퓨터가 1부터 99사이의 임의의 수를 저장하고, - 숫자를 입력받아서 컴퓨터가 저장한 수를 맞추기. - 컴퓨터는 입력한 숫자가 정답과 비교하여 큰수,작은수 인지 출력. - 정답 입력시 입력한 횟수를 출력하기. - 1. 난수 생성. - 2. 정답을 맞추는 동안 계속 입력 받기. => while True : - 정답이 입력되는 break -''' -rnum = random.randrange(1,100) #1~99까지의 임의의 수 -cnt = 0 -while True : - a = int(input("숫자를 입력하세요")) - cnt += 1 - if a > rnum : - print(a,"보다 작은수입니다.") - elif a < rnum : - print(a,"보다 큰수입니다.") - else : - print("정답입니다.") - print("%d번만에 정답을 맞췄습니다." % (cnt)) - break - -#중첩반복문 -i,j=0,0 #초기화 방식 -for i in range(2,10) : # 2 ~ 9 - print("%5d단" % i) - for j in range(2,10) : # 2 ~ 9 - print("%2d X %2d = %3d" % (i,j,(i*j))) - print() - -''' -1. 직각 삼각형 출력하기 -* -** -*** -**** -***** -''' -h=5 -### 1 #### -for i in range(1,h+1) : - for j in range(1,i+1) : - print("*",end="") - print() -### 2 #### -for i in range(1,h+1) : - print("*"*i) - -''' -2. 역 직각 삼각형 출력하기 -***** -**** -*** -** -* -''' -for i in range(h,0,-1) : - print("*"*i) - -''' -3. 역 직각 삼각형 출력하기 - 공백 * -***** : 0(h-0) 5 - **** : 1(h-4) 4 - *** : 2(h-3) 3 - ** : 3(h-2) 2 - * : 4(h-1) 1 -''' -for i in range(h,0,-1) : - print(" " * (h-i),end="") - print("*"*i) - -''' -4. 직각 삼각형 출력하기 - 공백 * - * 4(h-1) 1 - ** 3(h-2) 2 - *** 2(h-3) 3 - **** 1(h-4) 4 -***** 0(h-5) 5 -''' - -for i in range(1,h+1,1) : - print(" " * (h-i),end="") - print("*"*i) - -##### 문자열 함수 -''' - len(문자열) : 문자열의 길이 - 문자열.count(문자) : 문자열에서 문자의 갯수 리턴 - 문자열.find(문자) : 문자열에서 문자의 위치 리턴 - 문자가 없는 경우 -1 리턴 - 문자열.index(문자) : 문자열에서 문자의 위치 리턴 - 문자가 없는 경우 오류 발생 -''' -a = "hello" -#a 문자열에서 l문자의 갯수 출력하기 -cnt = 0 -#len(a) : a문자열의 길이 5 -for i in range(len(a)) : # 0 ~ 4까지값 - if a[i] == 'l' : - cnt += 1 -print(a,"에서 l 문자의 갯수:",cnt) - -print(a,"에서 l 문자의 갯수:",a.count('l')) -print(a,"에서 a 문자의 갯수:",a.count('a')) #0 - -#a 문자열에서 l문자의 위치(인덱스) 출력하기 -print(a,"에서 l 문자의 위치:",a.find('l')) #2 -print(a,"에서 l 문자의 위치:",a.index('l')) #2 - -#a 문자열에서 3번인덱스 부터 l문자의 위치(인덱스) 출력하기 -print(a,"에서 l 문자의 위치:",a.find('l',3)) #3 -print(a,"에서 l 문자의 위치:",a.index('l',3)) #3 -#a 문자열에서 3번인덱스 부터 o문자의 위치(인덱스) 출력하기 -print(a,"에서 o 문자의 위치:",a.find('o',3)) #4 -print(a,"에서 o 문자의 위치:",a.index('o',3)) #4 - -#a 문자열에서 4번인덱스 부터 l문자의 위치(인덱스) 출력하기 -print(a,"에서 l 문자의 위치:",a.find('l',4)) #-1 -print(a,"에서 l 문자의 위치:",a.index('l',4)) #오류 - - -#a 문자열에서 a문자의 위치(인덱스) 출력하기 -print(a,"에서 a 문자의 위치:",a.find('a')) #-1 -print(a,"에서 a 문자의 위치:",a.index('a')) #오류. 예외처리필요 - -#문자열의 종류 알려주는 함수 -ss = '123' -ss = 'Aa123' -ss = 'Aa' -ss = 'AA' -ss = 'aa' -ss = ' ' -ss = ' aa ' -ss = ' Aa ' - -if ss.isdigit() : - print(ss,": 숫자") -if ss.isalpha() : - print(ss,": 문자") -if ss.isalnum() : - print(ss,": 문자 또는 숫자") -if ss.isupper() : - print(ss,": 대문자") -if ss.islower() : - print(ss,": 소문자") -if ss.isspace() : - print(ss,": 공백") diff --git "a/20221214/\354\213\240\353\217\231\355\230\204/20221214test.py" "b/20221214/\354\213\240\353\217\231\355\230\204/20221214test.py" deleted file mode 100644 index 243967a..0000000 --- "a/20221214/\354\213\240\353\217\231\355\230\204/20221214test.py" +++ /dev/null @@ -1,152 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Thu Dec 15 17:12:59 2022 - -@author: super -""" -''' -1. 삼각형의 높이를 입력받은 후 삼각형을 출력하는 프로그램을 작성 - -[결과] -삼각형의 높이를 입력하세요 : 5 - * 4,1,4 - *** 3,3,3 - ***** 2,5,2 - ******* 1,7,1 -********* 0,9,0 -''' -row = int(input("삼각형의 높이를 입력하세요")) -for i in range(1,row+1): - print(" "*(row-i),end="") - print("*"*(i*2-1)) -# 처음 공백가 *의 갯수 및 위치 파악만 한뒤 도저히 생각이 안나서 강사님 답안지를 보며, -# range에 row+1를 통해 0부터 시작하는 것을 확인함. -# print("*"*(i*2-1)) 이 부분은 짝수 -1을 해야 홀수가 나옴으로 이해가 됨. 단 하라고 하면 못할듯 ㅋㅋ - - - - -''' -2. 년도를 입력받아 윤년인지 평년인지 출력하기. -윤년은 4로 나누어 떨어지고, 100 나누어 떨어지지 않거나, 400으로 나누어 떨어지면 윤년. -그외는 평년 - -년도를 입력하세요 : 2000 -2000년은 윤년입니다. - -년도를 입력하세요 : 2020 -2020년은 윤년입니다. - -년도를 입력하세요 : 2022 -2022년은 평년입니다. - -년도를 입력하세요 : 2100 -2100년은 평년입니다. -''' - -year = int(input("년도를 입력하세요 : ")) - -if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)) : - yun = '윤년' -else : - yun = '평년' -print(year,"년은 ",yun,"입니다.") - -year = int(input("년도를 입력하세요")) - -if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)) : - yun = '윤년' -else : - yun = '평년' -print(year,"년도",yun,"입니다.") - - - - - - -''' -3. 1 부터 1000 까지의 홀수의 합계 계산시 합이 최초로 1000이 넘는 숫자는 -구하는 프로그램을 작성해 보자. - -[예시] -1부터 20까지 홀수의 합계 계산시 처음으로 10이 넘는 숫자를 출력하기 -7 - -1+3+5+7+9+ 11 + ... -''' - -hap,i = 0,0 -for i in range(1,1001,2) : # i : 1,3,5,7,9....999 - hap += i - if hap >= 1000: - break -print("1~1000의 홀수의 합에서 최초로 1000이 넘는 위치 : %d, \ - 합계: %d" % (i,hap)) - - -""" -4. 화씨온도= (( 9 / 5) * 섭씨온도) + 32 인 경우 - 섭씨 -20 ~ 50 도까지를 화씨 온도로 변경하여 작성하기 -""" -for c in range(-20,51): - print("섭씨온도:",c,",","화씨온도:",(9/5*c)+32) - - - - -''' -5. 금액을 입력받아 동전(500,100,50,10,1)으로 바꿔 주는 프로그램 작성하기 - 동전의 갯수를 최소개로한 각각의 동전의 갯수를 구하는 프로그램 작성하기 - -금액을 입력하세요: 3750 -500원동전 : 7개 -100원동전 : 2개 -50원동전 : 1개 -10원동전 : 0개 -1원동전 : 0개 -''' -money, c5000, c1000, c500, c100, c50, c10 = 0,0,0,0,0,0,0 - -money=int(input("교환할 돈은 얼마? : ")) -c500=money/500 -money%=500 -c100=money/100 -money%=100 -c50=money/50 -money%=50 -c10=money/10 -money%=10 -c5=money/5 -money%=5 -c1=money/1 -money%=1 -print("\n") -print("오백원짜리 : %d개" % c500) -print("백원짜리 : %d개" % c100) -print("오십원짜리 : %d개" % c50) -print("십원짜리 : %d개" % c10) -print("오원짜리 : %d개" % c5) -print("일원짜리 : %d개" % c1) - - - - - - -''' -6. 구구단 가로로 출력하기 - -2X 2= 4 3X 2= 6 4X 2= 8 5X 2= 10 6X 2= 12 7X 2= 14 8X 2= 16 9X 2= 18 -2X 3= 6 3X 3= 9 4X 3= 12 5X 3= 15 6X 3= 18 7X 3= 21 8X 3= 24 9X 3= 27 -... -... - - -''' -for i in range(2,10): - for j in range(2,10): - print(i,'*',j,'=',i*j,end='\t') - if(j == 9) : - print() - diff --git "a/20221215/\354\213\240\353\217\231\355\230\204/2022.12.14.py" "b/20221215/\354\213\240\353\217\231\355\230\204/2022.12.14.py" deleted file mode 100644 index ad52b10..0000000 --- "a/20221215/\354\213\240\353\217\231\355\230\204/2022.12.14.py" +++ /dev/null @@ -1,427 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Spyder Editor -This is a temporary script file. -""" -# F9 키로 한줄또는 선택영역 실행 -# 한줄 주석 -""" - 여러줄 주석 -""" -''' - 여러줄 주석 - 여러줄 주석은 나중에 문자열 표현에서도 사용됨. -''' - -print('hello') -print("hello") -#여러개의 데이터 화면에 출력 -print(10,20,30,40,50) -#문자열을 여러번 출력 -print("abc"*3) -print('abc'*3) -#문자열+숫자 안됨. -print("학번:"+100) #오류발생 -print("학번:",100) -print("학번:"+"100") #문자열간의 +연산은 가능함 -print("학번:"+str(100)) #str() : 문자열로 변환 -print("'안녕하세요' 라고 말했습니다.") -print('"안녕하세요" 라고 말했습니다.') -print("\"안녕하세요\" 라고 말했습니다.") -print('\'안녕하세요\' 라고 말했습니다.') -# \n : new line -print("동해물과 백두산이 마르고 닳도록\n하느님이 보우하사") -#\ 라인 연결. 다음라인도 연결된 문장. -# \사용시 공백이 없어야 함. -print("동해물과 백두산이 마르고 닳도록 \ - 하느님이 보우하사") -''' - 여러줄 주석 - 문자열의 """ 표시는 여러줄 문자열 표시에 사용가능함 -''' -print("""동해물과 백두산이 마르고 닳도록 - 하느님이 보우하사 우리나라 만세 - 무궁화 삼천리 화려강산""") - -#10 20 30 출력 -print(10,end="\t") -print(20,end="\t") -print(30,end="\n") #end 속성값의 기본값 : \n. -#10,20,30 출력 -print(10,end=",") -print(20,end=",") -print(30) -# print("문장의 처음에 공백이 있으면 오류") #오류 - -#문자열 : 문자들의 모임. 문자여러개. 문자의 배열로 인식 -print("안녕하세요"[0]) #안 -print("안녕하세요"[2]) #하 - -#문자열의 범위를 지정하여 출력하기 -#문자열[첫번째인덱스:마지막인덱스+1:증감값] -print("안녕하세요"[0:2]) #안녕. 0번인덱스부터 1번인덱스까지 -print("안녕하세요"[:2]) #안녕. 처음부터 1번인덱스까지 -# 처음부터 4번인덱스까지 2칸씩 -print("안녕하세요"[:5:2]) #안하요. -print("안녕하세요"[2:]) #하세요. 2번인덱스 이후 -print("안녕하세요"[::2])#안하요 -print("안녕하세요"[::-1])# 뒤부터 - -#len() : 문자열의 길이 -print(len("안녕하세요")) -len("안녕하세요") - -#### 자료형 : 변수선언하지 않고 사용가능함. -# 변수의 자료형은 값으로 결정됨. -n = 10 -type(n) -n = 10.5 -type(n) -n='안녕' -type(n) - -#### 연산자 -# 산술연산자 : +,-,* , /, %, // ,** -5+7 -5*7 -5/7 -5%7 -5//7 #정수형 몫의 값 -5**2 # 5*5. 제곱 -5^2 # 비트연산자 (XOR) -# 문제 : 3741초가 몇시간 몇분 몇초인지 출력하기 -print(3741//3600,"시간",(3741%3600)//60,"분",\ - (3741%60),"초") - -# 키보드에서 초를 입력받아 몇시간 몇분 몇초인지 출력하기 -# input함수:키보드에서 입력받기. -# 문자열형태로 입력받음. -second = int(input("초를 입력하세요:")) -print(second//3600,"시간",(second%3600)//60,"분",\ - (second%60),"초") - -#대입연산자 : =, +=, -=, *=,.... -a=10 -a += 10 -a -a -=5 -a -a *=2 -a -# 문자열에서 사용가능한 대입연산자 : =, +=, *= -s= "abc" -s += "d" -s -s *= 3 -s - -#자연수를 입력받아 +100을한 값을 출력하기 -num = int(input("자연수를 입력하세요")) -num += 100 -print(num) - -#형변환 함수 -# int() : 정수형으로 변환 -# float() : 실수형으로 변환 -# str() : 문자열형으로 변환 -print("num+100="+str(num)) - -#2,8,16 진수를 10진수로 변환 -print(int("11",2)) -print(int("11",8)) -print(int("11",16)) -#10진수를 2,8,16진수로 변환 -print(10,"의 2진수:",bin(10)) -print(10,"의 8진수:",oct(10)) -print(10,"의 16진수:",hex(10)) - -#형식문자를 이용하여 출력하기 : -# %d(10진수정수) -# %f(실수) -# %s(문자열) -print("%d * %d = %d" % (2,3,6)) -print("%f * %f = %f" % (2,3,6)) -print("%.2f * %.2f = %.2f" % (2,3,6)) - -#format 함수를 이용한 출력 -#{0:5d} : 첫번째값을 정수형 5자리로 출력 -#{1:5d} : 두번째값을 정수형 5자리로 출력 -#{2:5d} : 세번째값을 정수형 5자리로 출력 -print("{0:5d}{1:5d}{2:5d}".format(100,200,300)) -print("{1:5d}{2:5d}{0:5d}".format(100,200,300)) -# %x,%X : 16진수 표현 -print("%X" % (255)) -print("%x" % (255)) - -print("안녕 %s!, 나도 %s" % ("홍길동","김삿갓")) -# 직접 변수이름으로 출력 -a=100 -b=200 -print(f"{a},{b}") - -### 조건문 : if문 -# 들여쓰기 해야함 -score = 65 -if score >= 90 : - print("A학점") - print("합격입니다.") -else : - if score >= 80 : - print("B학점") - print("합격입니다.") - else : - if score >= 70 : - print("C학점") - print("합격입니다.") - else : - if score >= 60 : - print("D학점") - else : - print("F학점") - -# if elif 구문 -if score >= 90 : - print("A학점") - print("합격입니다.") -elif score >= 80 : - print("B학점") - print("합격입니다.") -elif score >= 80 : - print("B학점") - print("합격입니다.") -elif score >= 60 : - print("D학점") - print("합격입니다.") -else : - print("F학점") - print("불합격입니다.") - -score = 50 -if(score >= 60) : - print("합격입니다.") - print("자격증을 받으러 오세요") - -# 점수가 60이상이면 PASS 60미만이면 FAIL을 출력하기 -score = 65 -if score >= 60 : - print("PASS") -else : - print("FAIL") - -if score >= 60 : - print("PASS") -elif score < 60 : - print("FAIL") - -# 간단한 조건식 -# TRUE if 조건식 else FALSE -score = 65 -print(score,"점수는",'PASS' if score>=60 else 'FAIL') - -# 반복문 -#1부터 100까지의 합 구하기 -num = 100 -hap = 0 -# range(1,num+1,증감값) : 1 ~ num까지의 숫자들 -for i in range(1,num+1) : - hap += i -print ("1부터 %d까지의 합:%d" % (num,hap)) - -#짝수의 합 구하기 -hap=0 -for i in range(1,num+1) : - if i % 2== 0 : - hap += i -print ("1부터 %d까지의 짝수합:%d" % (num,hap)) - -hap=0 -for i in range(2,num+1,2) : - hap += i -print ("1부터 %d까지의 짝수합:%d" % (num,hap)) - -#12345 반복문을 이용하여 출력하기 -print(12345) -for i in range(1,6) : - print(i,end="") - -# while 조건문: 조건문의 결과가 참인 동안 반복함 -num = 1 -while num <= 5 : - print(num, end="") - num += 1 - -#break : 반복문 종료 -#continue : 반복문의 처음으로 제어 이동 -hap = 0 -for i in range(1,11) : #1 ~ 10 - if i == 5 : - break; - hap += i -print('hap=',hap) # 10 - -hap = 0 -for i in range(1,11) : - if i == 5 : - continue - hap += i -print('hap=',hap) # 50 - -#1 ~ 45사이의 숫자 6개 출력하기 -# 난수 생성하기 -import random #모듈 -rnum = random.randrange(1,46) #1~45까지의 임의의 수 -print(rnum) - -for i in range(1,7) : - print(random.randrange(1,46),end=",") - -''' - 컴퓨터가 1부터 99사이의 임의의 수를 저장하고, - 숫자를 입력받아서 컴퓨터가 저장한 수를 맞추기. - 컴퓨터는 입력한 숫자가 정답과 비교하여 큰수,작은수 인지 출력. - 정답 입력시 입력한 횟수를 출력하기. - 1. 난수 생성. - 2. 정답을 맞추는 동안 계속 입력 받기. => while True : - 정답이 입력되는 break -''' -rnum = random.randrange(1,100) #1~99까지의 임의의 수 -cnt = 0 -while True : - a = int(input("숫자를 입력하세요")) - cnt += 1 - if a > rnum : - print(a,"보다 작은수입니다.") - elif a < rnum : - print(a,"보다 큰수입니다.") - else : - print("정답입니다.") - print("%d번만에 정답을 맞췄습니다." % (cnt)) - break - -#중첩반복문 -i,j=0,0 #초기화 방식 -for i in range(2,10) : # 2 ~ 9 - print("%5d단" % i) - for j in range(2,10) : # 2 ~ 9 - print("%2d X %2d = %3d" % (i,j,(i*j))) - print() - -''' -1. 직각 삼각형 출력하기 -* -** -*** -**** -***** -''' -h=5 -### 1 #### -for i in range(1,h+1) : - for j in range(1,i+1) : - print("*",end="") - print() -### 2 #### -for i in range(1,h+1) : - print("*"*i) - -''' -2. 역 직각 삼각형 출력하기 -***** -**** -*** -** -* -''' -for i in range(h,0,-1) : - print("*"*i) - -''' -3. 역 직각 삼각형 출력하기 - 공백 * -***** : 0(h-0) 5 - **** : 1(h-4) 4 - *** : 2(h-3) 3 - ** : 3(h-2) 2 - * : 4(h-1) 1 -''' -for i in range(h,0,-1) : - print(" " * (h-i),end="") - print("*"*i) - -''' -4. 직각 삼각형 출력하기 - 공백 * - * 4(h-1) 1 - ** 3(h-2) 2 - *** 2(h-3) 3 - **** 1(h-4) 4 -***** 0(h-5) 5 -''' - -for i in range(1,h+1,1) : - print(" " * (h-i),end="") - print("*"*i) - -##### 문자열 함수 -''' - len(문자열) : 문자열의 길이 - 문자열.count(문자) : 문자열에서 문자의 갯수 리턴 - 문자열.find(문자) : 문자열에서 문자의 위치 리턴 - 문자가 없는 경우 -1 리턴 - 문자열.index(문자) : 문자열에서 문자의 위치 리턴 - 문자가 없는 경우 오류 발생 -''' -a = "hello" -#a 문자열에서 l문자의 갯수 출력하기 -cnt = 0 -#len(a) : a문자열의 길이 5 -for i in range(len(a)) : # 0 ~ 4까지값 - if a[i] == 'l' : - cnt += 1 -print(a,"에서 l 문자의 갯수:",cnt) - -print(a,"에서 l 문자의 갯수:",a.count('l')) -print(a,"에서 a 문자의 갯수:",a.count('a')) #0 - -#a 문자열에서 l문자의 위치(인덱스) 출력하기 -print(a,"에서 l 문자의 위치:",a.find('l')) #2 -print(a,"에서 l 문자의 위치:",a.index('l')) #2 - -#a 문자열에서 3번인덱스 부터 l문자의 위치(인덱스) 출력하기 -print(a,"에서 l 문자의 위치:",a.find('l',3)) #3 -print(a,"에서 l 문자의 위치:",a.index('l',3)) #3 -#a 문자열에서 3번인덱스 부터 o문자의 위치(인덱스) 출력하기 -print(a,"에서 o 문자의 위치:",a.find('o',3)) #4 -print(a,"에서 o 문자의 위치:",a.index('o',3)) #4 - -#a 문자열에서 4번인덱스 부터 l문자의 위치(인덱스) 출력하기 -print(a,"에서 l 문자의 위치:",a.find('l',4)) #-1 -print(a,"에서 l 문자의 위치:",a.index('l',4)) #오류 - - -#a 문자열에서 a문자의 위치(인덱스) 출력하기 -print(a,"에서 a 문자의 위치:",a.find('a')) #-1 -print(a,"에서 a 문자의 위치:",a.index('a')) #오류. 예외처리필요 - -#문자열의 종류 알려주는 함수 -ss = '123' -ss = 'Aa123' -ss = 'Aa' -ss = 'AA' -ss = 'aa' -ss = ' ' -ss = ' aa ' -ss = ' Aa ' - -if ss.isdigit() : - print(ss,": 숫자") -if ss.isalpha() : - print(ss,": 문자") -if ss.isalnum() : - print(ss,": 문자 또는 숫자") -if ss.isupper() : - print(ss,": 대문자") -if ss.islower() : - print(ss,": 소문자") -if ss.isspace() : - print(ss,": 공백") diff --git "a/20221215/\354\213\240\353\217\231\355\230\204/20221125.py" "b/20221215/\354\213\240\353\217\231\355\230\204/20221125.py" deleted file mode 100644 index 0a88001..0000000 --- "a/20221215/\354\213\240\353\217\231\355\230\204/20221125.py" +++ /dev/null @@ -1,386 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Thu Nov 24 16:00:58 2022 -@author: KITCOOP -20221125.py -""" - -''' - print(값) : 화면에 출력하기 - print(값1,값2) : 값을 여러개 출력 - print("{0:d}{1:2d}...".format(값1,값2,...)) 형식문자 이용하여 출력 - print("%2d,%3d" % (값1,값2)) : 형식문자 이용하여 값을 여러개 출력 - print(f"{변수1} {변수2}") : 변수에 해당하는 값을 출력 - print(""" 문자열 """) : 여러줄 문자열 - - 문자열 : 문자들의 모임. 인덱스(첨자)를 사용가능 - "문자열"[시작인덱스:종료인덱스+1:증감값] - 시작인덱스 생략시 : 0번부터시작 - 종료인덱스 생략시 : 마지막문자까지 - 증감값 생략시 : 1씩 증가 - - 조건문 : if else, if elif else , True if 조건식 else False - 반복문 : for 변수 in 범위 , while 조건식 - 범위 : range(초기값,종료값+1,증감식) - break,continue - 조건문,반복문 : 들여쓰기에 주의. - - 문자열 함수 - len(문자열) : 문자열의 길이 - 문자열.count(문자) : 문자열에서 문자의 갯수 리턴 - 문자열.find(문자) : 문자열에서 문자의 위치 리턴 문자가 없는 경우 -1 리턴 - 문자열.index(문자) : 문자열에서 문자의 위치 리턴 문자가 없는 경우 오류 발생 - 문자열.isdigit() : 숫자? - 문자열.isalpha() : 문자? - 문자열.isalnum() : 숫자또는문자? - 문자열.isupper() : 대문자? - 문자열.islower() : 소문자? - 문자열.isspace() : 공백 ? -''' -############################ -# Collection : 여러개의 데이터 저장할 수 있는 객체 -# list(리스트) : 배열의 형태.인덱스사용가능. []로 표시함. -# tuple(튜플) : 상수화된 리스트.변경불가리스트. ()로 표시함 -# set(셋) : 중복불가. 집합 {}로 표시함 -# dictionary(딕셔너리) : 자바의 Map. (key,value)쌍인 객체들 {}로 표시함 -############################ -#리스트 -a=[0,0,0,0] #[10,20,30,40] -b=[] -print(a,len(a)) #len(a) : 리스트 요소의 갯수 -print(b,len(b)) - -#a 리스트의 길이 만큼 숫자를 입력받아, a에 저장하고, 입력받은 수의 -# 전체 합계를 출력하기 -hap=0 -for i in range(len(a)) :#i: 0 ~ 3 - a[i] = int(input(str(i+1)+'번째 숫자 입력: ')) - hap += a[i] -print(a,"요소의 합:",hap) - -print(a,"요소의 합:",sum(a)) #sum(리스트) : 리스트요소의합 - -#a 리스트의 길이 만큼 숫자를 입력받아, -# b에 저장하고, 입력받은 수의 합계 출력하기 -for i in range(len(a)) :#i: 0 ~ 3 - #b리스트 요소는 없으므로 0번인덱스에 해당하는 b[0]은 없다 -# b[i] = int(input(str(i+1)+'번째 숫자 입력: ')) #오류발생 - #b.append : b리스트에 요소를 추가. - b.append(int(input(str(i+1)+'번째 숫자 입력: '))) -print(b,"요소의 합:",sum(b)) #sum(b) : b요소의 합 -#%s : 문자열표현의 형식 문자. list값도 %s로 사용 가능 -print("b=%s" % b) - -#리스트의 주요 함수 -a.append(1) #a 리스트에 1요소를 마지막 추가 -a -#a 리스트 정렬 (숫자 순서대로 정렬) -a.sort() -a -#a 리스트의 마지막 요소 출력하기 -len(a) -a[4] #a리스트의 4번인덱스. -a[len(a)-1] #a리스트의 마지막 인덱스. -a[-1] # 뒤에서 첫번째 인덱스. 마지막 인덱스 -a[-2] # 뒤에서 두번째 인덱스 -a -a.pop() #마지막 요소를 제거하여 출력 -a #[1, 10, 20, 30] - -a.reverse() #요소의 순서를 역순으로 -a - -#index(값) 함수 : 요소의 인덱스위치 리턴 -a.index(10) #2 -a.index(400) #값이 없는 경우 오류 발생 -#a.find(400) #함수오류. find 함수는 리스트에 없는 함수 - -#insert(인덱스,값) : 리스트 중간에 요소를 추가 -a -a.insert(1,222) -a -#remove(값) : 해당 요소를 제거 -a.remove(222) -a -b -#extend() : a 리스트에 b리스트 추가 -a.extend(b) -a -#10 요소의 갯수 출력하기 -a.count(10) - -#문자열을 분리하여 리스트로 저장하기 -dd = "2022/11/25" #문자열 -c = dd.split("/") -print(c) - -#문제 : ss 문자열의 모든 숫자들의 합을 출력하기 -ss = "10,20,50,60,30,40,50,60,30" -sslist = ss.split(",") -sslist -sum(sslist) #sslist 요소가 숫자가 아니고 문자열이므로 sum 사용 불가 -hap=0 -for n in sslist : - hap += int(n) #n의 값을 정수형 형변환 -print(sslist,"의 요소의 합:",hap) - -#map 함수 : 리스트의 요소에 적용함수를 설정 -print(sslist,"의 요소의 합:",sum(list(map(int,sslist)))) -#map(함수이름 ,리스트) : 리스트의 요소들마다 함수 적용 -#map(int ,sslist) : sslist의 모든 요소들이 int 함수 적용 -# 하여 요소의 자료형이 정수형으로 변환 -# list 함수 : 리스트로 변환 -mlist = list(map(int ,sslist)) -mlist -sum(mlist) - -##### dictionary : {key1:value1,key2:value2,,,} -score_dic = {'lee':100,'hong':70,'kim':90} -print(score_dic) -print(type(score_dic)) -#hong의 점수 출력하기 -# value <= dict['key'] -score_dic['hong'] -#hong 의 점수 75점으로 수정하기 -score_dic['hong'] = 75 -print(score_dic) -#park 의 점수 80점으로 추가하기 -score_dic['park']=80 -print(score_dic) - -#park 정보 제거하기 -del score_dic['park'] -print(score_dic) - -#키값만 조회 -print(score_dic.keys()) -print(list(score_dic.keys())) -#값들만 조회 -print(score_dic.values()) -print(list(score_dic.values())) -#키와값들의 쌍인 값으로 조회 -print(score_dic.items()) -print(list(score_dic.items())) -#dictionary 객체들을 반복문으로 조회 -for n in score_dic : - #n : key값 - print(n,"=",score_dic[n]) - -for n in score_dic.keys() : - #n : key값 - print(n,"=",score_dic[n]) - -for n,s in score_dic.items() : - #n:키값 - #s:value값 - print(n,"=",s) - -#[('lee', 100), ('hong', 75), ('kim', 90)] -for v in score_dic.items() : - #v :튜플객체. (k,v)쌍인 객체('kim', 90) - print(v[0],"=",v[1]) - print(v) #('kim', 90), - -for s in score_dic.values() : - print(s) #key값을 조회 못함 -''' -문제 : 1. 궁합음식의 키를 입력받아 해당되는 음식을 출력하기 - 등록안된 경우 오류 발생. => 등록여부 판단필요 - 2.종료 입력시 등록된 내용 출력하기 - 등록된음식 : - 떡볶이 : 오뎅 - 짜장면 : 단무지 - 3. 등록이 안된경우 - 등록여부를 입력받아, 등록하는 경우 궁합음식을 입력받기 - 등록하시겠습니까(y)? - y입력 : foods객체에 추가. - 궁합음식 입력받아서 foods에 추가함 - y가아닌경우 : - 음식을 다시 입력하기 - -''' -foods = {"떡볶이":"어묵","짜장면":"단무지","라면":"김치","맥주":"치킨"} -while True : - myf = input(str(list(foods.keys())) + "중 입력(종료):") - if myf == '종료' : - break - if myf in foods : #foods 데이터의 키값 중 myf값이 존재? - print("%s의 궁합음식:%s" % (myf,foods[myf])) - else : # 입력된값(myf)이 foods의 키값에 없는 데이터인 경우 - print("%s는 등록된 음식이 아닙니다" % myf) - y = input(myf+"를 등록하시겠습니까(y/n)?") - #y.lower() : y 문자열을 소문자로 변경 - if y.lower() == 'y' : # y=Y|y - #myf2 : 입력된 궁합음식 값 - myf2 = input(myf + "의 궁합음식 입력:") #궁합음식 입력 - foods[myf] = myf2 #(myf(키),myf2(값)) - -print("등록된 음식:") -for f in foods.items() : - print(f[0],":",f[1]) -for f in foods : - print(f,":",foods[f]) - -# 튜플 : 상수화된(변경 불가) 리스트. ( ) -tp1 = (10,20,30) -print(tp1) - -for t in tp1: - print(t) - -#인덱스 사용 가능 -print(tp1[0],tp1[1],tp1[2]) -tp1.append(40) #튜플은 변경안됨 -tp1[0]=100 #튜플은 변경안됨 - -#튜플객체를 변경하기 위해서는 리스트로 변경하면됨. -list1 = list(tp1) -list1.append(40) -list1[0]=100 -list1 -#tuple() : 튜플객체로 변경 -tp1=tuple(list1) -tp1 - -#tp1의 요소의 갯수와 변수의 갯수가 동일하면 사용가능 -a,b,c,d = tp1 -print(a,b,c,d) - -#tp1의 요소의 갯수 구하기 -print(len(tp1)) -#list1의 요소의 갯수 구하기 -print(len(list1)) - -#tp1의 요소의 합구하기 -print(sum(tp1)) -#list1의 요소의 합구하기 -print(sum(list1)) - -#2,3번째 요소만 출력하기 -print(tp1[1],tp1[2]) -print(tp1[1:3]) -print(tp1[:3]) -print(tp1[::2]) - -tp1 #(100, 20, 30, 40) -#tp1의 요소를 역순으로 출력하기 -#tp1.reverse() #역순으로 객체를 수정. 튜플에서 불가 -list1.reverse() #역순으로 객체를 수정 -list1 -#(40, 30, 20, 100) -#1 tp1 요소를 역순으로 출력 -for i in range(len(tp1)-1,-1,-1) : - print(tp1[i],end=",") - -#2 -print(tp1[::-1]) #역순 출력 -tp1 -print(list1[::-1]) #역순 출력 - -#set : 중복불가. 집합을 표현하는 객체 {} -set1 = {30,10,20,10} -print(set1) #10 요소는 한개만 출력됨. 순서지정안됨 -#print(set1[0]) #인덱스 사용 불가 - -#집합 구현하기 -set1 = {1,2,3,4,5,6} -set2 = {1,2,3,4,5,1,2,3,4,5} -print(set1) -print(set2) -set3 = {5,6,7,8} -#교집합 : 두개의 집합에 공통 요소들 -print("set1과 set2의 교집합 요소:",set1 & set2) -print("set1과 set3의 교집합 요소:",set1 & set3) -print("set1과 set3의 교집합 요소:",set1.intersection(set3)) #교집합 함수 -#합집합 : 두개의 집합에 속한 모든 요소들 -print("set1과 set2의 합집합 요소:",set1 | set2) -print("set1과 set3의 합집합 요소:",set1 | set3) -print("set1과 set3의 교집합 요소:",set1.union(set3)) - -#### comprehension(컴프리헨션) 방식으로 Collection 객체 생성 -# 규칙성이 있는 데이터를 Collection 객체의 요소로 저장하는 방식 -# numbers 리스트 : 1 ~ 10까지의 데이터 저장 -#1. 값을 대입 -numbers=[1,2,3,4,5,6,7,8,9,10] -print(numbers) -#2. 반복문 이용 -numbers=[] -for n in range(1,11) : #1~10 - numbers.append(n) -print(numbers) -#3.컴프리헨션 이용 -numbers=[x for x in range(1,11)] -print(numbers) - -# numbers 리스트 : 2 ~ 20까지의 짝수 데이터 저장 -#1 -numbers=[x*2 for x in range(1,11)] -print(numbers) -#2 -numbers=[x for x in range(2,21,2)] -print(numbers) -#3 -numbers=[x for x in range(1,21) if x%2==0] -print(numbers) - -# 문제 : 1 ~ 20까지의 수 중 2의 배수와 3의 배수만을 nums 리스트에 -# 데이터 저장. -numbers=[x for x in range(1,21) if (x%2==0) or (x%3==0)] -print(numbers) - -#두개의 리스트 데이터를 각각 한개식 튜플로 생성하고, -# 튜플을 리스트로 생성하기 -clist=['black','white'] -slist=['S','M','L'] -# [(black,S),(black,M),(black,L),(white,S),(white,M),(white,L)] -#1 반복문이용 -dlist = [] #('black','S'),('black','M'),('black','L'),('white','S').. -for c in clist : #'black','white' - for s in slist : #'S','M','L' - dlist.append((c,s)) -print(dlist) -#2 컴프리헨션 방식 -dlist=[(c,s) for c in clist for s in slist] -print(dlist) - -dlist=list((c,s) for c in clist for s in slist ) -print(dlist) - -#두개의 리스트 데이터를 각각 한개식 리스트로 생성하고, -# 리스트을 리스트로 생성하기 -dlist=[[c,s] for c in clist for s in slist] -print(dlist) - -#1 ~10사이의 짝수 제곱값을 가진 set 객체 생성하기 -set1 = {x*x for x in range(1,11) if x%2==0} -print(set1) - -set1 = {x*x for x in range(2,11,2)} -print(set1) - -#dictionary 데이터 생성하기 -products = {"냉장고":220,"건조기":140,"TV":130,"세탁기":150,"컴퓨터":200} -#200미만의 제품만 product1 객체 저장하기 -product1={} # '건조기':140,'TV':130 -for k in products : #k=TV - if products[k] < 200 : #130 - product1[k] = products[k] -print(product1) - -product1={} -for k in products.keys() : - if products[k] < 200 : - product1[k] = products[k] -print(product1) - -product1={} # '건조기':140,'TV':130 -for k,v in products.items() : #k="TV" v=130 - if v < 200 : - product1[k] = v -print(product1) -#컨프리헨션방식 -product2 = { k:v for k,v in products.items() if v<200} -print(product2) - -product2 = { k:products[k] for k in products if products[k]<200} -print(product2) \ No newline at end of file diff --git "a/20221215/\354\213\240\353\217\231\355\230\204/20221215.py" "b/20221215/\354\213\240\353\217\231\355\230\204/20221215.py" deleted file mode 100644 index 2faf81f..0000000 --- "a/20221215/\354\213\240\353\217\231\355\230\204/20221215.py" +++ /dev/null @@ -1,180 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Fri Nov 25 14:56:51 2022 -@author: KITCOOP -test1125.py -""" - -''' -1. 화면에서 한개의 문자를 입력받아 대문자인 경우는 소문자로, - 소문자인 경우는 대문자로 숫자인 경우는 20을 더한 값을 출력하기 -[결과] -한개의 문자를 입력하세요 : 1 -1 + 20 = 21 -한개의 문자를 입력하세요 : a -a 문자의 대문자는 A -한개의 문자를 입력하세요 : A -A 문자의 소문자는 a -''' - -ch = input("한개의 문자를 입력하세요 : ") -if ch.isdigit() : - print("%c + 20 = %d" % (ch,int(ch) + 20)) -elif ch.isupper() : - print("%c 문자의 소문자는 %c" % (ch,ch.lower())) -elif ch.islower() : - print("%c 문자의 대문자는 %c" % (ch,ch.upper())) - - - -''' -2 (1)+(1+2)+(1+2+3)+... (1+2+3+...10)=220 출력하기 -[결과] -(1)+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+4+5)+(1+2+3+4+5+6)+(1+2+3+4+5+6+7)+(1+2+3+4+5+6+7+8)+(1+2+3+4+5+6+7+8+9)+(1+2+3+4+5+6+7+8+9+10)=220 -''' -hap= 0 -for i in range(1,11): - print("(",end="") - for j in range(1,i+1): - print(j,end = "") - if(j!=i) :#이거 이해가 안감 왜 !=지? - print("+",end="") - hap += j - print((")=" if i == 10 else ")+"),end="") #줄 위치에 따라 다르게 나옴 -print(hap) - -#명신김님꺼 보고 따라함 ㅠ -''' -3. 화면에서 자연수를 입력받아 각각의 자리수의 합을 구하기. -[결과] -자연수를 입력하세요 : 12345 -자리수 합 : 15 -''' -print('자연수를 입력하세요') -num = int(input()) -sum=0 -tmp = num - -while (tmp>0) : #()<을 빼먹음 - sum += tmp%10 - tmp //= 10 -print('자리수 합:',sum) - -''' -4. aa,bb 리스트를 생성하고, -aa 리스트는 0부터 짝수 100개를 저장하고 -bb 리스트는 aa 배열의 역순으로 값을 저장하기. -aa[0] ~ aa[9], bb[99]~bb[90] 값을 출력하기 -[결과] -aa[ 0]= 0,aa[ 1]= 2,aa[ 2]= 4,aa[ 3]= 6,aa[ 4]= 8,aa[ 5]=10,aa[ 6]=12,aa[ 7]=14,aa[ 8]=16,aa[ 9]=18, -bb[99]= 0,bb[98]= 2,bb[97]= 4,bb[96]= 6,bb[95]= 8,bb[94]=10,bb[93]=12,bb[92]=14,bb[91]=16,bb[90]=18, -''' -aa=[x*2 for x in range(0,100)] -print(aa) -bb=[x*2 for x in range(0,100)] -bb.reverse() -print(bb) -len(aa) -len(bb) -for i in range(0,11): - print("aa[",i,"]=",aa[i],",") -for i in range(0,11): - print("bb[",100-i,"]=",bb[i],",") #가로 출력을 어떻게 해야할지 모르겠음... -''' -5. 다음 모레시계모양을 출력하기 -[결과] -모래시계의 높이를 홀수로 입력하세요 : 5 -***** 0 / 5 / 0 h=1 공백(0)= h-1 - *** 1 / 3 / 1 h=2 공백(1)= h-1 - * 2 / 1 / 2 h=3 공백(2)= h-1 - *** 1 / 3 / 1 h=4 공백(1)= h-3 -***** 0 / 5 / 0 h=5 공백(0)= h-5 -''' -print('모래시계의 높이를 홀수로 입력하세요 : ') -h = int(input()) -for i in range(h) : - if h // 2> i : - print(" "*i, end="") - print("*"*(h-1*i-1)) - else: - print(" "*(h - i -1),end="") - print("*"*((2*i)-h//2-1)) -#자세히 안보면 티 안남 일단 성공 ㅎ - -''' - 6. 나라와 수도를 등록하고 화면에 나라이름을 입력받아 해당 나라의 수도를 출력하기 - 등록된 나라가 아닌 경우 수도를 입력받아 등록하기. - 나라 입력시 "종료" 입력되면 프로그램 종료. - 종료시 등록된 모든 나라와 수도정보를 화면 출력하기. -''' -country = {} -while True : - indata = input(str(list(country.keys()))+ " 나라명 검색:") - if indata in country : - print("<%s> 나라의 수도는 <%s>입니다." %(indata,country.get(indata))) - elif indata == "종료" : - break - else : - print("등록된 나라가 아닙니다.") - yn = input("수도를 등록하시겠습니까?(y/n)") - if yn == 'y' : - f = input("수도이름을 입력하세요 :") - country[indata]= f - -print("등록된 나라:") -for i in country.keys() : - print("%s => %s" % (i,country[i])) - -#하나도 모르겠어서 선생님꺼 따라 씀.... - -""" -7. 화면에서 숫자를 입력받아 야구 게임하기 - 시스템이 서로다른 임의의 숫자 4개를 저장 - 화면에서 숫자4자리를 입력받아 스트라익, 볼을 출력 - 정답 입력시 종료. -""" - -print("숫자야구 게임에 오신 여러분 환영합니다.") - -import random #파이썬 랜덤 모듈 -correct_number = ["0", "0", "0", "0"] #파이썬에서 input() 함수의 사용자 입력은 문자열이므로 "0" 문자열로 배열 -correct_number[0] = str(random.randrange(1, 10, 1)) -correct_number[1] = correct_number[0] -correct_number[2] = correct_number[0] -correct_number[3] = correct_number[0] - -# 랜덤 숫자가 같다면 계속 반복 -while(correct_number[0] == correct_number[1]): - correct_number[1] = str(random.randrange(1, 10, 1)) -while(correct_number[0] == correct_number[2] or correct_number[1] == correct_number[2]): - correct_number[2] = str(random.randrange(1, 10, 1)) -while(correct_number[0] == correct_number[3] or correct_number[1] == correct_number[3] or correct_number[2] == correct_number[3]): - correct_number[3] = str(random.randrange(1, 10, 1)) - -print(correct_number) - -try_number = 0 -strike_number = 0 -ball_number = 0 - -print("숫자야구를 시작합니다.") -print("--------------------------") -while (strike_number < 4): - - number = str(input("숫자 4자리를 입력하세요: ")) - - strike_number = 0 - ball_number = 0 - - for i in range(0, 4): # i 값의 범위 0~3 - for j in range(0, 4): - if(number[i] == str(correct_number[j]) and i == j): - strike_number += 1 - elif(number[i] == str(correct_number[j]) and i != j): - ball_number += 1 - print("결과: [",strike_number,"]스트라이크 [",ball_number,"]볼") - try_number += 1 - -print("--------------------------") -print("축하합니다! 정답입니다!") -print("[",try_number,"]번 만에 맞췄습니다") diff --git "a/20221218/\354\213\240\353\217\231\355\230\204/20221218.py" "b/20221218/\354\213\240\353\217\231\355\230\204/20221218.py" deleted file mode 100644 index 91ac3b6..0000000 --- "a/20221218/\354\213\240\353\217\231\355\230\204/20221218.py" +++ /dev/null @@ -1,420 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Sun Dec 18 10:43:08 2022 - -@author: super -""" - -''' - Collection : 데이터의 모임. - 리스트(list) : 배열. 순서유지. 첨자(인덱스)사용 가능. [] - 튜플(tuple) : 상수화된 리스트. 변경불가 리스트. () - 딕셔너리(dictionary) : (key,value)쌍 인 객체 {} - items() : (key,value)쌍 인 객체를 리스트 형태로 리턴 - keys() : key들만 리스트형태로 리턴 - values() : value들만 리스트형태로 리턴 - 셋(set) : 중복불가. 순서모름. 첨자(인덱스)사용 불가. 집합표현 객체. {} - &, intersection() : 교집합 - |, union() : 합집합. - - 컴프리헨션(comprehension) : 패턴(규칙)이 있는 데이터를 생성하는 방법 -''' - -########################### -# 함수와 람다 -# 함수:def 예약어 사용 -########################### -def func1() : - print("func1() 함수 호출됨:") - return 10 #함수 종료 후 값을 리턴 - -def func2(num) : - print("func2() 함수 호출됨:",num) - #리턴값이 없는 함수 - -a=func1() -print(a) -b=func2(100) -print(b) -func2('abc') - -#전역변수 : 모든 함수에서 접근이 가능한 변수 -#지역변수 : 함수 내부에서만 접근이 가능한 변수 - -def func3() : - c=300 #지역변수 - print("func3() 함수 호출:",a,b,c) -def func4() : - a=110 #지역변수 - b=220 #지역변수 - print("func4() 함수 호출:",a,b) -#함수 내부에서 전역 변수값 수정하기 -def func5() : - global a,b #a,b 변수는 전역변수를 사용함 - a=110 - b=220 - print("func5() 함수 호출:",a,b) - -a=100 -b=200 - -func3() -#print("main:",a,b,c) #c 변수는 func3() 함수에서만 사용가능 -print("main:",a,b) -func4() -print("main:",a,b) -func5() -print("main:",a,b) - -#매개변수 -def add1(v1,v2): - return v1+v2 -def sub1(v1,v2): - return v1-v2 - -hap = add1(10,20) -sub=sub1(10,20) -print(hap) -print(sub) - -hap = add1(10.5,20.1) -sub=sub1(10.5,20.1) -print(hap) -print(sub) - -hap = add1("python","3.9") -print(hap) - -#hap = add1("python","3.9","7") #add1 함수의 매개변수 갯수 틀림 - - -#가변 매개 변수 : 매개변수의 갯수를 정하지 않음 경우 -def multiparam(* p) : - result = 0 - for i in p : - result += i - return result - -print(multiparam()) -print(multiparam(10)) -print(multiparam(10,20)) -print(multiparam(10,20,30)) -print(multiparam(1.5,2.5,3)) -print(multiparam("1.5","2.5","3")) #매개변수 가능. 실행 오류 - -#매개변수에 기본값 설정 -def hap1(num1=0,num2=1) : #매개변수가 없는 경우 0,1 기본값 설정됨 - return num1+num2 - -print(hap1()) #num1=0,num2=1 기본값 설정 -print(hap1(10)) #num1=10,num2=1 기본값 설정 -print(hap1(10,20)) #num1=10,num2=20 -print(hap1(0,20)) #num1=0,num2=20 -print(hap1(10,20,30)) #오류 - -#리턴값 두개인 경우 : 리스트로 리턴 -def multiReturn(v1,v2) : - list1=[] - list1.append(v1+v2) - list1.append(v1-v2) - return list1 - -list1=multiReturn(200,100) -print(list1) - -# 람다식을 이용한 함수 -hap2=lambda num1,num2:num1+num2 -print(hap2(10)) #오류 -print(hap2(10,20)) #30 -print(hap2(10.5,20.5)) #31.0 -#기본값 매개변수 -hap3=lambda num1=0,num2=1:num1+num2 -print(hap3(10)) #11 -print(hap3(10,20)) #30 -print(hap3(10.5,20.5)) #31.0 - -#문제:리스트의 평균을 구해주는 함수 getMean 구현하기 -def getMean(l) : - return sum(l)/len(l) if len(l)>0 else 0 - -list1 = [1,2,3,4,5,6] -print(getMean(list1)) -print(getMean([])) - -getMean2 = lambda l : sum(l)/len(l) if len(l)>0 else 0 -print(getMean2(list1)) -print(getMean2([])) - -mylist1=[1,2,3,4,5] - -#mylist1 보다 각각의 요소가 10이 더많은 요소를 가진 mylist2 생성 -mylist2=[] #11,12,13,14,15 -#1 반복문 -for n in mylist1 : - mylist2.append(n+10) -print(mylist2) - -#2 컴프리헨션 -mylist2=[n+10 for n in mylist1] -print(mylist2) - -#3 map 방식 -#map(함수,리스트) : 리스트의 각 요소에 함수 적용 -def add10(n) : - return n+10 - -mylist2 = list(map(add10,mylist1)) -print(mylist2) - -#4 map 람다방식 -mylist2 = list(map(lambda n:n+10,mylist1)) -print(mylist2) - -###### 예외 처리:예측가능한 오류 발생시 정상처리 -# try except 문장 - -idx = "파이썬".index("일") #오류 발생 -idx = "파이썬".find("일") #-1 -idx - -#예외처리하기 -try : - idx = "파이썬".index("이") #예외발생 - print(idx) -except : - print("파이썬글자에는 '일'자가 없습니다.") - -#mystr 문자열에 파이썬 문자의 위치를 strpos 리스트에 저장하기 -mystr = "파이썬 공부 중입니다. 파이썬을 열심히 공부합시다" -#1 -strpos = [] -index=0 -while True : - index = mystr.find("파이썬",index) #index 이후부터 검색 - if index < 0: #없다 - break - strpos.append(index) #0,13 - index += 1 #14 -print(strpos) -#2 index 함수 사용. 예외처리 -strpos = [] -index=0 -while True : - try : - index = mystr.index("파이썬",index) - strpos.append(index) #0,13 - index += 1 #14 - except : #오류 발생시 호출되는 영역 - break -print(strpos) - -#다중예외처리 : 하나의 try 구문에 여러개의 except 구문이 존재 -# 예외별로 다른 처리 가능 -num1 = input("숫자형 데이터1 입력:") -num2 = input("숫자형 데이터2 입력:") -try : - n1 = int(num1) - n2 = int(num2) - print(n1+n2) - print(n1/n2) -except ValueError as e: - print("숫자로 변환 불가") - print(e) -except ZeroDivisionError as e : - print("두번째 숫자는 0안됨") - print(e) -finally : #정상,예외 모두 실행되는 구문 - print("프로그램 종료") - -# 다중 예외를 하나로 묶기 -num1 = input("숫자형 데이터1 입력:") -num2 = input("숫자형 데이터2 입력:") -try : - print(a[0]) #TypeError 발생 a의 자료형 정수형 - n1 = int(num1) - n2 = int(num2) - print(n1+n2) - print(n1/n2) -except (ValueError,ZeroDivisionError) as e: - print("입력 오류") - print(e) -finally : #정상,예외 모두 실행되는 구문 - print("프로그램 종료") - -#나이를 입력받아 19세미만이면 미성년, 19세이상이면 성인 출력하기 -#입력된 데이터가 숫자가 아니면 숫자만 입력하세요 메세지 출력하기 -try : #try 블럭에서 오류 발생시 except블럭으로 이동 - age = int(input("나이를 입력하세요:")) - if age < 19 : - print(age,":미성년") - elif age >= 19 : - print(age,":성인") -except : - print("숫자만 입력하세요") - -#else 블럭 : 오류 발생이 안된경우 실행되는 블럭 -try : #try 블럭에서 오류 발생시 except블럭으로 이동 - age = int(input("나이를 입력하세요:")) -except : - print("숫자만 입력하세요") -else : #정상적인 경우 실행 블럭 - if age < 19 : - print(age,":미성년") - elif age >= 19 : - print(age,":성인") - -# raise : 예외 강제 발생 - -try : - print(1) - raise ValueError - print(2) -except ValueError : - print("ValueError 강제 발생") - -#pass 예약어 : 블럭 내부에 실행될 문장이 없는 경우 -n=9 -if n>10 : - pass -else : - print("n의 값은 10 이하입니다.") - -try : - age = int(input("나이를 입력하세요")) - if age < 19: - print("미성년") - else : - print("성년") -except ValueError : - pass #오류 발생시 무시. - -def dumy() : - pass - -################ -# 클래스 : 사용자 정의 자료형 -# 구조체+함수=> 변수+함수의 모임. -# 상속 : 다중 상속 가능. 여러개의 부모클래스가 존재. -# self : 자기참조변수. 인스턴스 함수의 매개변수로 설정해야함. -# 생성자 : def __init__(self) -################ -class Car : #기본생성자 제공 클래스 : 생성자를 구현하지 않음 - color="" - speed=0 - def upSpeed(self,value): - self.speed += value - def downSpeed(self,value): - self.speed -= value - -car1 = Car() #객체화 -car1.color = "빨강" -car1.speed = 10 - -car2 = Car() #객체화 -car2.color = "파랑" -car2.speed = 20 -car2.upSpeed(30) -print("자동차1의 색상:%s, 현재 속도:%dkm" % (car1.color,car1.speed)) -print("자동차2의 색상:%s, 현재 속도:%dkm" % (car2.color,car2.speed)) - -### 생성자 구현하기 -class Car : - color="" - speed=0 - def __init__(self,v1,v2=0) : #생성자 - self.color = v1 - self.speed = v2 - - def upSpeed(self,value): - self.speed += value - def downSpeed(self,value): - self.speed -= value - -car1 = Car("빨강",10) #객체화. 생성자 호출 -car2 = Car("파랑",20) - -car3 = Car("노랑") - -car2.upSpeed(30) -print("자동차1의 색상:%s, 현재 속도:%dkm" % (car1.color,car1.speed))#빨강,10 -print("자동차2의 색상:%s, 현재 속도:%dkm" % (car2.color,car2.speed))#파랑,50 -print("자동차3의 색상:%s, 현재 속도:%dkm" % (car3.color,car3.speed))#노랑,0 - -#멤버변수 : 클래스 내부에 설정 -# 인스턴스변수 : 객체별로 할당된 변수. self.변수명 -# 클래스변수 : 객체에 공통변수 클래스명.변수명 - -class Car : - color="" #색상 - speed=0 #속도 - num=0 #자동차번호 - count=0 #자동차객체 갯수 - def __init__(self,v1="",v2=0) : #생성자 - self.color=v1 #인스턴스변수 - self.speed=v2 #인스턴스변수 - Car.count += 1 #클래스변수. - self.num = Car.count #인스턴스변수 - def printMessage(self) : - print("색상:%s,속도:%dkm,번호:%d, 생산번호:%d" % \ - (self.color,self.speed,self.num,Car.count )) - -car1=Car("빨강",10) -car1.printMessage() #색상:빨강,속도:10km,번호:1, 생산번호:1 -car2=Car("파랑") -car1.printMessage() #색상:빨강,속도:10km,번호:1, 생산번호:2 -car2.printMessage() #색상:파랑,속도:0km,번호:2, 생산번호:2 - -# 문제 : Card 클래스 구현하기 -# 멤버변수 : kind(카드종류), number(카드숫자), -# no(카드번호), count(현재까지 생성된 카드 갯수) -# 멤버함수 : printCard() kind:heart, number:1,no:1,count:1 -class Card : - kind="" - number=0 - no=0 - count=0 - def __init__(self, v1="Spade",v2=1) : - self.kind = v1 - self.number = v2 - Card.count += 1 - self.no = Card.count - def printCard(self) : - print("kind:%s,number:%d,no:%d,count:%d" % \ - (self.kind,self.number,self.no,Card.count)) - -card1 = Card() -card1.printCard() #kind:Spade,number:1,no:1,count:1 -card2 = Card("Heart") -card2.printCard() #kind:Heart,number:1,no:2,count:2 -card3 = Card("Spade",10) -card1.printCard() #kind:Spade,number:1,no:1,count:3 -card2.printCard() #kind:Heart,number:1,no:2,count:3 -card3.printCard() #kind:Spade,number:10,no:3,count:3 - -#상속 : 기존의 클래스를 이용하여 새로운 클래스 생성 -# 다중상속이 가능 -# class 클래스명 (부모클래스1,부모클래스2,...) -class Car : - speed = 0 - door =3 - def upSpeed(self,v) : - self.speed += v - print("현재 속도(부모클래스):%d" % self.speed) - -# class Sedan extends Car {} -class Sedan(Car) : #Car클래스를 상속. - pass # 부모클래스와 동일. - -class Truck(Car) : # Car 클래스 상속 - def upSpeed(self,v) : #오버라이딩. - self.speed += v - if self.speed > 150 : - self.speed = 150 - print("현재 속도(자손클래스):%d" % self.speed) - -car1 = Car() -car1.upSpeed(200) -sedan1 = Sedan() -sedan1.upSpeed(200) -truck1 = Truck() -truck1.upSpeed(200) diff --git "a/20221218/\354\213\240\353\217\231\355\230\204/20221218shintest.py" "b/20221218/\354\213\240\353\217\231\355\230\204/20221218shintest.py" deleted file mode 100644 index 171f9b0..0000000 --- "a/20221218/\354\213\240\353\217\231\355\230\204/20221218shintest.py" +++ /dev/null @@ -1,164 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Sun Dec 18 13:55:35 2022 - -@author: super -""" - -''' -1. 피보나치 수열 출력하기 - 피보나치 수열은 0,1로 시작하고 - 앞의 두수를 더하여 새로운 수를 만들어 주는 수열을 의미한다. - 피보나치 수열의 갯수를 입력받아 피보나치 수열을 갯수만큼 저장한 - 리스트를 생성하는 함수 fibo 함수를 작성하기 - - 0 1 1 2 3 5 8 13 21 34 55 89 .... -[결과] -피보나치 수열의 요소 갯수를 입력하세요(3이상의 값) :10 -fibo( 10 )=[0, 1, 1, 2, 3, 5, 8, 13, 21, 34] -''' -def fibo(n) : - fibolist=[0,1] - num1=0 - num2=1 - num3= num1+num2 - fibolist.append(num3) - for i in range(4,n+1): - num1=num2 - num2=num3 - num3=num1+num2 - fibolist.append(num3) - return fibolist - -num = int(input("피보나치 수열의 요소 갯수를 입력하세요(3이상의 값) :")) -print("fibo(",num,")=",end="") -print(fibo(num)) -''' -def func(n) : - if n==0: - result = 1 - elif n==1: - result = 1 - else: - result = func(n-1) + func(n-2) - return result - -n = int(input("피보나치 수열의 요소 갯수를 입력하세요(3이상의 값) :")) -print("fibo(",n,")=",end="") -print(func(n)) <<리스트로 출력 형식을 못찾음 ㅠ -''' - -''' -2. 주어진 자연수 N에 대해 N이 짝수이면 N!을, - 홀수이면 ΣN을 구하는 코드를 작성하기 - 4 : 4! = 4*3*2*1 = 24 - 5 : Σ5 = 5+4+3+2+1 = 15 -''' -def calculator(n): - if n % 2 == 0:#입력 된 수가 짝수일 경우 - print("%d!" %n,end=" = ") - result = 1 #얘네는 뭐야 - for i in range(n,0,-1): #얘도 짜증나 ㅡㅡ - print("%d*" % i if i>1 else "%d = "%i,end="")#더싫어 ㅠ - result *= i#죽여 - else:#입력된 수가 짝수가 아닌경우 - print("Σ%d" % n,end=" = ") - result = 0 - for i in range(n,0,-1): - print("%d+" % i if i>1 else "%d = "%i, end="") - result += i - return result #계산된 숫자 출력 -num = int(input("숫자를 입력하세요.")) -print(calculator(num)) - -''' -3. 입력된 자연수가 홀수인지 짝수인지 판별해 주는 함수를 - 람다식을 이용하여 작성하기. -[결과] -자연수를 입력하세요 : 20 -20 숫자는 짝수 입니다. -자연수를 입력하세요 : 25 -25 숫자는 홀수 입니다. -''' -num = int(input("자연수를 입력하세요 :")) -if num%2 == 0: - print(num,"은 짝수입니다.") -else: - print(num,"은 홀수입니다.") -print(num) -#이것은 다람쥐식 -b1 = lambda x: x%2==1 -b2 = int(input("자연수를 입력하세요 :")) - -if b1(b2) == True: - print(b2,'홀수 입니다.') -else: - print(b2,'짝수입니다.') -#이것은 람다식 -''' -4. 화면에서 주민등록번호를 000000-0000000 형태로 입력받는다. - 주민등록번호 뒷자리의 첫 번째 숫자는 성별을 나타낸다. - 주민등록번호에서 성별을 나타내는 숫자를 조회하여 - 성별을 나타내는 숫자가 1,3 이면 남자로 2,4면 여자로 출력한다. - 그외는 내국인아님으로 출력한다. - -이 없는 경우는 '주민번호 입력오류' 출력하기 -''' -jumin = input("000000-0000000 형태로 입력하시오.") -try : - index = jumin.index("-") - if(index != 6) : - raise ValueError - gender = jumin[index+1:index+2] - if(gender== '1' or gender == '3') : - print("남자") - elif (gender== '2' or gender == '4') : - print("여자") - else : - print("내국인 아님") -except : - print("주민번호 입력 오류") - - -''' -5. 소문자와 숫자로 이루어진 문자를 암호화 하고 복호화 하는 프로그램 작성하기 - 원래 문자 : a b c d e f g h i j k l m n o p q r s t u v w x y z - 암호 문자 : ` ~ ! @ # $ % ^ & * ( ) - _ + = | [ ] { } ; : , . / - 원래 숫자 : 0 1 2 3 4 5 6 7 8 9 - 암호 숫자 : q w e r t y u i o p -[결과] -문자를 입력하세요 : abc123 -암호화 -`~!wer -복호화 -abc123 -''' -plain = "abcdefghijklmnopqrstuvwxyz0123456789" -cyper = "`~!@#$%^&*()-_+=|[]{};:,./qwertyuiop" - -src = input("문자를 입력하세요 : ") -result = "" -for i in range(0, len(src)): - result += cyper[plain.find(src[i])] -print("암호화") -print(src,"=",result) - -src = result -result = "" -for i in range(0, len(src)): - result += plain[cyper.find(src[i])] - -print("복호화") -print(src,"=",result) - -''' -6. 16진수를 입력하면 16진수 인지 아닌지 판단하여 - 16진수가 맞으면 10진수로 변경하기. - 16진수가 아닌 경우 16진수 아님을 출력하기 -''' -num16=input("16진수 입력 : ") -try : - num10= int(num16,16) #16진수가 아니면 예외 발생 -except ValueError : - print(num16,"는 16진수가 아닙니다.") -else : - print(num16,"의 10진수:",num10) diff --git a/20221219/20221219sdhtest.py b/20221219/20221219sdhtest.py index dd5b85e..3439cfb 100644 --- a/20221219/20221219sdhtest.py +++ b/20221219/20221219sdhtest.py @@ -15,7 +15,26 @@ (10,10), 넓이:100,둘레:40 200 면적이 더 큰 사각형 입니다. ''' - +class Rect : + w=0 + h=0 + def __init__(self,w,h): + self.w = w + self.h = h + def __repr__(self): + return "(%d,%d), 넓이:%d,둘레:%d" % \ + (self.w,self.h,self.area(),self.length()) + def __lt__(self, o) : + return self.area() > o.area() + def __gt__(self, o): + return self.area() < o.area() + def __eq__(self, o): + return self.area() == o.area() + def area(self): + return self.w*self.h + def length(self): + return (self.w+self.h)*2 + #결과가 왜 다르게 나오지? if __name__ == "__main__" : rect1 = Rect(10,20) @@ -39,24 +58,38 @@ UpgradeCalculator 클래스 minus 멤버함수 => 현재 value의 값에 매개변수로 받는 값을 빼기 ''' +class Calculator: + value=0 + def add(self, val): + self.value += val + +class UpgradeCalculator(Calculator) : + def minus(self, val): + self.value -= val -cal = UpgradeCalculator() +cal = UpgradeCalculator() #객체화 cal.add(10) cal.minus(7) print(cal.value) # 10에서 7을 뺀 3을 출력 - ''' 3. 2번에서 구현한 Calculator 클래스를 이용하여 MaxLimitCalculator 클래스 구현하기 MaxLimitCalculator 클래스에서 value 값은 절대 100 이상의 값을 가질수 없다. ''' - +class MaxLimitCalculator(Calculator): + def add(self,val): + self.value += val + if self.value >100 : + self.value = 100 + cal = MaxLimitCalculator() cal.add(50) # 50 더하기 +print(cal.value) # 50 출력 cal.add(60) # 60 더하기 print(cal.value) # 100 출력 +#ez ''' @@ -73,10 +106,40 @@ 'O':'---', 'P':'.--.', 'Q':'--.-', 'R':'.-.', 'S':'...', 'T':'-', 'U':'..-', 'V':'...-', 'W':'.--', 'X':'-..-', 'Y':'-.--', 'Z':'--..'} +s = input('알파벳 입력:') +words = s.split(' ') +for i in words: + chars = i.split() + for j in chars: + print(code[j], end= '') + print('', end=' ') + +print() + +''' 실행 후 밑에 에러 발생 ㅠ +Traceback (most recent call last): + + File "C:\Users\super\AppData\Local\Temp/ipykernel_21488/2607200147.py", line 11, in + print(dic[j], end= '') + +KeyError: 'avx' +''' ''' 5. 학생들의 시험 성적가 다음과 같은 경우 성적의 합계와 평균을 출력하는 코드를 작성하시오 [결과] 총합: 355 ,평균: 71.0 ''' -data= 'hong:90,lee:80,kim:75,park:50,song:60' \ No newline at end of file + +data= 'hong:90,lee:80,kim:75,park:50,song:60' +average = sum(data.value()) / len(data) +print(average) + +''' 난 잘 못 없고 노트북이 문제인듯 +Traceback (most recent call last): + + File "C:\Users\super\AppData\Local\Temp/ipykernel_21488/516992938.py", line 2, in + average = sum(data.value()) / len(data) + +AttributeError: 'str' object has no attribute 'value' +''' \ No newline at end of file