๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์–ธ์–ด (C, Python)

[python] eval() ๋‚ด์žฅํ•จ์ˆ˜ (๋ฌธ์ž์—ด ์ˆ˜์‹ ๊ณ„์‚ฐ)

by Seop๐Ÿ˜€ 2022. 7. 5.
๋ฐ˜์‘ํ˜•
   ์ˆ˜์‹์ด ๋ฌธ์ž์—ด ํ˜•ํƒœ์ผ ๋•Œ ์–ด๋–ป๊ฒŒ ๊ณ„์‚ฐ์„ ํ• ๊นŒ?

์ฝ”๋”ฉ(์•Œ๊ณ ๋ฆฌ์ฆ˜) ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ํ•ด๋‹น๊ฒฝํ—˜์„ ํ•œ๋ฒˆ์”ฉ ๋‹ค ํ•ด๋ดค์„ ๊ฒƒ ์ด๋‹ค. 

์ฒ˜์Œ์—๋Š” ์ด๋Ÿฐ์ƒํ™ฉ์—์„œ if ๋ฌธ์„ ์จ์„œ ์กฐํ•ฉ์„ ํ•˜๊ณ  ์–ด์ €๊ตฌ ์–ด์ฉŒ๊ตฌ ํ–ˆ์ง€๋งŒ, ์ด์ œ๋Š” ์•„๋‹ˆ๋‹ค. eval ํ•จ์ˆ˜๋ฅผ ๋ฐฐ์› ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

print(1+2)

์œ„์— ๊ฒฐ๊ณผ๋Š” ๋‹น์—ฐํžˆ 3 ์ด๋‹ค. ๋„ˆ๋ฌด์‰ฝ๋‹ค. ๋‹ค์Œ์€?

print("1+2")

์ด๊ฒƒ๋„ 3์ด์ง€ํ•˜๋ฉด ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ๋ฅผ ๋“ค์–ด๊ฐ€ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์Œ“๊ธธ ๋ฐ”๋ž€๋‹ค. (๋ฌผ๋ก ๋†๋‹ด์ž…๋‹ˆ๋‹ค.)

์ถœ๋ ฅ ๊ฐ’์€ 1+2 ๋กœ ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ ๋˜์–ด์žˆ๋Š” ๋ฌธ์ž์—ด์— eval ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

print(eval("1+2"))

์ถœ๋ ฅ๊ฐ’์„ ๋†€๋ž๊ฒŒ๋„ 3 ์ด ๋‚˜์˜จ๋‹ค. ์‰ฝ๋‹ค ๋„ˆ๋ฌด์‰ฝ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋” ์‰ฌ์›Œ์กŒ๋‹ค. ์ž์ฃผ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š๊ฒ ์ง€๋งŒ, ์•Œ์•„๋‘๋ฉด 

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ํฐ ๋„์›€์ด ๋  ๋“ฏ ํ•˜๋‹ค.

 

 

๋‹ค๋ฅธ ์‘์šฉ ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ?

eval() ํ•จ์ˆ˜์—๋Š” ์žฌ๋ฐŒ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค.

a = 5
print(eval("a+1"))

์ถœ๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด ๋†€๋ž๊ฒŒ๋„ 6์ด ๋‚˜์˜จ๋‹ค.

์‘? ๋ญ˜ ๋ณด๊ณ  ์žˆ๋Š”๊ฑฐ์ง€ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

๋ฌธ์ž์—ด์— ๋Œ€์ž…? ๋ญ”๊ฐ€ ์ƒ์†Œํ•˜์ง€๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ์šฐ๋ฆฐ ์กฐ๊ธˆ ๋” ๋น ๋ฅด๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋Œ“๊ธ€