๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“๐Ÿ’ช/Python

๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ(2), filter,sort๊ณผ์ œ

by ์ˆ˜์จ”์•™ 2022. 9. 14.

https://sizzang97.tistory.com/87

 

Python ํŠน๊ฐ•(5) (try-except, stacktrace, comprehension)

์˜ค๋Š˜๋„ ํŠน๊ฐ•๊ณผ ์ ํ”„ ํˆฌ ํŒŒ์ด์ฌ์„ ๊ฐ™์ด ๊ณต๋ถ€ํ•ด๋ณด์Ÿ! https://wikidocs.net/30 05-4 ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ์ˆ˜์—†์ด ๋งŽ์€ ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋œ๋‹ค. ๋ฌผ๋ก  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ž˜๋ชป ๋™

sizzang97.tistory.com

 

๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ 2ํƒ„!!

 

์–ด์ œ class๋ฅผ ์ด์šฉํ•ด์„œ ์‚ฌ์น™์—ฐ์‚ฐ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ณ„์‚ฐ๊ธฐ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ

์˜ค๋Š˜ ๋ฐฐ์šด try/except๋ฅผ ์ด์šฉํ•ด์„œ 0์œผ๋กœ ๋‚˜๋ˆด์„ ๋•Œ, ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ–ˆ์„๋•Œ ํ”„๋ฆฐํŠธํ•ด์ฃผ์ž!!

class FourCal:
    def __init__(self, first, second):
        self.first = first
        self.second = second
    def add(self):
        result = self.first + self.second
        return result
    def minus(self):
        result = self.first - self.second
        return result
    def mul(self):
        result = self.first * self.second
        return result
    def div(self):
        result = self.first / self.second
        return result

try:
    cal = FourCal(4, 0)
    print(cal.add())
    print(cal.minus())
    print(cal.mul())
    print(cal.div())
except ZeroDivisionError:
    print("0์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
except ValueError:
    print("์ˆซ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.")

 

์ด๋ ‡๊ฒŒ ํ•˜๊ณ  ์˜ค๋Š˜ ํŠน๊ฐ•๋•Œ ํŠœํ„ฐ๋‹˜์˜ ๋ชจ๋ฒ”๋‹ต์•ˆ์„ ํ™•์ธํ–ˆ๋Š”๋ฐ

ํ•˜ํ•˜ใ…ํ•˜ํ•˜ํ•˜ํ•˜ํ•ณ ๋‚˜์ฒ˜๋Ÿผ ์“ฐ๋ฉด ์‚ฌ์ˆ˜๋ž‘ ๊ฐœ์ธ๋ฉด๋‹ด ๋“ค์–ด๊ฐ€๊ฒ ๋‹ค~~~~~

์ €๋ ‡๊ฒŒ ํ†ต์งธ๋กœ ์“ฐ๋Š”๊ฑด ์•ˆ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค!

 

class FourCal():
    def set_number(self, first, second):
        self.first = first
        self.second = second
    def add(self):
        result = self.first + self.second
        return result
    def minus(self):
        result = self.first - self.second
        return result
    def mul(self):
        result = self.first * self.second
        return result
    def div(self):
        try:
            return self.first / self.second
        except ZeroDivisionError:
            print("0์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
while True:
    try:
        first, second = map(int, input().split())
        break
    except ValueError:
        print("์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”")

cal = FourCal()
cal.set_number(first, second)
print(cal.add())
print(cal.minus())
print(cal.mul())
print(cal.div())

์ด๋ ‡๊ฒŒ ๋ฐ”๊ฟ”์ฃผ์žฅ...ใ…Žใ…Ž....

์ œ์™ธ๋˜๋Š” ํ•ด๋‹น ๋ถ€๋ถ„์— ๊ฐ€์„œ try๋ฅผ ๊ฑธ์–ด์ฃผ๋Š”๊ฒŒ ์ข‹๋‹ค!

 

 

filter/sort ๊ด€๋ จ ๊ณผ์ œ

 

- filter ํ˜น์€ ๋ฆฌ์ŠคํŠธ ์ถ•์•ฝ์‹์„ ์‚ฌ์šฉํ•ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”
- ์ œ๊ณต ๋œ ์‚ฌ์šฉ์ž๋“ค ์ค‘ ๋‚˜์ด๊ฐ€ 20์‚ด ๋ฏธ๋งŒ์ธ ์‚ฌ๋žŒ๋“ค์€ ์ œ์™ธํ•ด์ฃผ์„ธ์š”
- ์‚ฌ์šฉ์ž๋“ค์„ ๋‚˜์ด ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์ฃผ์„ธ์š”

 

์ด๊ฒŒ ๋ฌธ์ œ์˜€๋Š”๋ฐ ๋ฌด๋‚œํ•˜๊ฒŒ ํ•ด๊ฒฐ~~!!~!

 

import pprint
people = [
    ("Blake Howell", "Jamaica", 18, "aw@jul.bw"),
    ("Peter Bowen", "Burundi", 30, "vinaf@rilkov.il"),
    ("Winnie Hall", "Palestinian Territories", 22, "moci@pacivhe.net"),
    ("Alfred Schwartz", "Syria", 29, "ic@tolseuc.pr"),
    ("Carrie Palmer", "Mauritius", 28, "fenlofi@tor.aq"),
    ("Rose Tyler", "Martinique", 17, "as@forebjab.et"),
    ("Katharine Little", "Anguilla", 29, "am@kifez.et"),
    ("Brent Peterson", "Svalbard & Jan Mayen", 22, "le@wekciga.lr"),
    ("Lydia Thornton", "Puerto Rico", 19, "lefvoru@itbewuk.at"),
    ("Richard Newton", "Pitcairn Islands", 17, "da@lasowiwa.su"),
    ("Eric Townsend", "Svalbard & Jan Mayen", 22, "jijer@cipzo.gp"),
    ("Trevor Hines", "Dominican Republic", 15, "ev@hivew.tm"),
    ("Inez Little", "Namibia", 26, "meewi@mirha.ye"),
    ("Lloyd Aguilar", "Swaziland", 16, "oza@emneme.bb"),
    ("Erik Lane", "Turkey", 30, "efumazza@va.hn"),
]
people = list(filter(lambda x: x[2] >= 20, people))
people.sort(key=lambda x: x[2])
# some code

pprint.pprint(people)

"""
[('Winnie Hall', 'Palestinian Territories', 22, 'moci@pacivhe.net'),
 ('Brent Peterson', 'Svalbard & Jan Mayen', 22, 'le@wekciga.lr'),
 ('Eric Townsend', 'Svalbard & Jan Mayen', 22, 'jijer@cipzo.gp'),
 ('Inez Little', 'Namibia', 26, 'meewi@mirha.ye'),
 ('Carrie Palmer', 'Mauritius', 28, 'fenlofi@tor.aq'),
 ('Alfred Schwartz', 'Syria', 29, 'ic@tolseuc.pr'),
 ('Katharine Little', 'Anguilla', 29, 'am@kifez.et'),
 ('Peter Bowen', 'Burundi', 30, 'vinaf@rilkov.il'),
 ('Erik Lane', 'Turkey', 30, 'efumazza@va.hn')]
"""
728x90

๋Œ“๊ธ€