BACK END/Python

1일(10.04) 파이썬 Scanner, 제어문과 반복문

라미보 2022. 10. 4. 16:25

 

 

💻 01_Basic

💾 Ex02

#_*_coding:utf-8
'''
Created on 2022. 10. 4.

@author: admin
'''


#Scanner
print('입력하세요:',end='')
a = input() #문자열
print('a:' ,a)

b= input('입력하세요2:')
print('b:' ,b)

# 입력한 값으로 더하기 연산하기

print('더하기 입력하기')
print(a,'+',b,'=', a+b) #10 + 20 = 1020
print(a,'+',b,'=', int(a)+int(b)) #문자열을 int형으로 바꾸어 연산하여 결과가 나온다. 10 + 20 = 30

#print("%d + %d = %d" % (a,b,a+b)) #TypeError: %d format: a number is required, not str
print("%s + %s = %d" % (a,b,int(a)+int(b))) #10 + 20 = 30

c= int(a)+int(b)     
print('{} + {} = {} '.format(a,b,c))#a가 0 번째, b가 1번째 :10 + 20 = 30 
print('{1} + {0} = {2} '.format(a,b,c)) #b가 1번째, a가 0번째 :20 + 10 = 30

 

 

✔ Scanner
print('입력하세요:',end='')
a = input()  -문자열
print('a:' ,a)

b= input('입력하세요2:')
print('b:' ,b)

✔ 입력한 값으로 더하기 연산하기
print('더하기 입력하기')
print(a,'+',b,'=', a+b) #10 + 20 = 1020
print(a,'+',b,'=', int(a)+int(b)) #문자열을 int형으로 바꾸어 연산하여 결과가 나온다. 10 + 20 = 30

#print("%d + %d = %d" % (a,b,a+b))   TypeError: %d format: a number is required, not str

- 함수의 이름을 사용하는것은 좋지 않다!


print("%s + %s = %d" % (a,b,int(a)+int(b))) #10 + 20 = 30

c= int(a)+int(b)     
print('{} + {} = {} '.format(a,b,c))#a가 0 번째, b가 1번째 :10 + 20 = 30 
print('{1} + {0} = {2} '.format(a,b,c)) #b가 1번째, a가 0번째 :20 + 10 = 30 

 

 

 

 

 

 

 


 

 

 

💻 02_제어문과 반복문

💾 Ex01_if

#_*_coding:utf-8

'''
Created on 2022. 10. 4.

@author: admin
'''

su = input('숫자 입력:')
print('su:' , su) #문자열이므로 숫자로 변형후 출력한다.

#짝수, 홀수 자바코드로 입력해보기
'''
if(su%2=0)
System.out.print('짝수')
else(su%2=1)
System.out.print('홀수')


if
else if
else if
else

파이썬에서는 else if대신 elif를 사용한다.
if
elif
elif
else

'''

#TypeError: not all arguments converted during string formatting
#su 변수가 문자열이므로  int형으로 바뀌지 않으면 타입에러가 발생한다.
if int(su)%2 == 0 :
    print('짝수') #파이썬은 들여쓰기가 중요하다! 들여쓰기 안하면 에러발생
    print('---') #들여쓰기 하지 않으면 조건에 관계없이 무조건 출력된다.
else :
    print('홀수')
    print('***')
    
print('===============')


'''
jumsu = 점수입력
>=90 A학점
>=80 B학점
F학점
'''

jumsu = int(input('점수입력: ')) #입력받자마자 정수로 바꾸면 매번 변수의 자료형을 바꾸지 않아도 된다.
print("jumsu:" ,jumsu)

if jumsu >= 90 :
    print('A학점')
elif jumsu >= 80 :
    print('B학점')
elif jumsu >= 70 :
    print('C학점')
elif jumsu >= 60 :
    print('D학점')
else :
    print('F학점')
print('하하하ㅏ')

print('===============')

#jumsu 변수에 들어있는 값을 5의배수인지, 10의 배수인지 출력해본다.
if jumsu%5 ==0 :
    print('5의 배수 입니다.')
if jumsu%10 == 0: #elif를 사용하면 위의 조건이 참이면 조건이 중복되었을때, 아래로 아래 조건문으로 오지 않으므로  if를 사용해주는것이 좋겠다.
    print('10의 배수 입니다.')

 

 

✔ 자바에서의 if문

if(su%2=0)
System.out.print('짝수')
else(su%2=1)
System.out.print('홀수')

 

✔파이썬의 if문

if int(su)%2 == 0 :
    print('짝수')  : 파이썬은 들여쓰기가 중요하다! 들여쓰기 안하면 에러발생
    print('---')   : 들여쓰기 하지 않으면 조건에 관계없이 무조건 출력된다.
else :
    print('홀수')
    print('***')
    

 

 

#TypeError: not all arguments converted during string formatting

#su 변수가 문자열이므로  int형으로 바뀌지 않으면 타입에러가 발생한다

 

 

 

✔ 자바에서 if-else

if
else if
else if
else

✔ 파이썬에서는 else if대신 elif를 사용한다.
if
elif
elif
else

 

 

- 점수로 학점계산해보기

jumsu = int(input('점수입력: ')) #입력받자마자 정수로 바꾸면 매번 변수의 자료형을 바꾸지 않아도 된다.
print("jumsu:" ,jumsu)

if jumsu >= 90 :
    print('A학점')
elif jumsu >= 80 :
    print('B학점')
elif jumsu >= 70 :
    print('C학점')
elif jumsu >= 60 :
    print('D학점')
else :
    print('F학점')
print('하하하')

 

 

#jumsu 변수에 들어있는 값을 5의배수인지, 10의 배수인지 출력해본다.
if jumsu%5 ==0 :
    print('5의 배수 입니다.')
if jumsu%10 == 0:

- elif를 사용하면 위의 조건이 참이면 조건이 중복되었을때, 아래로 아래 조건문으로 오지 않으므로  if를 사용해주는것이 좋겠다.
    print('10의 배수 입니다.')

 

 

 

 

 

 

💾 Ex02_if

 

#_*_coding:utf-8

'''
Created on 2022. 10. 4.

@author: admin
'''

#str 은  #Assignment to reserved built-in symbol 함수 이름으로 노란색 경고가 뜬다, 함수는 변수명으로 사용하지 않는것이 좋다
word = input('문자열 입력:')
print('word: ',word)
print(word.upper())
print(word.lower())

# 대소문자 확실히 구분해서 입력해야 하지만, upper & lower 함수를 사용해서 대소문 상관없이 출력된다.
if word.upper() == 'apple'.upper(): #문자열 비교 '=='으로 한다.
    print('사과')
    
elif word.upper() == 'grape'.upper():
    print('포도')
else :
    print('그 밖의 과일')

 

str은  #Assignment to reserved built-in symbol 함수 이름으로 노란색 경고가 뜬다,

함수는 변수명으로 사용하지 않는것이 좋다

 

대소문자 확실히 구분해서 입력해야 하지만 upper() , lower() 함수를 사용해서 대소문 상관없이 출력된다.

 

 

💾 Ex03_for

#_*_coding:utf-8
'''
Created on 2022. 10. 4.

@author: admin
'''

'''
for(int i=1; i<=10; i++){
    syso(i);
    }


파이썬의 반복문
for 변수 in 반복할 데이터 :
    반목할 문장1
    반목할 문장2
'''

#range 반복할 데이터를 range안에 넣는다. 함수로 범위를 지정한다. 
#range(시작,끝,증가값): 시작 ~ 끝-1 까지 반복 range(1,10,1) : 1~10까지 1씩 증가한다
#range(시작,끝) : 시작~끝-1, 자동으로 1증가  
#range(끝): 0~끝-1 , 1씩 증가

total =0
for i in range(1,10,1) : 
    print(i)
    total += i
    
print('total: ',total) #들여쓰기하면 반복의 대상이 된다.

for i in range(1,5) : #증가값을 쓰지 않으면 자동으로 1씩 증가된다.
    print(i)
    
print('-----------------')

for i in range(5,1,-1) : #1씩 감소하면서 출력한다 5 4 3 2 까지만 출력된다. 
    print(i)
    
    
print('-----------------')

for i in range(10) : #range(0,10,1) , range(0,10) => 3개 모두 같은 결과를 출력한다.
    print(i) # 0~9까지만 출력된다
    
    
    
print('-----------------')
    

#1~10 사이의 수 짝수의 합, 홀수의 합을 출력해보기

even=0
odd=0
for i in range(1,11) : #1~10 
    if i%2==0 :
        even += i
    else :
        odd += i
print('짝수 합:',even)
print('홀수 합:',odd)

 

✔ 자바 반복문

for(int i=1; i<=10; i++){
    syso(i);
    }


✔파이썬의 반복문
for 변수 in 반복할 데이터 :
    반목할 문장1 -들여쓰기를 하면 반복의 대상이된다.
    반목할 문장2

 

 

- range 반복할 데이터를 range안에 넣는다. 함수로 범위를 지정한다. 
- range(시작,끝,증가값): 시작 ~ 끝-1 까지 반복 range(1,10,1) : 1~10까지 1씩 증가한다
- range(시작,끝) : 시작~끝-1, 자동으로 1증가  
- range(끝): 0~끝-1 , 1씩 증가

 

 

total =0
for i in range(1,10,1) : 
    print(i)
    total += i
    
print('total: ',total)  -들여쓰기하면 반복의 대상이 된다.

for i in range(1,5) : - 증가값을 쓰지 않으면 자동으로 1씩 증가된다.
    print(i)
    
print('-----------------')

for i in range(5,1,-1) : - 1씩 감소하면서 출력한다 5 4 3 2 까지만 출력된다. 
    print(i)


for i in range(10) : - range(0,10,1) , range(0,10)  →3개 모두 같은 결과를 출력한다.
    print(i)  - 0~9까지만 출력된다
 
    

#1~10 사이의 수 짝수의 합, 홀수의 합을 출력해보기
even=0
odd=0
for i in range(1,11) : #1~10 
    if i%2==0 :
        even += i
    else :
        odd += i
print('짝수 합:',even)
print('홀수 합:',odd)

 

 

 

 

 

 

 

 

 

💾Ex04_for

#_*_coding:utf-8
'''
Created on 2022. 10. 4.

@author: admin
'''

#이중for문
for i in range(1,6) : #천천히 반복돌고
    for j in range(7,9) : #빨리 반복돈다.
        print(i,j)
    print('--------')
print('============')


#구구단 출력해보기
for i in range(2,10) :
    print('***',i,'단','***')
    for j in range(1,10) :
        print(i,'*',j,'=',i*j)
    print('---------------')

#continue 와 break
for x in range(5) :
    if x == 2 :
        continue #continue 아래 문장을 실행하지 말아라 / break를 사용하면 x가 2를 만나게 되었을때 반복문을 완전히 빠져 나간다.
        print(x, 'if')
    else :
        print(x, 'else')

 

 

 

 

💾Ex05_while

#_*_coding:utf-8
'''
Created on 2022. 10. 4.

@author: admin
'''

i=1
while i<5 : #참이면 while문 안으로 들어와서 5보다 작을때까지만 반복한다.
    print(i)
    i+=1

#위와 같은것
i=1
while True : #첫글자는 꼭 대문자로 한다 True
    if i == 5 :
        break
    print(i)
    i += 1
    

#숫자입력
#음수 입력할 때까지
#입력한 숫자의 합계, 평균 출력

count = 0
total = 0
while True:
    su = int(input('숫자입력:')) # -3
    if su<0 :
        break
    total += su
    count += 1
    
print('total' ,total)
print('평균', total/count)