본문 바로가기
카테고리 없음

TIL 2023 . 03.21 python 심화기초문법정리1

by jung1911 2023. 3. 22.

새로 배운 것!

 

키워드

python이 만들어질 때 사용하겠다고 정한 것!(이름을 정할때 사용하면 안됨)

False None True and as assert
break calss continue def del elif
else except finally for from global
if import in is lambda nonlocal
not or pass raise return try
while with yield      

 이름을 정할때 키워드를 피해서 사용!(이거보고 피해서 사용할려고 작성)

그리고 True는 키워드지만 true는 키워드가 아니다 위에 표에 대문자로 이루어진 

키워드를 소문자 변경해서 사용하면 사용가능!

키워드 확인 방법

import keyward
print(keyword.kwlist)
#이렇게 사용하면 내가 사용하는 이름이 키워드인지 아닌지 확인 가능하다!
#근데 왠만하면 처음부터 확인하고 사용하는게 좋을거 같다

 

식별자(이름지정)

주로 변수, 함수 이름으로 사용!

 

 

규칙

  • 키워드를 사용하면 안됨
  • 특수 문자로 언더바(_) 사용가능
  • 숫자로 시작하면 안됨
  • 공백을 포함할 수 없다.

이렇게 사용되면 안됨

 

 

 

스네이크케이스

num_int 단어 사이에 언더 바(_) 기호를 붙여 만드는 것

ex) print input list str map(소문자가 시작이라면 스네이크)

 

캐멀케이스

NumInt 단어들의 첫 글자를 대문자로 만드는 것

ex)Animal Show(대문자가 시작이라면 캐멀)

 

 

 

print() 출력

print() 괄호 안에 있는 것을 출력!

 

하나만출력

print("나의 블로그")

나의 블로그

print(111)

111

 

 

여러개 출력

출력하고 싶은 내용을 쉼표로 연결해서 적을수 있다.

print(55,45,"hello")
55 45 hello

print("안녕하세요","만나서 반가워요!")
안녕하세요 만나서 반가워요!

 

string 

문자열(str)

 

문자열 연결 연산자+

#@@@@@@@@@@<문자열 + 문자열>@@@@@@@@@@


print("안녕"+"하세요")
안녕하세요

print("안녕하세요"+"!")특수문자도 가능!
안녕하세요!

문자열과 정수를 더하면
print("안녕하세요"+1)
TypeError: can only concatenate str (not "int") to str #에러
문자열에 정수를 더하면 이렇게 에러가 뜬다. 정수를 문자열로 바꿔서 해봤다.

print("안녕하세요"+"1")#""가 들어가야 문자열로 인식
안녕하세요1

문자열 반복 연산자 : *

#문자열을 숫자와 연산자로 연결하면 반복할 수 있다.

print("안녕하세요"*3)
안녕하세요안녕하세요안녕하세요

print(3*"안녕하세요")
안녕하세요안녕하세요안녕하세요

순서는 상관없다

문자 선택 연산자: [ ]

대괄호[] 안에는 선택 할 문자의 위치를 지정

print("안녕"[0]) #안
print("안녕"[1]) #녕
# 코딩에서 숫자는 0부터 시작한다

print("안녕"[-1])  # 녕
print("안녕"[-2])  # 안
#음수로 하면 뒤에서 부터 선택가능

문자열 범위 선택 연산자(슬라이싱):[:]

문자열에서 ~번째 부터 ~번째까지 선택 가능하다.

print("파이썬은재밌다"[1:5])
이썬은재
#<"밌" 5번째 문자>이문자를 포함하지않는다! 라고 생각하자 그러면 "재" 까지 출력이된다

#@@@다른 방법@@@

print("파이썬은재밌다"[1:])#[1:]대괄호안에 1: 이렇게지정하면 1번째 글자부터 마지막 글자까지 나온다.
이썬은재밌다

print("파이썬은재밌다"[:3]) #앞의 값을 생략했기 때문에 0번째 부터 뒤의 숫자3번째 앞의 문자까지 나온다.
파이썬

[0,1,2,3,4,5,6]

문자열 하면서 IndexError:string index out of range라는 에러가 뜨면

리스트/문자열의 수를 넘는 부분이 있으므로 그부분을 확인 해야한다.

 

 

문자열의 길이 구하기: len

print(len("파이썬은어렵다"))#len()괄호내부에 넣으면 문자열의 문자 갯수가나온다
7

문자열 나누기: .split

#split은 string.split("구분자")로 구성 (빼준다)

string = "hello/python/world"
string_list = string.split("/") # split() 안에 들어간 값을 기준으로 문자를 나눈다.
print(string_list) # ['hello', 'python', 'world']

ex)  world만 출력
string = "hello/python/world"
string_list = string.split("/") 
print(string_list[-1])#/를 분리해주고 분리해준 마지막 문자인 world가 출력이된다.

#python을 출력하고 싶으면 -2 hello를 출력할려면 -3 하면된다.


string.split("/") /이걸 뺀다고 생각하면된다

 

문자열 format()

숫자를 문자열로 변환

#중괄호의 개수와 format 함수 괄호 변수의 개수가 같아야한다.

a = "{}".format(10)

#출력
print(a)
print(type(a))

10
<class 'str'>

 

 

int(정수)

소수점이 없는 숫자

print(type(1))
<class 'int'>#(정수를 나타낸다)

print(type(1.1))
<class 'float'>#(소수점을 나타낸다)

정수나누기 연산자: //

#나누기
print(3/2) 
1.5


#소수점 떼어 버린 값
print(3//2)
1

나머지 연산자 : %

print(5 % 2) #5를 나누면 2의 몫 나머지는 1
1

제곱 연산자:**

print(2**2)
4
print(2**3)
8
print(2**4)
16
print(2**5)
32

 

 

다른 방식의 문제

새로배운것

t1 = "python"
t2 = "java"
t3 = t1+''+t2+''#python +''(공백)+ java 이런식으로 4번 나온다.
print(t3 * 4)


formatting
name1 = "김초딩" 
age1 = 10
name2 = "이중딩"
age2 = 14
print("이름: %s 나이: %d" % (name1, age1))
print("이름: %s 나이: %d" % (name2, age2))
%s 는 문자열을 나타낸다
%d 는 정수를 나타낸다 
% 문자열을 생성하는 역할을 한다.
format

print("이름: {} 나이: {}".format (name1, age1))
print("이름: {} 나이: {}".format (name2, age2))
출력될 위치에{} 넣어주면된다.

f-string
변수와 같은 형태로 문자열 사이에 타입과 상관없이 값을 출력할 수 있다.
print(f"이름: {name1} 나이: {age1}")
print(f"이름: {name2} 나이: {age2}")

 

 

1.문제

시도

삼성전자 50,000원 당 1주이다.


삼성전자 = 50000 #삼성전자를 변수로 줘야한다는 질문에 영어가 아닌 한글로 했다.
주식 = 10 
총평가금액 = 삼성전자*주식# 삼성전자 50,000원 당 1주 그래서 * 곱하기
print(총평가금액)

 #정답 
 삼성전자 = 50000
 총평가금액 = 삼성전자 * 10
 print(총평가금액)

 

2.문제

 

시도

print(s+"!", t)
#두 변수를 이용하여 출력라는 말을 보니 print를 사용해서 !를 추가하라는 질문인 것으로 유추

 

3.문제

 

시도

에어컨 = 48584
무이자 = 36 #할부로 36개월에 나눠서 판다는 애기 
총금액 = 에어컨*무이자 # 그러면 48584*36
print(총금액) # 총금액 1749024

 

4.문제

 

시도

letters = "python"
print(letters[0], letters[2])
#각각 불러왔다 p            t

 

 

5.문제

 

 

시도

ar = "24가 2210"
print(car[3:])
#3번째부터 시작하겠다는 의미다 그러면 2[0],4[1],가[2] 2[3]여기서 시작하고 3: 마지막 값을 전부 가지고 오기위해 뒤에 값을 안넣었다.

#정답
license_plate = "24가 2210"
print(license_plate[-4:])# 여기도 뒤에 값을 안주고 -4 뒤에서부터 값을 가지고왔다

 

 

6.문제

 

시도

string = "홀짝홀짝홀짝"
print(3*string[0])# 문자열 반복으로 홀을 지정하고 3* 로 반복을 해줬다.
홀홀홀

# 정답

string = "홀짝홀짝홀짝"
print(string[::2])# 처음 보는거라 찾아보니 :시작 : 끝 -1 뒤집기 2 두 칸씩 건너뛰면서 지정

ex)::-1
string = "PYTHON"
print(string[::-1]) #문자열을 뒤집어주는 역할을 한다.

ex)::2
string = "abcdefg" #처음 시작 문자부터 2칸 간격으로 출력!
print(string[::2])  # 출력: aceg

 

7.문제

 

시도!

phone = "010-1111-2222"
print(phone.split("-"))  # -를 지정한 값을 기준으로 문자를 나눈다
# ['010', '1111', '2222'] #하지만 예시 처럼 되지않았다.

# 정답
 phone_number = "010-1111-2222"
 phone_number1 = phone_number.replace("-", " ")
#replace("-", " ")는 문자열 phone_number에서 "-" 문자를 " "(공백)으로 대체하는 것을 의미
print(phone_number1)
#010 1111 2222 라는 값이 나온다.

 

8.문제

 

시도!

url = "http://sharebook,kr"
print(url[17:])  # 첫 번째 부터 17번째 문자열부터 나머지 문자까지 나타나게했다.
kr

# 정답
url = "http://sharebook.kr"
url_split = url.split('.')  # .문자를  분리한다.
print(url_split[-1])  # 분리된 마지막 요소인 kr을 -1하면 출력할 수 있다

 

9.문제

 

시도!

string = 'abcdfe2a354a32a'
string1 = string.replace["a", "A"]
print(string1)

 

10.문제

 

시도!

num_str = "720"
num_int = int(num_str) #문자열을 int(정수로) 형변환
print(num_int) #결과값은 720 정수로 사칙 연산도 가능하다
#print(num_int+1)#이런식으로 가능하다.

 

댓글