2.변수
#######프린트 구문 약간의 디테일을 첨가한
# 프린트 서식
print("안녕하세요")
print("100"+"200") #문자열 더하기 문자열은 이어쓰기
print(100+200)#정수+정수 = 300
#c언어 형식이랑 유사한
#print 문구를 풍성하게 만들어 줌
print("%d"%100)
# " %d " // 문자열 안에다가 정수를 넣을 때 사용
print("송명건의 출근시간은 %d 시간 입니다" % 2)#문자열 형식에 나중에 원하는 형식의 데이터를 넣음
print("송명건의 출근시간은",2,"시간 입니다")
#문자열 속에 숫자(정수)를 넣는다
print("송명건의 출근시간은 %d시간 입니다. 일주일엔 %d시간 입니다."%(2,10))#두개 이상의 데이터를 넣을떄는 %(, , , , )식으로 넣는다
#여기서 d는 디시멀?(십진수)의 약어
print("%d"%123)#10진수
print("%x"%123)#16진수
print("%o"%123)#8진수
# %정수 => 해당 진수로 프린트(표현) => 진수 변환
#입력데이터 변화 x = > 출력물만 위 형식에 맞게 변환된다.-> 밑에처럼 쓰고 a출력하면 456 그대로 출력
a= 456
print("%d"%a)#10진수
print("%x"%a)#16진수
print("%o"%a)#8진수
print(a)
#quiz 10진수 입력받아 #16진수 ,8진수 출력 //풍성하게
'''
a=int(input("값을 입력"))
print("입력 받은 값은 %d입니다"%a)
print("입력 받은 값은 %x입니다"%a)
print("입력 받은 값은 %o입니다"%a)
'''
#정수
##자리 확보
print("%5d"%123) #<< 출력해보면 띄워져 있음
# 5자리 미리 확보 , 입력 받은 숫자는 오른쪽 정렬
print("%05d"%123)
# 5자리 미리 확보 , 빈칸은 0으로 채워짐, 입력 받은 숫자는 오른쪽 정렬
#실수
print("%f"%123.45)
print("7%.1f"%123.45)# 7자리 확보하고 소수점 밑 1자리 까지만 표현
print("07%.1f"%123.45)# 7자리 확보하고 소수점 밑 1자리 까지만 표현, 빈칸은 0으로 채움
#자리수 지정시 뒤에 소수점이 더있으면 반올림해서 짤림
print("07%.3f"%123.45) #소수점 밑이 0처리
#문자열
print("%s"%"python")
a= "뿅뿅"
print("동해물과 %s 백두산이 "%a)
print("동해물과 %10s 백두산이 "%a)
##문자
print("%c"%"B")
print("%c"%"벤")
print("%c"%"民")
#데이터 형 변환 format()
print("%d %5d %05d"%(123,123,123))
print("{0:d} {1:5d} {2:05d}".format(123,123,123)) #위에랑 같은출력
###이스케이프 문자(기능을 가진 문자)
print("가나다라마바사아자차카타파하")
print("가나다라마바사")
print("아자차카타파하")
#print()를 두번씀 -> 연산 2번하게되고 -> cpu 사용량 2배
print("가나다라마마마마마마마마마\n마돈돈나")#줄 바꿈(엔터)와 같은 효과
#print()를 한번씀 -> 연산 1번->cpu 사용량 1배 -> 출력물 같음 -> 효율적
print("가나다라마마마마마마마마마\t마돈돈나")#탭한것과 같은 효과
print("\\")#문자를 쓸때 \를 쓸 수도 있기 때문에 그럴때 그냥 쓰는 경우 하나만 쓰면 이스케이프 문자로 오해할 수 있으니 두개로 하는거
print("\\ \\ \\ ")#\ 세개 출력
# print("송명건은 "화성" 사람입니다.") 이렇게 하면 오류남
print("송명건은 \"화성\"사람 입니다" ) # \하나 출력과 비슷한 느낌
print('송명건은 \'화성\'사람 입니다' ) # \하나 출력과 비슷한 느낌
print("역슬래쉬는 '이스케이프' 문자 쓰기 싫어요") #쌍 따옴표로 문자열을 묶었을 경우에는 작은 따옴표로 역슬래쉬 없이 묶어서 표현가능
print('역슬래쉬는 "이스케이프" 문자 쓰기 싫어요')#작은 따옴표로 문자열을 묶었을 경우에는 쌍 따옴표로 역슬래쉬 없이 묶어서 표현가능
#교차 사용? 가능
#quiz print 구문안에 %10d , %s ,%c 이스케이프 문자
#한번에 담아봐라
print("%10d 이거 %s%c"%(123,"맞나","?"))
print("%s=%10d %s=%s %s=%c"%("%d",123,"%s","이게맞나","%c","?"))
#변수 :값을 담아내는 그릇
#변수의 종류 (데이터 형식): 정수,실수,문자열,불(거짓, 참)
#변수 사용 할 때 주의 할 점
#1. 변수는 대소문자를 구분한다. ex) a 와 A 는 다른 변수이다
#2. 문자(한,영),숫자 ,언더바(_)를 포함 할 수 있다
#3. 변수명은 숫자로 시작할 수 없다.
#4. 예약어는 변수 이름으로 쓸수 없다 (True ,flase ,None,and,or...) 이미 프로그램에서 기능을 설정해둔 단어들
#python의 변수 특징
#변수 선언 없이 사용 가능
#한 번 선언된 변수의 데이터 형식을 바꿀 수 있다
#a= 10 => a=3.14 하면 a=3.14가됨
a= 100.123
print(type(a))
#데이터 형식 지정 없이 변수형 변환
사람 ="송명건은 사람입니다. "
print(사람)
#한글 변수명에 사용 가능
b=a
print(b)
#변수에 변수값을 넣을 수 있다.
#변수는 연산한 값을 넣을 수 있다.
c= 100+ 123456
print(c)
A=a+b+c +345
print(A)
#변수와 연산을 동시에 할 수 있다
var1=var2=var3=var4=100
print(var1)
print(var2)
print(var3)
print(var4)
#변수 여러개를 동시에 한번에 입력 할 수 있다.
#변수 자신에 값을 더해서 사용할 수 있다 (반복문 횟수 제어변수)
i=1
print(i)
i=i+2
print(i)
'''
10a = 10
print(10a)
a=10
10=a x
변수명 앞에 숫자 x 문법오류 // 순서가 변하면 안된다.
'''
#불 대수 (단어의 첫글자 대문자!!!!)
a=True
b=False
print(type(a))
print(type(b))
print(10<9)
print(10>2)
#quiz 정수 실수 문자열 불 /// 데이터 형식 마다 2개 씩 변수 만들기
#1. 각변수 데이터 형식 출력
#2. 같은 데이터 형식 연산 결과값 출력
#3. 다른 데이터 형식 연산 결과 값 출력
a=1
b=1.1
c="안녕"
d=True
print(type(a))
print(type(b))
print(type(c))
print(type(d))
print("\na ")
print(a+a)
print(a*a)
print(a/a)
print(a-a)
print("\nb ")
print(b+b)
print(b*b)
print(b/b)
print(b-b)
print("\nc ")
print(c+c)
#print(c *c)
#print(c/c)
#print(c-c)
print("\nd ")
print(d+d)
print(d*d)
print(d/d)
print(d-d)
print("\na+n ")
print(a+b)
print(a*c)
print(a/d)
print(a-a)
print("\nb+b ")
print(b+a)
print(b*b)
#print(b/c)
#print(b-d)
print("\nc+n ")
#print(c+a)
#print(c *b)
#print(c/c)
#print(c-d)
print("\nd+n")
print(d+a)
print(d*b)
#print(d/c)
print(d-d)
#진수 표현
#컴퓨터가 진수를 저장하는 방법
#0b binary :2진수
#0x hex : 16진수
#0o oct : 8진수
print(0b110100010110)
#0b를 숫자 앞에 쓰면 숫자를 2진수로 인식해줌
print(int("110100010110",2))
#int 정수형 표현, 옵션 값을 2로 주면 2진수로 인식
print(0xAC3)
print(int("AC3",16))
#16진수 => 10진수로 변환
#bin(2진수) , hex(16진수), oct(8진수) int(10진수)
print(bin(13))
print(bin(0x13))
print(bin(0o13))
#각 진수를 2진수로 표현
print(hex(13)) # 10진수 13을 16진수로 변환
print(hex(0x13)) # 16진수 0x13을 16진수로 변환
print(hex(0o13)) # 8진수 0o13을 16진수로 변환
print(oct(13)) # 10진수 13을 8진수로 변환
print(oct(0x13)) # 16진수 0x13을 8진수로 변환
print(oct(0o13)) # 8진수 0o13을 8진수로 변환
print(int(13)) # 10진수 13을 10진수로 변환
print(int(0x13)) # 16진수 0x13을 10진수로 변환
print(int(0o13)) # 8진수 0o13을 10진수로 변환
#1. 정수의 크기의 제한이 없다
a= 123
print(type(a))
#2. 실수
a=3.14
b=3.14e5 #정규형 표현 e=10 숫자(5)는 제곱수
print(a,b)
print(a+b,a-b,a*b,a/b)
#불대수 불린 불린함수
a=True
b=False
print(type(a))
print(type(b))
print(a,b)
a=(100==200)
b=(10<100)
print(a,b)
#참 , 거짓 표현할 때 사용
#i=i+1 ->for
#4. 문자열
#문자열 양쪽 끝에 "" ,''를 써야한다
print("정보보안 '모의해킹/침해대응' 전무가 취업캠프")
print("정보보안 '모의해킹/침해대응' 전무가 취업캠프")
a='"황상빈\n김민영"'
b="'황상빈\n김민영'"
c="""송명건은
화성사람 입니다 군포아님"""
print(a,b)
print(c)
3.연산자
#산술 연산자
# = 대입(등호아님), a =10 == a<=10
#+,-,*,/ 사칙연산
#//(몫) , %(나머지) , **(제곱)
a=5 ; b=3; c=2
# ; 한줄에 여러 명령어 쓸 때 사용
print(a+b,a-b,a*b,a/b)
print(a//b,a%b,a**b)
print(a+b+c, a*b/c)
s1,s2,s3 = "100","100.12","9999999"
#""큰따 문자열 숫자는 문자열로 취급당하고 있음
print(int(s1)+1,float(s2)+1,int(s3)+1)
print(s1,s2,s3)
#문자열 암호화 -> 문자 -> 숫자 -> 알고리즘연산 -> 문자열
##대입 연산자
# += i = i+1 => i +=1
# -= i = i-1 => i -=1
# *= i = i*1 => i *=1
# /= i = i/1 => i /=1
a=10
a+=5;print(a)
a-=5;print(a)
a*=5;print(a)
a/=5;print(a)
a//=5;print(a)
a%=5;print(a)
a**=5;print(a)
#quiz 동전 교환 프로그램
#money = int(input("동전으로 바꾸실 금액"))
#오백원 ?개
#백원 ?개
#오십원 ?
#십원 ?개
#못바꾼 돈 ? 개
'''
money = int(input("동전으로 바꾸실 금액"))
print("오백원 %d개"%int(money/500))
money%=500
print("백원 %d개"%int(money/100))
money%=100
print("오십원 %d개"%int(money/50))
money%=50
print("십원 %d개"%int(money/10))
money%=10
print("못바꾼돈%d원 "%int(money))
'''
#관계 연산자
#== (두 값이 같다)!=(두 값이 다르다)
# >,< <=,>=
#관계 연산자의 출력물은 True False (불 대수)
a=100; b=200
print(a==b,a!=b,a<b,a>b,a<=b,a>=b)
#논리 연산자
#and(둘다 만족) or(둘중 하나만 만족 ) not(결과 불대수의 반대)
a=99
print((a>100)and(a>100))
print((a>50)or(a>100))
print(not(a==100))
print(not(a==99))
4.조건문
#조건문 /선택문
#if로 명령어가 실행 될 조건을 적는다
#조건이 참일경우에 다음줄에 실행어를 입력한다
#들여쓰기!!! 조심하기!! 실행문은 들여쓰기로 인식한다
'''
if 알람시간<일어난 시간:=>조건문
print("택시타라")->실행문
else :
print("버스타라")
'''
a=120
if a< 100:
print("참값!! 100보다 작네요")
print("실행문 여러개 사용가능")
print("갯수 제한 없음")
else :
print("거짓값!! 100보다 큼")
print("조건문 끝")
#입력값 받아 홀수인지 짝수 인지 확인
a=int(input("숫자를 입력허시오:"))
if a%2==0 :
print("짞수입니다")
else :
print("홀수입니다.")
#quiz 숫자 입력 받아 -> 50 업&다운출력
a=int(input("숫자를 입력허시오:"))
if a>50 :
print("업")
else :
print("다운")
#학점 계산기 (조건이 여러개 일때)
학점=int(input("학점을 입력하시오"))
if 학점>=90 :
print("A입니다")
else :
if 학점>=80:
print("B입니다")
else:
if 학점 >= 70:
print("C입니다")
else:
if 학점 >= 60:
print("D입니다")
else :
print("F입니다.")
#elif
학점=int(input("학점을 입력하시오"))
if 학점>=90 :
print("A입니다")
elif 학점 >= 80 :
print("B")
elif 학점 >= 70 :
print("c")
elif 학점 >= 60:
print("d")
elif 학점 >= 50 :
print("f")
#quiz 숫자 3개 입력 받아서 가장 큰숫자 출력
a=int(input("첫번째"))
b=int(input("두번째"))
c=int(input("세번째"))
if a>b :
if a>c :
print("제일큰숫자는%d입니다"%a)
elif b>c :
if b>a :
print("제일 큰 숫자는 %d입니다"%b)
else :
print("제일 큰 숫자는 %d입니다" % c)
###############################
#사칙연산 계산기
#연산기도 입력받아 계산
num1,num2=0,0
op=""
num1 =int(input("첫번쨰"))
op=input("연산자를 입력하시오(+-*/)")
num2 =int(input("두번째"))
if op=="+":
print("%d + %d = %d 입니다."%(num1,num2,num1+num2))
elif op=="-":
print("%d - %d = %d 입니다."%(num1,num2,num1-num2))
elif op=="*":
print("%d * %d = %d 입니다."%(num1,num2,num1*num2))
elif op=="/":
print("%d / %d = %d 입니다." % (num1, num2, num1 / num2))
#반복문 for
#수십번 , 수백번 반복되는 작업을 간단하게 반복문으로 구현 for(횟수),while(조건)
'''
형식
for 변수(i) in range(시작값, 끝값+1(몇번 반복할지) ,증가값):
실행문 작성(들여쓰기!!
'''
#반복문 사용전
print("for문 구현 : 1번째")
print("for문 구현 : 2번째")
print("for문 구현 : 3번째")
print("for문 구현 : 4번째")
print("for문 구현 : 5번째")
print("for문 구현 : 6번째")
print("for문 구현 : 7번째")
#반복문
#0~9출력
for i in range(0,10,1):
print(i)
print("끝")
#1~10출력
for i in range(1,11,1):
print(i)
print("끝")
#1~10출력
for i in range(0,10,1):
print(i+1)
print("끝")
#5~0출력
for i in range(5,-1,-1):
print(i)
#값 연산에 활용
i=0
sum=0
for i in range(1,11,1):
sum=sum+i
print("1부터 10 까지의 합 %d"%sum)
#quiz 123부터 543까지의 합을 짝수만 더하기
i=0
sum=0
for i in range(124,544,2):
sum=sum+i
print("123부터 543 까지의 합 %d"%sum)
#quiz 시작값 ,끝값 입력받아서 합구하기 // 시작값이 더크면 탈락
num1=int(input("시작값"))
num2=int(input("끝값"))
sum=0
i=0
if num1>num2 :
print("탈락")
else :
for num1 in range(num1,num2+1,1):
sum=sum+num1
print("시작값+끝값=%d"%(sum))
#구구단 출력
i , dan = 0,0
dan = int(input("출력할 단은"))
for i in range(i,10,) :
print("%d*%d=%d"%(dan,i,dan*i))
#for문 안에 for문
#주사위 2개 던질 때 경우의 수
i,k = 0,0
for i in range(1,7) :
print("##################################")
print("첫번째 주사위 눈 : %d"%i)
for k in range(1,7) :
print("두번째 주사위 눈 ; %d"%k)
#구구단 전체 출력
#첫번째 숫자 2~9
#두번째 숫자 1~9
i,k=0,0
for i in range(2,10) :
print("#############%d단###########"%i)
for k in range(1,10):
print("%d*%d=%d"%(i,k,k*i))
#quiz 구구단 구단부터 반대로
i,k=0,0
for i in range(9,1,-1) :
print("#############%d단###########"%i)
for k in range(1,10) :
print("%d*%d=%d" % (i, k, k * i))
#quiz 다이아몬드 그리기
i=0
k=0
high = int(input("높이값을입력하시오"))
high = int((high) / 3);
for i in range(1,high) :
print(" "*(high-i),"*"*(2*i-1))
for k in range(high,0,-1) :
print(" " * (high - k), "*" * (2*k-1))
'파이썬' 카테고리의 다른 글
| 2024/12/10 설치 (0) | 2024.12.10 |
|---|