# 반복문
# 정해진 횟수만큼 특정코드를 반복 실행하도록 만든 문장
# 효율적인 반복실행 및 수정을 위하여 반복문을 사용함
# for 변수 in range(시작값, 종료값-1, 증감값 ) :
# 반복실행할 문장
for looper in [1, 2]:
print('hello world')
for looper in range (10):
print('hello world')
for i in 'abcdefg' :
print(i)
#ex) 1부터 100사이 정수 출력
for i in range(1, 101, 1) :
print(i, end=' ') # print 함수로 값 출력시 줄바꿈 사용하지 않고 공백 출력
print(list(range(1, 101)))
for i in range(100) :
print(i+1, end=' ')
#ex) 100부터 1사이 정수 출력
for i in range(100, 0,-1) :
print(i, end=' ')
# 문자열에 for 반복문 적용하기
for i in 'Hello,World' : # 문자열에서 문자를 하나씩 가져와서 출력
print(i,end=' ')
#ex) 1부터 100사이 정수 중 짝수만 출력
# 단, if문을 사용해서 처리
for i in range(1,101) :
if i % 2 == 0 :
print(i, end=' ' )
#ex) 1부터 100사이 정수의 모든 합을 출력
sum = 0
for i in range(1, 101) :
sum = sum + i
print(sum)
#ex) 가우스 덧셈공식 이용하여 1부터100까지 모든 합 출력
gaus = (101*100)/2
print ( gaus)
#문제3
sum2 =0
for i in range(1, 101) :
if i % 3 == 0 and i % 2 !=0 :
print(i, end=' ')
sum2 = sum2 + i # 들여쓰기 중요!
print(sum2)
prog = int(input('구구단 몇 단을 계산할까요? (1~9)'))
for i in range(1,10) :
print(f'구구단 {i}단을 계산합니다.', f'{prog:2d} x {i:2d} = ', i*prog )
else : print ("구구단이 종료됩니다.")
# while 반복문
# 회수와는 상관없이 조건에 따라 반복실행하는 반복문
# 반복실행할 문장
# 증감식
#ex) 1부터 100사이 정수 출력
i=1 # 변수초기화
while i <= 100 :
print (i, end=' ')
i = i + 1
#ex
i = 1
while i <= 100 :
if i % 2 != 0 :
print ( i , end=' ')
i= i+1
#ex
i=1
x = 0
while i <= 100 :
if i % 3 == 0 and i % 2 !=0 :
print(i, end =' ')
x = x + i
i = i + 1
print(x)
# 반복실행 중지 : break
# 반복 실행을 중지하고 반복문에서 나올때 사용
#ex 1~1000까지 사이의 모든 정수의 합을 출력하시오.
# 단, 누적합이 15000을 넘으면 반복문을 중지하고 결과를 출력
i=1
sum=0
while i <= 1000 :
if sum >15000 : break
sum=sum+i
i=i+1
print(i, sum)
# 반복실행시 특정코드 회피 : continue
# 반복실행을 유지하면서 특정 코드블럭의 실행을 생략할 때 사용
# ex 1~1000사이의 모든 정수의 합을 출력
# 단 7의 배수나 9의 배수는 누적합에서 제외
i=1
sum=0
while i <= 1000 :
i = i + 1 # 코드 순서
if i % 7 == 0 or i % 9 == 9 : continue
sum = sum + 1
print(i, sum)
# 무한루프
# 반복문의 조건식이 언제나 참이면
# 반복을 중단하지 않고 계속 반복을 지속하는 상황
# 단, 무한루프에서 탈출하려면 break 사용
# while true :
# 반복실행할 문장
# 난수 생성하기
# 파이썬에서 난수를 생성하려면 random 패키지 이용
# 생성하는 방법은 패키지명.random.radnit(시작값, 끝값)
import random as rnd
rnd.seed(22205101310) #난수생성 초기값 지정
rnd.randint(1, 10) # 1~10사이 임의의 정수 생성
# 1~45사이 임의의 정수 6개 생성 (중복 가능)
for i in range(6):
a=rnd.randrange(1, 45)
print(f'{a}')
print(rnd.randint(1,45), end=' ')
print(rnd.randint(1,45), end=' ')
print(rnd.randint(1,45), end=' ')
print(rnd.randint(1,45), end=' ')
print(rnd.randint(1,45), end=' ')
print(rnd.randint(1,45), end=' ')
#반복문을 이용하여 아이디, 비밀번호를 받아 미리 설정해둔 것과 일치하면 '로그인성공!'
#일치하지 않으면 '로그인실패!' 라고 출력함
# 단 일치할 때까지 아이디,비번을 계속 반복 실행
uid: 'abc123'
pwd: '987xyz'
while True:
userid = input("아이디를 입력하세요. : ")
if uid == userid :
passwd = input("비밀번호를 입력하세요. : ")
if print('로그인 성공!')
break
else: print('로그인 실패!')
# 자바기초 25, 28, 29, 30
# ex25 복권프로그램 (자리 위치는 상관없음)
key = input('3자리 복권 숫자를 입력하세요.:')
magic = str(rnd.randint(100,999)) #숫자를 슬라이싱하기 위해 문자로 변환
match = 0 # 일치여부 저장
# 첫째 자리 : 123 : 456
#if magic[0] == key[0] or magic[0] == key[1] \
# or magic[0] == key[2] : match = match + 1
# 둘째 자리
#if magic[1] == key[0] or magic[1] == key[1] \
# or magic[1] == key[2] : match = match + 1
# 셋째 자리
#if magic[2] == key[0] or magic[2] == key[1] \
# or magic[2] == key[2:] : match = match + 1
#for 문 하나로 위의 코드를 줄일 수 있음
for i in range(3) :
if magic[i] == key[0] or magic[i] == key[1] \
or magic[i] == key[2]: match = match + 1
# 당첨여부 판단
if match == 3: print('당첨! 상금 100만원 지급!')
else: print('아쉽지만 다음 기회를!', key, magic, match)
# ex28
dan = input('구구단 몇 단을 계산할까요')
if dan in ('1','2','3','4','5','6','7','8','9') :
for i in range(1,10):
print(f'{dan} x {i} = {int(dan) * i }')
else : print('잘못입력하셨습니다')
# ex29
# 입력받은 문자의 ascii 코드값을 출력하는 함수 ord(문자)
# 입력받은 ascii 코드값의 문자를 출력하는 함수 chr(값)
# 소문자 a의 ASCII값은 97, z는 122
# 문자 A의 ASCII값은 65, z는 96
ord('a')
char = input('소문자 아무거나 하나 입력하세요 :')
if ord(char) >= 97 and ord(char) <= 122 :
print(chr(ord(char)-32))
else: print('잘못입력')
print(char.upper())
# ex30
num2 = rnd.randint(1,100)
while True :
num1 = int(input('1-100 사이의 숫자를 입력하세요'))
if num1 > num2 : print('추측한 숫자가 큽니다')
elif num1 < num2 : print('추측한 숫자가 작습니다')
else:
print('빙고! 숫자를 맞췄습니다')
break
# p78 2번문제
import random
print('숫자 맞추기 게임')
com = random.randint(1,10)
while True :
my = int(input('예상 숫자를 입력하시오 : ' ))
if my == com :
print('성공')
break
elif my > com:
print('더 작은수')
elif my < com:
print('더 큰수')
##############################################
uid= 'abc123'
pwd= '987xyz'
while True:
userid = input("아이디를 입력하세요. : ")
passwd = input("비밀번호를 입력하세요. : ")
if uid == userid and pwd == passwd :
print('로그인 성공!')
break
else: print('로그인 실패!')
in_str = input("회원가입하시겠습니까 아니면 로그인하시겠습니까?(회원가입/아무거나-로그인)")
id=[] #회원가입하면 저장될 아이디 리스트
pw=[] #회원가입하면 저장될 비번 리스트
a=[] #a=입력아이디와 아이디 일치개수 확인
i=0
while in_str=="회원가입":
new_id = input("아이디을 입력해주세요\n")
for member in id:
while member==new_id:
print(new_id+"라는 아이디가 이미 존재합니다.")
new_id = input("다시 입력해주세요.\n")
new_pw = input("비밀번호를 입력해주세요\n")
id.append(new_id)
pw.append(new_pw)
print("회원가입이 완료 되었습니다.\n 아이디는 "+new_id+"이고 비밀번호는 "+new_pw+"입니다")
in_str = input("회원가입하시겠습니까 아니면 로그인하시겠습니까?(회원가입/아무거나-로그인)")
whatid = input("아이디를 입력해주세요")
for mem in id:
if mem==whatid:
a.append(i)
i=i+1
while len(a) == 0:
print("아이디가 존재하지 않습니다.")
whatid = input("아이디를 다시 입력해주세요")
i=0
for mem in id:
if mem==whatid:
a.append(i)
i=i+1
whatpw = input("비밀번호를 입력해주세요")
while whatpw != pw[a[0]]:
print("비밀번호가 일치하지 않습니다.")
whatpw = input("비밀번호를 다시입력해주세요")
print("로그인 되셨습니다.")
# 48, 51