[udemy] Python 부트캠프 : 100개의 프로젝트로 Python 개발 완전 정복을 통해 학습하고 있습니다.
for문
- for 반복문을 사용하면 인벤토리의 각 항목을 순회하면서 몇 가지 작업을 수행할 수 있음.
fruits = ["Apple", "Peach", "Pear"]
for fruit in fruits:
print(fruit)
# 결과
Apple
Peach
Pear
→ 위와 같이 리스트와 함께 사용할 수 있고, 리스트에 있는 내용을 순차적으로 순회하면서 출력된 것을 확인할 수 있음.
- fruits 리스트를 가져와 각 항목에 fruit라는 변수 이름을 할당하는 것으로 생각할 수 있음.
- 첫 번째 항목인 'Apple'부터 fruit에 할당하고 print로 출력한 뒤 다시 for 반복문의 시작으로 돌아가서 다음 값을 fruit 변수에 할당하고 이를 반복하여 리스트 전체를 출력할 때까지 반복함.
fruits = ["Apple", "Peach", "Pear"]
for fruit in fruits:
print(fruit)
print(fruit + " pie")
# 결과
Apple
Apple pie
Peach
Peach pie
Pear
Pear pie
→ 위와 같이 각 항목에 순서대로 변수 이름을 할당하고, 각 항목에 대해 임시 변수를 사용하여 출력할 수 있음.
# 방법 1
student_scores = [150, 142, 185, 120, 171, 184, 149, 24, 59, 68, 199, 78, 65, 89, 86, 55, 91, 64, 89]
total = sum(student_scores)
print(total)
# 결과
2068
# 방법 2
sum = 0
for score in student_scores:
sum += score
print(sum)
# 결과
2068
- 리스트에 있는 숫자들의 합계를 구하고 싶을 때, sum이라는 함수를 통해 결과값을 얻을 수 있고, 변수와 for문을 사용하여 합계를 구하는 방식으로 결과값을 얻을 수 있음.
❓ Qusetion
Q1. MAX
There are also a built-in Python methods called max() and min(), which allow you to pass in a List of numbers, and it will give you the highest number or the lowest number.
Your job is to figure out how the Python programmers might have built this functionality using loops and conditionals.
# Default
student_scores = [150, 142, 185, 120, 171, 184, 149, 24, 59, 68, 199, 78, 65, 89, 86, 55, 91, 64, 89]
# 풀이
max_score = 0
for score in student_scores:
if score > max_score:
max_score = score
print(max_score)
# 결과
199
for 반복문과 range() 함수
- range 함수는 특정 범위의 숫자를 생성하여 루프를 돌리고 싶을 때 유용함.
for number in range(a, b):
print(number)
- range를 사용하여 a와 b사이의 범위를 지정한 후, 해당 범위 내의 숫자를 가져와 해당 숫자로 작업을함.
- range 함수는 모든 숫자를 하나씩 증가시키며 진행하며, 증가 범위를 조정하고 싶을 때 끝에 쉼표 추가하여 범위를 지정하면 됨.
- range(1, 10)을하면 1~9까지 출력되며, 10까지 출력하고 싶다면 범위를 (1, 11)로 잡으면 됨.
for number in range(1, 10):
print(number)
# 결과
1
2
3
4
5
6
7
8
9
for number in range(1, 10, 2):
print(number)
# 결과
1
3
5
7
9
❓ Qusetion
Q1. The Gauss Challenge
Work out the total of the numbers between 1 and 100, inclusive of both 1 and 100.
sum = 0
for number in range(1, 101):
sum += number
print(sum)
# 결과
5050
실습1: FizzBuzz
프로그램을 작성하여 FizzBuzz 게임의 해답을 자동으로 출력할 것입니다. FizzBuzz 게임의 규칙은 다음과 같습니다:
프로그램은 1부터 100까지의 각 숫자를 차례대로 출력해야 하며, 숫자 100을 포함해야 합니다.
하지만 숫자가 3으로 나누어 떨어지면 숫자를 출력하는 대신 "Fizz"를 출력해야 합니다.
숫자가 5로 나누어 떨어지면 숫자를 출력하는 대신 "Buzz"를 출력해야 합니다.
그리고 숫자가 3과 5로 모두 나누어 떨어지면 예를 들어 15일 때 숫자를 출력하는 대신 "FizzBuzz"를 출력해야 합니다.
예시:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
number = 0
for number in range(1, 101):
if number % 3 == 0 and number % 5 == 0:
print("FizzBuzz")
elif number % 3 == 0:
print("Fizz")
elif number % 5 == 0:
print("Buzz")
else:
print(number)
→ random 함수를 사용해서 1부터 100까지 숫자를 number에 담아주고, if문을 통해 3과 5로 나누었을 때 0인 경우를 시작으로 if문을 구성
5일차 프로젝트
비밀번호 생성기 만들기
Easy Version
Generate the password in sequence. Letters, then symbols, then numbers. If the user wants
4 letters 2 symbols and 3 numbers then the password might look like this:
fgdx$*924
You can see that all the letters are together. All the symbols are together and all the numbers follow each other as well. Try to solve this problem first.
import random
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+']
print("Welcome to the PyPassword Generator!")
nr_letters = int(input("How many letters would you like in your password?\n"))
nr_symbols = int(input(f"How many symbols would you like?\n"))
nr_numbers = int(input(f"How many numbers would you like?\n"))
password = ""
for char in range(0, nr_letters):
password += random.choice(letters)
for char in range(0, nr_symbols):
password += random.choice(numbers)
for char in range(0, nr_numbers):
password += random.choice(symbols)
print(password)
Hard Version
When you've completed the easy version, you're ready to tackle the hard version. In the advanced version of this project the final password does not follow a pattern. So the example above might look like this:
x$d24g*f9
And every time you generate a password, the positions of the symbols, numbers, and letters are different. This will make the password more difficult for hackers to crack.
import random
# 알파벳 52개
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+']
print("Welcome to the PyPassword Generator!")
nr_letters = int(input("How many letters would you like in your password?\n"))
nr_symbols = int(input(f"How many symbols would you like?\n"))
nr_numbers = int(input(f"How many numbers would you like?\n"))
password = []
for char in range(0, nr_letters):
password.append(random.choice(letters))
for char in range(0, nr_symbols):
password.append(random.choice(numbers))
for char in range(0, nr_numbers):
password.append(random.choice(symbols))
random.shuffle(password)
password_list = ""
for char in password:
password_list += char
print(f"Your Password is: {password_list}")
p.s 갈수록 프로젝트 문제가 어려워지고 있는 거 같음... (갈 수록 내가 멍청할 수도)
'Language > Python' 카테고리의 다른 글
[Section7] 게임 프로젝트(행맨) (0) | 2025.01.14 |
---|---|
[Section6] 파이썬 함수와 카렐 (0) | 2025.01.13 |
[Section4] 파이썬 리스트 (0) | 2025.01.12 |
[Section3] 흐름 제어와 논리 연산자 (0) | 2025.01.10 |
[Section2] 데이터 형식 이해 및 문자열 (0) | 2025.01.09 |