๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 118

Swift ์–ธ์–ด๋ž€?

Swift์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž! Swift ์–ธ์–ด๋Š” ์• ํ”Œ์ด ๊ฐœ๋ฐœํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. iOS, macOS, watchOS, TV OS ๋“ฑ ์• ํ”Œ ์ƒํƒœ๊ณ„์—์„œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค. iOS ์•ฑ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ '์Šค์œ„ํ”„ํŠธ(Swift)' ์–ธ์–ด์ด๋‹ค. Objective-C๋ณด๋‹ค ๊ฐ„๊ฒฐํ•˜๊ณ , ํšจ์œจ์ ์ธ ์ฝ”๋“œ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋” ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์ฃผ๊ณ  ์žˆ๋‹ค. Swift ์–ธ์–ด ํŠน์ง• Swift๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. Objective-C๋ณด๋‹ค ์‰ฝ๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋น ๋ฅธ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ์• ํ”Œ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค๊ณผ์˜ ์—ฐ๋™์„ฑ์ด ๋›ฐ์–ด๋‚˜์„œ ๋”์šฑ ์•ˆ์ •์ ์ธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. Swift ์–ธ์–ด์˜ ์žฅ์ ..

Swift 2024.02.19

[05-1] ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ

โ–ท ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ ํ˜•ํƒœ def ํ•จ์ˆ˜ ์ด๋ฆ„( ): ๋ฌธ์žฅ โ–ท ํ•จ์ˆ˜์— ๋งค๊ฐœ๋ณ€์ˆ˜ ๋งŒ๋“ค๊ธฐ def ํ•จ์ˆ˜ ์ด๋ฆ„(๋งค๊ฐœ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜, โˆ™โˆ™โˆ™): ๋ฌธ์žฅ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์œ„์™€ ๊ฐ™์ด ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ด„ํ˜ธ ๋‚ด๋ถ€์— ์‹๋ณ„์ž๋ฅผ ์ž…๋ ฅํ•ด์„œ ๋งŒ๋“ ๋‹ค. (↓์˜ˆ์‹œ↓) → 'print_n_times'๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ–ˆ๊ณ , 'value'์™€'n'์ด๋ผ๋Š” ์‹๋ณ„์ž๋ฅผ ์ž…๋ ฅํ•จ (์ด์ œ 'value'์™€'n'์€ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋œ ๊ฒƒ. ์ดํ›„, ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ, ๊ฐ’์„ ์ž…๋ ฅํ•ด์„œ ํ•จ์ˆ˜๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Œ.) → ๋งค๊ฐœ๋ณ€์ˆ˜ value์—๋Š” "ํ‘ธ๋ฐ”์˜ค", ๋งค๊ฐœ๋ณ€์ˆ˜ n์—๋Š” 5๊ฐ€ ๋“ค์–ด๊ฐ → ์‹คํ–‰ ๊ฒฐ๊ณผ: ํ‘ธ๋ฐ”์˜ค๊ฐ€ 5๋ฒˆ ์ถœ๋ ฅ๋จ ๐Ÿ’ก์ฃผ์˜๐Ÿ’ก ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์ง€ ์•Š๊ฑฐ๋‚˜, ๋” ๋งŽ์ด ๋„ฃ์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•จ. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋Š” ..

[04-3] while ๋ฐ˜๋ณต๋ฌธ (+ for ๋ฐ˜๋ณต๋ฌธ)

โ–ถ๏ธŽ for ๋ฐ˜๋ณต๋ฌธ โ–ท for ๋ฐ˜๋ณต๋ฌธ๊ณผ ๋ฒ”์œ„(range) โ–ท for ๋ฐ˜๋ณต๋ฌธ : ๋ฆฌ์ŠคํŠธ์™€ ๋ฒ”์œ„(range) ๋ฐ˜๋ณต์„ ์ ์šฉํ•˜๋‹ค ๋ณด๋ฉด '๋ช‡ ๋ฒˆ์งธ ๋ฐ˜๋ณต์ผ๊นŒ?'๋ฅผ ์•Œ์•„์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธด๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์ •๋ง ๋‹ค์–‘ํ•˜๋‹ค. ์•„๋ž˜ ์ฝ”๋”ฉ ํ™”๋ฉด์€ ๊ทธ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. (↓๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•↓) ๋งŒ์•ฝ ๋ฐ˜๋ณต ๋ณ€์ˆ˜๋ฅผ ํฐ ์ˆซ์ž์—์„œ ์ž‘์€ ์ˆซ์ž๋กœ ์ ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ์•„๋ž˜ ํ™”๋ฉด๊ณผ ๊ฐ™์ด ํ•˜๋ฉด ๋œ๋‹ค. (+์ถ”๊ฐ€) ์•„๋ž˜์™€ ๊ฐ™์ด reversed( ) ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค. # ์—ญ๋ฐ˜๋ณต๋ฌธ for i in reversed(range(5)): print(i) 4 3 2 1 0 โ–ถ๏ธŽ while ๋ฐ˜๋ณต๋ฌธ ์•ž์„œ ๋ฐฐ์šด for ๋ฐ˜๋ณต๋ฌธ์€ ๋‚ด๋ถ€์˜ ์š”์†Œ๋ฅผ ๋ชจ๋‘ ์ˆœํšŒํ•˜๋Š” ๊ฒฝ์šฐ, ์ฆ‰ ํŠน์ • ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. while ๋ฐ˜๋ณต๋ฌธ์€ if ์กฐ๊ฑด๋ฌธ๊ณผ ..

[04-2] ๋”•์…”๋„ˆ๋ฆฌ์™€ ๋ฐ˜๋ณต๋ฌธ

๋ฆฌ์ŠคํŠธ(list) = '์ธ๋ฑ์Šค(index)'๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ ๋”•์…”๋„ˆ๋ฆฌ(dictionary) = 'ํ‚ค(key)'๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ โ–ถ๏ธŽ ๋”•์…”๋„ˆ๋ฆฌ ์„ ์–ธํ•˜๊ธฐ ์ค‘๊ด„ํ˜ธ{ }๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธํ•œ๋‹ค. ํ‚ค: ๊ฐ’ ํ˜•ํƒœ๋ฅผ ์‰ผํ‘œ(,)๋กœ ์—ฐ๊ฒฐํ•ด์„œ ๋งŒ๋“ ๋‹ค. (ํ‚ค = ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ ๋“ฑ๋“ฑ..) ๋ณ€์ˆ˜ = { ํ‚ค: ๊ฐ’, ํ‚ค: ๊ฐ’, โˆ™โˆ™โˆ™ ํ‚ค: ๊ฐ’ } โ–ถ๏ธŽ ๋”•์…”๋„ˆ๋ฆฌ์˜ ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ >>> dict_a = { โˆ™โˆ™โˆ™ "name": "ํ‘ธ๋ฐ”์˜ค", โˆ™โˆ™โˆ™ "type": "ํŒ๋‹ค" โˆ™โˆ™โˆ™ } ์œ„์— ์„ ์–ธํ•œ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•˜๋ ค๋ฉด, >>> dic_a {'name': 'ํ‘ธ๋ฐ”์˜ค', 'type': 'ํŒ๋‹ค'} ๋”•์…”๋„ˆ๋ฆฌ๋„ ๋ฆฌ์ŠคํŠธ์ฒ˜๋Ÿผ ํŠน์ • ํ‚ค ๊ฐ’๋งŒ ๋”ฐ๋กœ ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”•์…”๋„ˆ๋ฆฌ ๋’ค์— ๋Œ€๊ด„ํ˜ธ([ ])๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๋‚ด๋ถ€์— ํ‚ค(key)๋ฅผ ..

ํ•จ์ˆ˜[3]

์•„๋ž˜ ํ•จ์ˆ˜๋Š” ํŒŒ์ด์ฌ๋งŒ์˜ ๊ณ ์œ ํ•œ ๊ธฐ๋Šฅ๋“ค์ด๋‹ค. ์•„๋งˆ ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” ๋ณด๊ธฐ ํž˜๋“  ํ˜•ํƒœ์˜ ๊ธฐ๋Šฅ๋“ค์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ชจ๋ฅด๋”๋ผ๋„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ํฐ ๋ฌธ์ œ๋Š” ์—†๋‹ค๋Š” ์ ! ๋ฆฌ์ŠคํŠธ์— ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋ณธ ํ•จ์ˆ˜: min( ), max( ), sum( ) ๋ฆฌ์ŠคํŠธ ๋’ค์ง‘๊ธฐ: reversed( ) ํ˜„์žฌ ์ธ๋ฑ์Šค๊ฐ€ ๋ช‡ ๋ฒˆ์งธ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ: enumerate( ) ๋”•์…”๋„ˆ๋ฆฌ๋กœ ์‰ฝ๊ฒŒ ๋ฐ˜๋ณต๋ฌธ ์ž‘์„ฑํ•˜๊ธฐ: items( ) ๋ฆฌ์ŠคํŠธ ์•ˆ์— for๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ: ๋ฆฌ์ŠคํŠธ ๋‚ดํฌ โ–ท ๋ฆฌ์ŠคํŠธ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ํ•จ์ˆ˜: min( ), max( ), sum( ) min( ): ๋ฆฌ์ŠคํŠธ ๋‚ด๋ถ€์—์„œ ์ตœ์†Ÿ๊ฐ’ ์ฐพ๊ธฐ max( ): ๋ฆฌ์ŠคํŠธ ๋‚ด๋ถ€์—์„œ ์ตœ๋Œ“๊ฐ’ ์ฐพ๊ธฐ sum( ): ๋ฆฌ์ŠคํŠธ ๋‚ด๋ถ€์—์„œ ๊ฐ’์„ ๋ชจ๋‘ ๋”ํ•˜๊ธฐ โ–ท reversed( ) ํ•จ์ˆ˜๋กœ ๋ฆฌ์ŠคํŠธ ๋’ค์ง‘๊ธฐ # ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ ์–ธํ•˜๊ณ  ๋’ค์ง‘๊ธฐ li..

ํ•จ์ˆ˜[2]

โ— ๋”•์…”๋„ˆ๋ฆฌ ๋ฆฌ์ŠคํŠธ(list) → ์ธ๋ฑ์Šค(index)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ ๋”•์…”๋„ˆ๋ฆฌ(dictionary) → ํ‚ค(key)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ ๋ฆฌ์ŠคํŠธ(list) ์„ ์–ธ ํ˜•์‹ → ๋ณ€์ˆ˜ = [ ] ๋”•์…”๋„ˆ๋ฆฌ(dictionary) ์„ ์–ธ ํ˜•์‹ → ๋ณ€์ˆ˜ = { } { "ํ‚คA" : 10, # ๋ฌธ์ž์—ด์„ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜๊ธฐ "ํ‚คB" : 20, "ํ‚คC" : 30, 1: 40, # ์ˆซ์ž๋ฅผ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜๊ธฐ False: 50. # ๋ถˆ์„ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜๊ธฐ } → ํ‚ค : ๊ฐ’ โ–ท ๋”•์…”๋„ˆ๋ฆฌ ์š”์†Œ ์ ‘๊ทผ๋ฒ• >>> dict_a {'name' : '์–ด๋ฒค์ ธ์Šค ์—”๋“œ๊ฒŒ์ž„', 'type' : 'ํžˆ์–ด๋กœ ๋ฌด๋น„'} ๋ฆฌ์ŠคํŠธ์ฒ˜๋Ÿผ ๋”•์…”๋„ˆ๋ฆฌ ๋’ค์— ๋Œ€๊ด„ํ˜ธ[ ]๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ๋‚ด๋ถ€์— ์ธ๋ฑ์Šค์ฒ˜๋Ÿผ ํ‚ค๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. ์ด๋•Œ, ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์„ ์–ธํ•  ๋•Œ๋Š” ์ค‘๊ด„ํ˜ธ{ }๋ฅผ ์‚ฌ์šฉ, ๋”•์…”..

ํ•จ์ˆ˜[1]

โ— type( ) ํ•จ์ˆ˜ → ์ž๋ฃŒ ํ˜•์‹ ํ™•์ธ >>> print(type("์•ˆ๋…•ํ•˜์„ธ์š”") โ— ์ค„๋ฐ”๊ฟˆ / ํƒญ → \n → \t โ—์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž(escape character) → \" >>> print("\"์•ˆ๋…•ํ•˜์„ธ์š”\"๋ผ๊ณ  ๋งํ–ˆ๋‹ค") "์•ˆ๋…•ํ•˜์„ธ์š”"๋ผ๊ณ  ๋งํ–ˆ๋‹ค → \' → \\ >>> print(""\\ \\ \\ \\") \ \ \ \ โ—๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ์—ฐ์‚ฐ์ž: + >>> print("ํ‘ธ" + "๋ฐ”์˜ค") ํ‘ธ๋ฐ”์˜ค โ—๋ฌธ์ž์—ด ๋ฐ˜๋ณต ์—ฐ์‚ฐ์ž: * >>> print("ํ‘ธ๋ฐ”์˜ค" * 3) ํ˜น์€ >>> print(3 * "ํ‘ธ๋ฐ”์˜ค") ํ‘ธ๋ฐ”์˜คํ‘ธ๋ฐ”์˜คํ‘ธ๋ฐ”์˜ค โ—๋ฌธ์ž ์„ ํƒ ์—ฐ์‚ฐ์ž(์ธ๋ฑ์‹ฑ): [ ] >>> print("ํ‘ธ๋ฐ”์˜ค"[0]) ํ‘ธ >>> print("ํ‘ธ๋ฐ”์˜ค"[1]) ๋ฐ” >>> print("ํ‘ธ๋ฐ”์˜ค"[-1]) ์˜ค >>> print("..

[04-1] ๋ฆฌ์ŠคํŠธ์™€ ๋ฐ˜๋ณต๋ฌธ

โ–ถ๋ฆฌ์ŠคํŠธ ์„ ์–ธํ•˜๊ณ  ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ ํŒŒ์ด์ฌ์—์„œ ๋ฆฌ์ŠคํŠธ(list)๋Š” '์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ž๋ฃŒ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ'์ด๋‹ค. ๋‹ค์Œ ์ฝ”๋“œ๋Š” 6๊ฐœ์˜ ์ž๋ฃŒ๋ฅผ ๊ฐ€์ง„ ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ ์–ธํ•œ ์˜ˆ์ด๋‹ค. >>> array = [27, 325, 109, "๋ฌธ์ž์—ด", True, False] >>> print(array) [27, 325, 109, '๋ฌธ์ž์—ด', True, False] ํŒŒ์ด์ฌ์—์„œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋Œ€๊ด„ํ˜ธ[ ]์— ์ž๋ฃŒ๋ฅผ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ž…๋ ฅํ•œ๋‹ค. ๋Œ€๊ด„ํ˜ธ[ ] ๋‚ด๋ถ€์— ๋„ฃ๋Š” ์ž๋ฃŒ๋ฅผ ์š”์†Œ๋ผ๊ณ  ํ•˜๊ณ , ์˜์–ด๋กœ๋Š” elememt๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. [์š”์†Œ, ์š”์†Œ, ์š”์†Œ, ...] ๋ฆฌ์ŠคํŠธ ์•ˆ์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ๊ฐ๊ฐ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ฆฌ์ŠคํŠธ ์ด๋ฆ„ ๋ฐ”๋กœ ๋’ค์— ๋Œ€๊ด„ํ˜ธ[ ]๋ฅผ ์ž…๋ ฅํ•˜๊ณ , ์ž๋ฃŒ์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. list_a = [27..