코테를 위한 파이썬 문법 공부 - range, eval

2024. 1. 1. 14:49·study/python
반응형

range 함수

# range 함수를 이용한 리스트 생성

# 5부터 9까지 생성
a = list(range(5,10))

# 0부터 10까지 3씩 건너뛰며 생성
b = list(range(0,10,3))

# -10부터 -100까지 -30씩 건너뛰며 생성 
c = list(range(-10,-100,-30))
print(a)
print(b)
print(c)

결과

 

시퀀스의 인덱스들로 이터레이트

a = ['a','b','c','d']
for i in range(len(a)):
    print(i,a[i])

결과

 

하지만 이 경우, enumerate 함수를 쓰는것이 편합니다.

enumerate_a = list(enumerate(a))
print(enumerate_a)

 

enumerate 결과

 

 

많은 경우 range()가 리턴하는 객체는 리스트 처럼 동작하지만, 리스트가 아닙니다.

 

이터레이트 할 때 원하는 시퀀스 항목을 순서대로 돌려주지만, 실제로 리스트를 만들지는 않기 때문에, 공간을 절약합니다.

이러한 객체를 iterable 이라고 부릅니다.

 

eval 함수

매개변은 문자열 식을 코드처럼 실행해주는 함수

# 결과 : 3
eval("1+2")

# 결과 : 8
eval("abs(-8)")

 

사용할 수 있는 예로. 백준 11382번 https://www.acmicpc.net/problem/11382이 있습니다.

 

이 문제의 경우 eval() 을 사용해 간단하게 풀 수 있습니다.

 

eval()을 사용하지 않는 경우에는 아래와 같이 풀 수 있습니다.

 

 

한 가지 문제를 더 살펴보겠습니다.

백준 25304번 입니다.  https://www.acmicpc.net/problem/25304

 

이 문제 또한 eval을 활용해서 영수증 각 항목의 가격과 수량을 곱할 수 있습니다.

total,total_price=int(input()),0
for i in range(int(input())):
	# 입력받은 문자열에서 공백을 곱하기로 변경한 후, eval함수로 연산 수행
    total_price+=eval(input().replace(' ','*'))
    
# 두 값이 같거나 다름을 출력
print(['No','Yes'][total==total_price])

 

 

 

감사합니다. 

 

참고 : https://docs.python.org/

 

반응형

'study > python' 카테고리의 다른 글

코테에서 자주 쓰는 파이썬 문법 - 자료형,리스트 합치기  (2) 2024.01.03
Pandas 예제  (1) 2023.03.29
Sympy  (0) 2020.12.17
반복자와 생성자  (0) 2020.12.17
람다 함수  (0) 2020.12.17
'study/python' 카테고리의 다른 글
  • 코테에서 자주 쓰는 파이썬 문법 - 자료형,리스트 합치기
  • Pandas 예제
  • Sympy
  • 반복자와 생성자
jjikky
jjikky
  • jjikky
    jikky.env
    jjikky
  • 전체
    오늘
    어제
    • 분류 전체보기
      • React
      • Node.js
        • TDD
        • Node.js
        • mern
        • OAuth
        • js_facebook login
      • Coding Test
        • 백준 알고리즘
        • CodeUp
        • 코테 이론
      • Js
        • Javascript
      • study
        • python
        • android
        • Big data analysis
        • Logic Circuit
      • git
      • 개발일지
      • 게임기획
      • Docker
      • IPFS
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬 그리디
    verilog할당문
    빅데이터
    NFT Marketplace
    Ipfs
    안드로이드
    verilog
    UI
    파이썬
    NFT IPFS
    범주형 자료
    git 유용한 명령어
    nft
    파이썬 완전탐색
    Python
    코딩테스트
    파이썬 딕셔너리
    그리디 알고리즘
    ifps 네트워크 지연
    ipfs add
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
jjikky
코테를 위한 파이썬 문법 공부 - range, eval
상단으로

티스토리툴바