数据类型
汇总
print(type(100)) # <class 'int'>
print(type(1.23)) # <class 'float'>
print(type(True)) # <class 'bool'>
print(type('A')) # <class 'str'>
print(type('ABC')) # <class 'str'>
print(type(b'A')) # <class 'bytes'>
数值类型
整数
Python可以处理任意大小的整数,在程序中的表示方法和数学上的写法一模一样,如100
、-10
。十六进制用0x
前缀和0-9,a-f表示,例如:0xff00
,0xa5b4c3d2。
Python允许在数字中间以_
分隔,因此,写成10_000_000_000
和10000000000
是完全一样的。十六进制数也可以写成0xa1b2_c3d4
。
# 整数
print(100)
print(-10)
print(0xff00)
print(10_000_000)
print(0xa1b2_c3d4)
浮点数
数学写法,如1.23
,3.14
,-9.01,
科学计数法,如,1.23x109就是1.23e9
,或者12.3e8
,0.000012可以写成1.2e-5。
# 浮点数
print(3.14)
print(-1.23)
print(1.23e5)
print(-3.6e-9)
字符
Python中没有单独的字符类型,可以使用只包含一个字符的字符串表示一个字符。
print('A')
print("B")
字符的编码与解码
print(ord('A')) # 65
print(ord('中')) # 20013
print(chr(65)) # A
print(chr(20013)) # 中
字节类型(bytes)
Python使用带
b
前缀的单引号或双引号表示bytes
类型的数据。
x = b'ABC'
print("ABC".encode()) # b'ABC'
布尔类型
布尔值可以用
and
、or
和not
运算。
# 布尔类型
print(False)
print(True)
print(True or True)
print(True and True)
print(not False)
字符串
字符串使用单引号
''
或者双引号""
包围,比如'abc'
,"xyz"
,使用或者,则内部的字符串默认不会转义。使用三引号'''xxx'''
包围字符串可以换行输入,使用r'''xxx'''
换行输入的字符串也默认不会转义。Python3使用Unicode编码格式,Python的字符串支持多语言。
# 字符串
print("Hello, World")
print(r"Hello, \n world")
print(r'Hello, \\\ world')
print('\u4e2d\u6587') # 中文
print('''123
ABC
Hello
''')
print(r'''123 \n
ABC \\\
Hello
''')
字符串的编解码
print("ABC".encode()) # b'ABC'
print('中文'.encode('utf-8')) # b'\xe4\xb8\xad\xe6\x96\x87'
print(b'ABC'.decode('utf-8')) # ABC
print(b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')) # 中文
计算字符串长度
print(len("ABC")) # 3
print(len("中文")) # 2,字符数
print(len(b'\xe4\xb8\xad\xe6\x96\x87')) # 6 字节数(中文,一个字符占3字节)
指定python源代码的编码格式
第一行注释指定谁来执行这个脚本,在Linux下生效,Win会忽略,第二行注释告诉Python解释器,按照UTF-8编码读取源代码
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
格式化输出字符串
使用
%
格式化字符串,占位符只有一个的时候,可以省略括号,如果你不太确定应该用什么,%s
永远起作用,它会把任何数据类型转换为字符串,%
用本身用%%
来表示。
print("hello, %s" % "world") # hello, world
print("hello, %s%s" % ("world", "!")) # hello, world!
print('%2d-%02d' % (3, 1)) # 3-01
print('%.2f' % 3.1415926) # 3.14
字符串的
format()
方法,按照{}
中的顺序依次填值。
print("hello,{0}{1}".format("world", "!")) # hello,world!
# Hello, 小明, 成绩提升了 17.1%
print('Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125))
f-string,使用
f''
格式,会将{}
中对于的变量填入其中。
r = 2.5
s = 3.14 * r ** 2
print(f'The area of a circle with radius {r} is {s:.2f}')
扩展:python中几种格式化字符串的方式
# 原始字符串 raw string
print(r'hello\n, world')
# 字节字符串 bytes string
print(b'ABC')
# 格式化字符串 format string
a = 'world'
print(f'hello, {a}')
# 转unicode编码(python2用,因为python3默认unicode编码)
print(u'ABC')
集合类型
列表(list)
元组(tuple)
字典(dict)
集合(set)
空值
空值是Python里一个特殊的值,用
None
表示。None
不能理解为0
,因为0
是有意义的,而None
是一个特殊的空值。
常量
约定使用大写字母表示常量(其本质还是变量,只是约定俗成)。
PI = 3.14159265359
变量和引用
变量
Python是动态语言(变量本身类型不固定)可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。
a = 100
print(type(a)) # <class 'int'>
a = 'ABC'
print(type(a)) # <class 'str'>
引用
a = 'ABC'
b = a
a = 'XYZ'
print(a) # XYZ
print(b) # ABC
评论区