본문 바로가기

Python

PyCharm - 반복문(for, while), 난수 (05.10)


 # 반복문
# 정해진 횟수만큼 특정코드를 반복 실행하도록 만든 문장
# 효율적인 반복실행 및 수정을 위하여 반복문을 사용함

# 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

'Python' 카테고리의 다른 글

PyCharm - Dict  (0) 2022.05.12
PyCharm - Tuple, Set  (0) 2022.05.12
PyCharm - list  (0) 2022.05.11
PyCharm - function  (0) 2022.05.11
PyCharm - 연산자, 문자열(String) (05.09)  (0) 2022.05.11