본문 바로가기

TIl

파이썬 1주차 Weekly 토

오늘 한 것

Day3, Day4 실습 해결해 보기

문제는 보안상 이유로 내 코드만 나열

number_of_people = 0
number_of_book = 100
name = ['김시습', '허균', '남영로', '임제', '박지원']
age = [20, 16, 52, 36, 60] 
address = ['서울', '강릉', '조선', '나주', '한성부']  
many_user = None 
def increase_user():
    global number_of_people
    print(f'{name[number_of_people]}님 환영합니다!')
    number_of_people += 1
    return number_of_people

def create_user(name,age, address):
    global number_of_people   
       increase_user()
    return {'name':name,'age':age,'address':address}
many_user = list(map(create_user,name,age,address))
info = list(map(lambda x : {'name' : x['name'], 'age': x['age']//10},many_user))

def decrease_book(number):
    global number_of_book
    number_of_book -= number
    print(f'남은 책의 수 : {number_of_book}')   
def rental_book(info):
    decrease_book(info['age'])
    print(f"{info['name']}님이 {info['age']}권의 책을 대여했습니다.")
    list(map(rental_book, info))

lv2 -2 내 코드

food_list = [   {     '종류': '한식',     '이름': '잡채'   },   {     '종류': '채소',     '이름': '토마토'   },   {     '종류': '중식',     '이름': '자장면'   }, ]  # 아래에 코드를 작성하시오. for i in food_list:   if i['이름'] == '토마토':     i['종류'] = '과일'   elif i['이름'] == '자장면':     print('자장면엔 고춧가루지')   print(f"{i['이름']} 은/는 {i['종류']} (이)다 ") print(food_list) # while 문 i = 0 while i<len(food_list): food="food_list[i]" if="" food['이름']="='토마토':" food['종류']="과일" elif="" '자장면':="" print('자장면엔="" 고추가루지')="" print(f" {food['종류']}="" 이다." i="" +="1" print(food_list)<="" code=""></len(food_list):>

lv3 -1 내 코드

import requests from pprint import pprint as print  # 무작위 유저 정보 요청 경로 dummy_data = [] for i in range(1,11):   API_URL = f'https://jsonplaceholder.typicode.com/users/{i}'   # API 요청   response = requests.get(API_URL)   # JSON -> dict 데이터 변환   parsed_data = response.json()   if -80 < float(parsed_data['address']['geo']['lat']) < 80 and -80 < float(parsed_data['address']['geo']['lng']) < 80:     dict_data = {       'company' : parsed_data['company']['name'],       'name' : parsed_data['name'],       'lat' : parsed_data['address']['geo']['lat'],       'lng' : parsed_data['address']['geo']['lng'],     }     dummy_data.append(dict_data) print(dummy_data)

lv3-2 내 코드

matrix = [     ['0, 1', '0, 2', '0, 3'],      ['1, 0', '1, 1', '1, 2', '1, 3'],      ['2, 0', '2, 1', '2, 2', '2, 3', '2, 4'],      ['3, 0', '3, 1'],      ['4, 0', '4, 1', '4, 2'],      ['5, 0']   ] # 아래애 코드를 작성하시오. matrix_len = 0 # print(len(matrix)) for i in matrix:   matrix_len +=1 print(matrix_len)  for number in matrix:   temporary_len = 0   for i in number:     temporary_len +=1   if temporary_len <= 4:     print(f'{number}리스트는 {temporary_len}개 만큼 요소를 가지고 있습니다.')  for x in range(len(matrix)):   for y in range(len(matrix[x])):     print(f'matrix의 {x},{y}번째 요소의 값은 {matrix[x][y]}입니다.')

발생했던 문제

1. request 모듈이 깔려있고, 문제가 발생하지 않았음에도 import가 되지 않았던 문제

  • request 버전 2.31.0
  • pip install requests 했을 때 Reqyurenebt akready satusfued 5 줄 정도 나옴
  • 하지만 Import "requests" could not be resolved from source Pylance``[reportMissingModuleSource](https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportMissingModuleSource) 발생 (warning)
  • 실행했을 때 에러 발생
Traceback (most recent call last): File "c:Desktop\TIL\test.py", line 1, in  import requests ModuleNotFoundError: No module named 'requests'

해결방법

python test.py 으로 터미널에서 실행 시 정상 작동함

Run Python File 버튼으로 안된 이유 : interpriter의 문제가 있었다.

Recommended 인 3.12.1 64-bit 을 사용했었는데, Conda인 3.9.7(’base’) 버전으로 변경해서 해결했음

2. 매개변수와 인수의 활용이 부족했음

  • 매개변수를 무의식적으로 비워놓고 짬
  • return 값의 활용이 너무 부족함

해결방법 : gpt로 부분부분 물어보기, 공부열심히 하기…

<script src="https://unpkg.com/prismjs@1.22.0/components/prism-core.min.js"></script><script src="https://unpkg.com/prismjs@1.22.0/plugins/autoloader/prism-autoloader.min.js"></script><script>MathJax = { tex: { inlineMath: [['$', '$']] } };</script><script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>

'TIl' 카테고리의 다른 글

데이터 구조1  (1) 2024.01.22
Weekly 일, 파이썬 복습  (1) 2024.01.21
관통 PJT 1  (1) 2024.01.20
모듈, 제어문  (0) 2024.01.18
함수, 재귀 함수, Packing  (0) 2024.01.17