Python3 기본 데이터 유형


Python에서는 변수를 선언할 필요가 없습니다. 각 변수는 사용하기 전에 값을 할당해야 합니다. 변수에 값이 할당될 때까지는 변수가 생성되지 않습니다.

Python에서 변수는 변수이며 유형이 없습니다. 우리가 "유형"이라고 부르는 것은 변수가 참조하는 메모리의 개체 유형입니다.

등호(=)는 변수에 값을 할당하는 데 사용됩니다.

등호(=) 연산자의 왼쪽은 변수 이름이고, 등호(=) 연산자의 오른쪽은 변수에 저장된 값입니다. 예:

#!/usr/bin/python3

counter = 100          # 整型变量
miles   = 1000.0       # 浮点型变量
name    = "php"     # 字符串

print (counter)
print (miles)
print (name)


위 프로그램을 실행하면 다음 결과가 출력됩니다.

100
1000.0
php

여러 변수 할당

Python을 사용하면 다음을 할당할 수 있습니다. 동시에 여러 변수에 값을 할당하는 것입니다. 예:

a = b = c = 1

위의 예에서는 값이 1인 정수 객체가 생성되고 동일한 메모리 공간에 3개의 변수가 할당됩니다.

여러 개체에 여러 변수를 지정할 수도 있습니다. 예:

a, b, c = 1, 2, "php"

위의 예에서는 두 개의 정수 개체 1과 2가 변수 a와 b에 할당되고 문자열 개체 "php"가 변수 c에 할당됩니다.


표준 데이터 유형

Python3에는 6가지 표준 데이터 유형이 있습니다:

  • 숫자(숫자)

  • 문자열(string)

  • 리스트(list)

  • 튜플(tuple)

  • 세트(set)

  • Dictionary(사전)


숫자(number)

Python3 지원 int, float, bool, complex(복수형).

Python 3에는 정수형 int가 하나만 있는데, 이는 long 정수로 표현됩니다. python2에는 Long이 없습니다.

대부분의 언어와 마찬가지로 숫자 유형의 할당과 계산은 직관적입니다.

내장된 type() 함수를 사용하여 변수가 가리키는 개체 유형을 쿼리할 수 있습니다.

>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

참고: 에는 Python2에서 부울 유형이 없습니다. 숫자 0을 사용하여 False를 나타내고 1을 사용하여 True를 나타냅니다. Python 3에서는 True와 False가 키워드로 정의되어 있지만 그 값은 여전히 ​​1과 0이고 숫자에 더할 수 있습니다.

값을 지정하면 Number 개체가 생성됩니다.

var1 = 1
var2 = 10

del 문을 사용하여 일부 개체 참조를 삭제할 수도 있습니다.

del 문의 구문은 다음과 같습니다.

del var1[,var2[,var3[....,varN]]]]

del 문을 사용하면 단일 또는 여러 개체를 삭제할 수 있습니다. 예:

del var
del var_a, var_b

수치 연산

>>> 5 + 4  # 加法
9
>>> 4.3 - 2 # 减法
2.3
>>> 3 * 7  # 乘法
21
>>> 2 / 4  # 除法,得到一个浮点数
0.5
>>> 2 // 4 # 除法,得到一个整数
0
>>> 17 % 3 # 取余 
2
>>> 2 ** 5 # 乘方
32

참고:

  • 1. Python은 여러 변수에 값을 할당할 수 있습니다. 동시에 a, b = 1, 2와 같습니다.

  • 2. 변수는 할당을 통해 다양한 유형의 객체를 가리킬 수 있습니다.

  • 3. 숫자 값의 나눗셈(/)은 항상 부동 소수점 숫자를 반환합니다. // 연산자를 사용하세요.

  • 4. 혼합 계산 중에 Python은 정수를 부동 소수점 숫자로 변환합니다.

숫자 유형 인스턴스

intfloatcomplex
100.03.14j
10015.2045.j
-786-21.99.322e-36j
08032.3+e18.876j
-0490-90.-.6545+0J
-0x260-32.54e1003e+26J
0x6970.2-E124.53e-7j

Python은 복소수도 지원합니다. 복소수는 실수부와 허수부로 구성됩니다. a + bj 또는 복소수(a,b)로 표현될 수 있습니다. 복소수는 모두 부동 소수점 유형입니다


문자열(문자열)

Python의 문자열은 작은따옴표(') 또는 큰따옴표(")로 묶이고 특수 문자는 이스케이프됩니다. 백슬래시()를 사용합니다.

문자열 가로채기의 구문 형식은 다음과 같습니다.

变量[头下标:尾下标]

인덱스 값은 0부터 시작하며, 끝에서부터 시작 위치는 -1입니다

더하기 기호(+)는 문자이고, 별표(*)는 현재 문자열을 복사한다는 의미이며, 다음 숫자는 복사 횟수를 나타냅니다.

#!/usr/bin/python3

str = 'php'

print (str)          # 输出字符串
print (str[0:-1])    # 输出第一个个到倒数第二个的所有字符
print (str[0])       # 输出字符串第一个字符
print (str[2:5])     # 输出从第三个开始到第五个的字符
print (str[2:])      # 输出从第三个开始的后的所有字符
print (str * 2)      # 输出字符串两次
print (str + "TEST") # 连接字符串

실행 중입니다. 위 프로그램은 다음 결과를 출력합니다:

php
Runoo
R
noo
noob
phpphp
phpTEST

Python은 백슬래시()를 사용하여 특수 문자를 이스케이프 처리하지 않으려면 문자열 앞에 r을 추가하여 나타낼 수 있습니다. 원래 문자열:

>>> print('Ru\noob')
Ru
oob
>>> print(r'Ru\noob')
Ru\noob
>>>

또한 백슬래시( )를 줄 연속 문자로 사용하여 다음 줄이 이전 줄의 연속임을 나타낼 수도 있습니다. """를 사용할 수도 있습니다. .."" 또는 '''...'''.

Python에는 별도의 문자 유형이 없습니다. 길이가 1입니다.

>>> word = 'Python'
>>> print(word[0], word[5])
P n
>>> print(word[-1], word[-6])
n P


는 C 문자열과 다릅니다. 불행하게도 Python 문자열은 word[0] = 'm'과 같은 인덱스 위치에 값을 할당할 수 없습니다. 오류 발생

참고:

<. 🎜>
    1. 백슬래시가 이스케이프되는 것을 방지하려면 r을 사용할 수 있습니다.
  • 2. 문자열은 + 연산자를 사용하여 연결할 수 있습니다.
  • 3. Python의 문자열에는 두 가지 인덱싱 방법이 있습니다. , 왼쪽에서 오른쪽으로 -1로 시작합니다.
  • 4. Python의 문자열은 변경할 수 없습니다. 🎜>
  • 리스트(List)
  • 리스트(List)는 Python에서 가장 자주 사용되는 데이터 유형입니다.

  • 리스트는 대부분의 컬렉션 클래스의 데이터 구조 구현을 완성할 수 있습니다. 목록의 요소는 다를 수 있으며 숫자, 문자열 및 목록(소위 중첩)도 지원합니다.

목록은 대괄호([]) 사이에 작성되고 쉼표로 구분된 요소 목록입니다. 문자열과 마찬가지로 목록도 인덱싱될 수 있으며, 목록을 가로채면 필수 요소가 포함된 새 목록이 반환됩니다.

더하기 기호(+)는 목록 연결 연산자입니다. 별표(*)는 반복 작업입니다. 다음 예:

变量[头下标:尾下标]

위 예의 출력 결과:

#!/usr/bin/python3

list = [ 'abcd', 786 , 2.23, 'php', 70.2 ]
tinylist = [123, 'php']

print (list)            # 输出完整列表
print (list[0])         # 输出列表第一个元素
print (list[1:3])       # 从第二个开始输出到第三个元素
print (list[2:])        # 输出从第三个元素开始的所有元素
print (tinylist * 2)    # 输出两次列表
print (list + tinylist) # 连接列表

Python 문자열과 달리 목록의 요소는 변경될 수 있습니다.

['abcd', 786, 2.23, 'php', 70.2]
abcd
[786, 2.23]
[2.23, 'php', 70.2]
[123, 'php', 123, 'php']
['abcd', 786, 2.23, 'php', 70.2, 123, 'php']

List has build- inappend(), pop() 등 많은 메소드가 있는데 이에 대해서는 나중에 설명하겠습니다.

참고:

1. 목록은 대괄호 안에 작성되며 요소는 쉼표로 구분됩니다.

2. 문자열과 마찬가지로 목록도 인덱싱 및 슬라이싱이 가능합니다.

3. + 연산자를 사용하여 목록을 연결할 수 있습니다.

  • 4. 목록의 요소는 변경될 수 있습니다.


튜플

튜플은 요소를 수정할 수 없다는 점을 제외하면 리스트와 유사합니다. 튜플은 괄호(()) 안에 작성되며 요소는 쉼표로 구분됩니다.

튜플의 요소 유형도 다를 수 있습니다.

>>> a = [1, 2, 3, 4, 5, 6]
>>> a[0] = 9
>>> a[2:5] = [13, 14, 15]
>>> a
[9, 2, 13, 14, 15, 6]
>>> a[2:5] = []   # 删除
>>> a
[9, 2, 6]

위의 예제 출력 결과:

#!/usr/bin/python3

tuple = ( 'abcd', 786 , 2.23, 'php', 70.2  )
tinytuple = (123, 'php')

print (tuple)             # 输出完整元组
print (tuple[0])          # 输出元组的第一个元素
print (tuple[1:3])        # 输出从第二个元素开始到第三个元素
print (tuple[2:])         # 输出从第三个元素开始的所有元素
print (tinytuple * 2)     # 输出两次元组
print (tuple + tinytuple) # 连接元组

튜플은 문자열과 유사하며 색인을 생성하고 아래 첨자를 사용할 수 있습니다. 0, -1은 끝에서부터 시작하는 위치이다. 차단도 수행할 수 있습니다(위를 참조하세요. 여기서는 자세히 설명하지 않겠습니다).

사실 문자열은 특별한 튜플로 간주될 수 있습니다.

('abcd', 786, 2.23, 'php', 70.2)
abcd
(786, 2.23)
(2.23, 'php', 70.2)
(123, 'php', 123, 'php')
('abcd', 786, 2.23, 'php', 70.2, 123, 'php')

튜플의 요소는 변경할 수 없지만 목록과 같은 변경 가능한 개체를 포함할 수 있습니다.

0 또는 1개의 요소를 포함하는 튜플을 구성하는 것은 특별하므로 몇 가지 추가 구문 규칙이 있습니다.

>>> tup = (1, 2, 3, 4, 5, 6)
>>> print(tup[0])
1
>>> print(tup[1:5]])
(2, 3, 4, 5)
>>> tup[0] = 11  # 修改元组元素的操作是非法的
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>

문자열, 목록 및 튜플은 모두 시퀀스에 속합니다.

참고:

  • 1. 문자열과 마찬가지로 튜플의 요소도 수정할 수 없습니다.

  • 2. 튜플도 같은 방식으로 인덱싱 및 슬라이스할 수 있습니다.

  • 3. 0개 또는 1개의 요소를 포함하는 튜플을 구성할 때 특수 구문 규칙에 주의하세요.

  • 4. 튜플은 + 연산자를 사용하여 이어붙일 수도 있습니다.


세트(set)

세트(set)는 반복되지 않는 요소의 순서 없는 시퀀스입니다.

기본 기능은 멤버십 테스트를 수행하고 중복된 요소를 제거하는 것입니다.

중괄호({}) 또는 set() 함수를 사용하여 집합을 만들 수 있습니다. 참고: 빈 집합을 만들려면 { }가 사용되므로 { } 대신 set()을 사용해야 합니다. 빈 사전을 생성합니다.

tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号

위 예제의 출력 결과:

#!/usr/bin/python3

student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}

print(student)   # 输出集合,重复的元素被自动去掉

# 成员测试
if('Rose' in student) :
    print('Rose 在集合中')
else :
	print('Rose 不在集合中')


# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')

print(a)

print(a - b)     # a和b的差集

print(a | b)     # a和b的并集

print(a & b)     # a和b的交集

print(a ^ b)     # a和b中不同时存在的元素

Dictionary(Dictionary)

Dictionary(dictionary)는 Python의 또 다른 매우 유용한 내장 데이터 유형입니다.

목록은 순서가 지정된 개체의 조합이고 사전은 순서가 없는 개체의 모음입니다. 둘 사이의 차이점은 사전의 요소가 오프셋이 아닌 키로 액세스된다는 것입니다.

사전은 "{ }"로 식별되는 매핑 유형입니다. 키(key) : 값(value) 쌍의 순서가 지정되지 않은 모음입니다.

키는 불변 유형을 사용해야 합니다.

동일한 사전에서 키는 고유해야 합니다.

{'Jack', 'Rose', 'Mary', 'Jim', 'Tom'}
Rose 在集合中
{'r', 'b', 'a', 'c', 'd'}
{'r', 'b', 'd'}
{'a', 'l', 'z', 'b', 'm', 'd', 'r', 'c'}
{'a', 'c'}
{'l', 'z', 'b', 'm', 'd', 'r'}

위 예제의 출력 결과:

#!/usr/bin/python3

dict = {}
dict['one'] = "1 - php中文网"
dict[2]     = "2 - php工具"

tinydict = {'name': 'php','code':1, 'site': 'www.php.cn'}


print (dict['one'])       # 输出键为 'one' 的值
print (dict[2])           # 输出键为 2 的值
print (tinydict)          # 输出完整的字典
print (tinydict.keys())   # 输出所有键
print (tinydict.values()) # 输出所有值

생성자 dict()는 다음과 같이 일련의 키-값 쌍에서 사전을 직접 작성할 수 있습니다.

1 - php中文网
2 - php工具
{'name': 'php', 'site': 'www.php.cn', 'code': 1}
dict_keys(['name', 'site', 'code'])
dict_values(['php', 'www.php.cn', 1])

또한 사전 유형에는 Clear(), Keys(), Values() 등과 같은 일부 내장 함수도 있습니다.

참고:

  • 1. 사전은 매핑 유형이며 해당 요소는 키-값 쌍입니다.

  • 2. 사전의 키워드는 불변형이어야 하며 반복될 수 없습니다.

  • 3. { }을 사용하여 빈 사전을 만듭니다.


Python 데이터 유형 변환

때로는 내장된 데이터 유형을 변환해야 할 때가 있습니다. 데이터 유형을 변환하려면 변환만 하면 됩니다. 데이터 유형은 함수 이름과 같습니다.

다음 내장 함수는 데이터 유형 간 변환을 수행할 수 있습니다. 이러한 함수는 변환된 값을 나타내는 새 개체를 반환합니다.

函数 描述

int(x [,base])

将x转换为一个整数

float(x)

将x转换到一个浮点数

complex(real [,imag])

创建一个复数

str(x)

将对象 x 转换为字符串

repr(x)

将对象 x 转换为表达式字符串

eval(str)

用来计算在字符串中的有效Python表达式,并返回一个对象

tuple(s)

将序列 s 转换为一个元组

list(s)

将序列 s 转换为一个列表

set(s)

转换为可变集合

dict(d)

创建一个字典。d 必须是一个序列 (key,value)元组。

frozenset(s)

转换为不可变集合

chr(x)

将一个整数转换为一个字符

unichr(x)

将一个整数转换为Unicode字符

ord(x)

将一个字符转换为它的整数值

hex(x)

将一个整数转换为一个十六进制字符串

oct(x)

将一个整数转换为一个八进制字符串