59doit

[Python] 반복문 loop, random, for, range 본문

Programming/Python(파이썬)

[Python] 반복문 loop, random, for, range

yul_S2 2022. 10. 31. 09:35
반응형

Loop

numdata = []

while True :
    num=int(input("숫자입력:"))

    if num % 10 == 0 :
        print("프로그램종료")
        break
    else :
        print(num)
        numdata.append(num)

while문을 실행시키면 

Console창에 숫자입력:>? 이 뜬다

if문에 만족하는 숫자를 입력하면 break되어  실행문이 :프로그램종료" 라고 뜨면서 반복문을 중단한다.

 

 

Random ;

import random 모듈을 import 해야한다.

 EX) 0~1 사이의 난수

r=random.random()    
print('r=',r)  

 

 

EX) 난수 0.01 미만이면 종료 후 난수 개수 출력

num=0
while True :
    r=random.random()
    print(random.random())
    if r<0.01 :
        break
    else :
        num+=1
    print('난수갯수=', num)

 

 

 

 

이름 list

 list에 전체이름, 특정이름 출력

names=['james','jeny','dan']
print(names)     # <출력> ['james', 'jeny', 'dan']
print(names[2])  # <출력> dan

 

list안에 유무확인하기

names=['james','jeny','dan']

if 'jeny' in names :
    print("jeny in here")
else :
    print ("jeny not here")

 

 

난수 정수로 이름 선택하기

idx = random.randint(0,2)
print(names[idx])

 

for

문자열거형

str = "tom"
print (len(str))
for b in str :
    print(b)
#<출력>
#t
#o
#m

리스트열거형

lst=[1,2,3,4,5]
for a in str :
    print("영어 : ",a)

#<출력>
#영어 :  t
#영어 :  o
#영어 :  m

 

range

range(10)      #0에서부터 9까지
range(1,10)    #1에서부터 9까지
range(1,10,3)  #1에서 9까지 3간격 

리스트에 자료저장

import random
lst=[]

for a in range(1,10) :
    r = random.randint(1,10)
    lst.append(r)

print('lst:',lst)    
# <출력> lst: [10, 5, 3, 2, 2, 9, 6, 4, 6]

 

EX1) for 문과 range() 함수 사용

1에서 100까지의 수에서 5의 배수만 빈 리스트에 담아 출력

a = 0
lst=[]

for a in range(1,101) :

    if a%5==0  :
       lst.append(a)

print(lst)
#<출력> [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]

 

 

 

 

중첩문의 반복문

EX) 구구단

for a in range(2,10):
    print("{}단".format(a))   
    for b in range(1,10) :
        print(a,b,a*b)

 

 

 

 

WHILE

EX1)

1~100사이에서 5의 배수이면서 3의 배수가 아닌 수의 합 계산하기

 

 

 

 

 

EX2)

-1, 3, -5, 7, -9, ... 99 까지의 합을 구하시오.

방법1

num = -1
tot = 0

while num < 100 :
    num += 1
    tot += num
    if num % 4 == 1:
        tot -= num*2
    if num % 2 == 0:
        tot -= num

print(tot)

방법2

cnt = tot = 0

while cnt < 100:
    cnt += 1
    if cnt % 4 == 3:
        tot += cnt
    elif cnt % 4 == 1:
        tot -= cnt

print(tot)

 

방법3

cnt = cnt2 = cnt3 = tot = 0
dataset = []
while cnt < 100:
    cnt += 1
    if (cnt % 2) != 0:
        cnt2 += 1
        if (cnt2 % 2) != 0:
            cnt3 = cnt*(-1)
            tot += cnt3
            dataset.append(cnt3)
        else:
            tot += cnt
            dataset.append(cnt)

print('-1, 3, -5, 7, -9 ~ 99까지의  = %d' % tot)
print('dataset =', dataset)
반응형

'Programming > Python(파이썬)' 카테고리의 다른 글

[Python] 자료구조  (0) 2022.11.01
[Python] 리스트내포  (0) 2022.10.31
[Python] tuple, set, dic  (0) 2022.10.27
[Python] 리스트  (0) 2022.10.27
[Python] 문자열 관련함수  (0) 2022.10.26
Comments