Python 3 源码文件以 UTF-8
编码,所有字符串都是 unicode
字符串
_
Python 3 中,可用中文作为变量名,非 ASCII 标识符
保留字 ( 关键字 ) ,不能将它们用作任何标识符名称。Python 的标准库提供 keyword
模块,可以输出当前版本的所有关键字
"""
@dauthor : ${USER}
@date : ${DATE} ${TIME}
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
import keyword
print(keyword.kwlist)
Python 中单行注释以 #
开头
"""
@dauthor : ${USER}
@date : ${DATE} ${TIME}
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
# 第一个注释
print("hello cpuCode") # 第二个注释
多行注释可以用多个 #
号,还有 '''
和 """
python 使用缩进来表示代码块,不使用大括号 {}
缩进的空格数是可变,但同一个代码块的语句必须相同的缩进空格数
"""
@dauthor : cpucode
@date : 2022/2/25 14:01
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
# 行与缩进
if True:
print ("True")
else:
print ("False")
Python 一般一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \
来实现多行语句
在 []
, {}
, 或 ()
中的多行语句,不需要使用反斜杠 \
"""
@dauthor : cpucode
@date : 2022/2/25 14:52
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
item_one = 'cpu '
item_two = 'code '
item_three = 'cpuCode '
total = item_one + \
item_two + \
item_three
total2 = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
print(total)
print(total2)
Python 中数字有四种类型:
int (整数) : 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long
bool (布尔) : 如 True
float (浮点数) : 如 1.23、3E-2
complex (复数) : 如 1 + 2j
、 1.1 + 2.2j
'
和双引号 "
使用完全相同'''
或 """
) 可以指定一个多行字符串\
r
可以让反斜杠不发生转义。 如 r"this is a line with \n"
则 \n
会显示,并不是换行"this " "is " "string"
会被自动转换为 this is string
+
运算符连接在一起,用 *
运算符重复0
开始,从右往左以 -1
开始"""
@dauthor : cpucode
@date : 2022/2/25 14:35
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
str = '123456789'
print(str) # 输出字符串
print(str[0:-1]) # 输出第一个到倒数第二个的所有字符
print(str[0]) # 输出字符串第一个字符
print(str[2:5]) # 输出从第三个开始到第五个的字符
print(str[2:]) # 输出从第三个开始后的所有字符
print(str[1:5:2]) # 输出从第二个开始到第五个且每隔一个的字符(步长为2)
print(str * 2) # 输出字符串两次
print(str + '你好') # 连接字符串
print('------------------------------')
# 使用反斜杠(\)+n转义特殊字符
print('hello\ncpuCode')
# 在字符串前面添加一个 r,表示原始字符串,不会发生转义
print(r'hello\ncpuCode')
r 指 raw,即 raw string
,会自动将反斜杠转义
print('\n')
print(r'\n')
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始
类和函数入口之间也用一行空行分隔,以突出函数入口的开始
空行与代码缩进不同,空行并不是 Python 语法的一部分。书写时不插入空行,Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构
按回车键后就会等待用户输入
"""
@dauthor : cpucode
@date : 2022/2/25 15:02
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
input("\n\n按下 enter 键后退出 ")
\n\n
在结果输出前会输出两个新的空行。一旦用户按下 enter 键时,程序将退出
Python 可以在同一行中使用多条语句,语句之间使用分号 ;
分割
"""
@dauthor : cpucode
@date : 2022/2/25 15:04
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
import sys; x = 'cpuCode'; sys.stdout.write(x + '\n')
缩进相同的一组语句构成一个代码块 ( 代码组 )
像 if
、while
、def
和 class
这样的复合语句,首行以关键字开始,以冒号( : )结束,该行后的一行或多行代码构成代码组
我们将首行及后面的代码组称为一个子句 ( clause )
if expression :
suite
elif expression :
suite
else :
suite
print 默认输出是换行,如果实现不换行需要在变量末尾加上 end = ""
"""
@dauthor : cpucode
@date : 2022/2/25 15:06
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
x = "a"
y = "b"
# 换行输出
print(x)
print(y)
print('---------')
# 不换行输出
print(x, end=" ")
print(y, end=" ")
print()
import
或者 from...import
来导入相应的模块import somemodule
from somemodule import somefunction
from somemodule import firstfunc, secondfunc, thirdfunc
from somemodule import *
"""
@dauthor : cpucode
@date : 2022/2/25 15:19
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
import sys
print('================ Python import mode ==========================')
print('命令行参数为:')
for i in sys.argv:
print(i)
print('\n python 路径 : ', sys.path)
"""
@dauthor : cpucode
@date : 2022/2/25 15:22
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
# 导入特定的成员
from sys import argv, path
print('=======python from import=================')
# 因为已经导入path成员,所以此处引用时不需要加 sys.path
print('path : ', path)
python -h
"""
@dauthor : cpucode
@date : 2022/2/25 16:03
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
counter = 100 # 整型变量
miles = 1000.0 # 浮点型变量
name = "cpuCode" # 字符串
print(counter)
print(miles)
print(name)
Python 允许你同时为多个变量赋值 , 也可以为多个对象指定多个变量
"""
@dauthor : cpucode
@date : 2022/2/25 16:23
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
a = b = c = 1
d, e, f = 1, 2, "cpuCode"
print(a)
print(b)
print(c)
print(d)
print(e)
print(f)
Python3 中有六个标准的数据类型:
Python3 的六个标准数据类型中:
不可变数据 :Number(数字)、String(字符串)、Tuple(元组)
可变数据:List(列表)、Dictionary(字典)、Set(集合)
Python3 支持
在 Python 3 里,只有一种整数类型 int
,表示为长整型,没有 python2 中的 Long
内置的 type()
函数可以用来查询变量所指的对象类型
isinstance 和 type 的区别在于:
"""
@dauthor : cpucode
@date : 2022/2/25 16:45
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
class A:
pass
class B(A):
pass
a, b, c, d = 20, 5.5, True, 4+3j
d = 111
print(type(a), type(b))
print(type(c), type(d))
print(isinstance(d, int))
print("/****************************************/")
print("isinstance(A(), A) : ", isinstance(A(), A))
print("type(A()) == A : ", type(A()) == A)
print("isinstance(B(), A) : ", isinstance(B(), A))
print("type(B()) == A : ", type(B()) == A)
Python3 中,bool 是 int 的子类
True 和 False 可以和数字相加, True1、False0 会返回 True,
is 来判断类型
在 Python2 中是没有布尔型的
数字 0 表示 False,用 1 表示 True
"""
@dauthor : cpucode
@date : 2022/2/28 9:07
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
print("isinstance(bool, int) : ", isinstance(bool, int))
print("True == 1 : ", True == 1)
print("False == 0 : ", False == 0)
print("True + 1 : ", True + 1)
print("False + 1 : ", False + 1)
print("1 is True : ", (1 is True))
print("0 is False : ", (0 is False))
Python 可以同时为多个变量赋值,如 a, b = 1, 2
一个变量可以通过赋值指向不同类型的对象
数值的除法包含两个运算符:/
返回一个浮点数,//
返回一个整数
在混合计算时,Python 把整型转换为浮点数
Python 支持复数,复数由实数部分和虚数部分构成,可以用 a + bj
, 或 complex(a,b)
表示, 复数的 实部a 和 虚部b 都是浮点型
"""
@dauthor : cpucode
@date : 2022/2/28 9:13
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
# 加法
print("1 + 1 = ", 1 + 1)
# 减法
print("5.5 - 1 = ", 5.5 - 1)
# 乘法
print("2 * 8 = ", 2 * 8)
# 除法,得到一个浮点数
print("3 / 6 = ", 3 / 6)
# 除法,得到一个整数
print("3 // 6 = ", 3 // 6)
# 取余
print("18 % 5 = ", 18 % 5)
# 乘方
print("5 ** 2 = ", 5 ** 2)
Python 中的字符串用单引号 '
或双引号 "
括起来,同时使用反斜杠 \
转义特殊字符
变量[头下标:尾下标]
索引值以 0
为开始值,-1
为从末尾的开始位置
加号
+
是字符串的连接符
星号*
表示复制当前字符串,与之结合的数字为复制的次数
"""
@dauthor : cpucode
@date : 2022/2/28 9:39
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
str = 'cpuCode'
# 输出字符串
print("str : ", str)
# 输出第一个到倒数第二个的所有字符
print("str[0:-1] : ", str[0:-1])
# 输出字符串第一个字符
print("str[0] : ", str[0])
# 输出从第三个开始到第五个的字符
print("str[3:6] : ", str[3:6])
# 输出从第三个开始的后的所有字符
print("str[3:] : ", str[3:])
# 输出字符串两次,也可以写成 print (2 * str)
print("str * 2 : ", str * 2)
# 连接字符串
print("str + \"_Test\" : ", str + "_Test")
Python 使用反斜杠 \
转义特殊字符,如不让反斜杠发生转义,可在字符串前面添加一个 r
,表示原始字符串
"""
@dauthor : cpucode
@date : 2022/2/28 9:46
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
print('cpu\nCode')
print(r'cpu\nCode')
反斜杠( \
) 可以作为续行符,表示下一行是上一行的延续。也可使用 """..."""
或者 '''...'''
跨越多行
Python 没有单独的字符类型,一个字符就是长度为 1 的字符串
与 C 字符串不同的是,Python 字符串不能被改变
向一个索引位置赋值,如 :word[0] = 'C
会导致错误
"""
@dauthor : cpucode
@date : 2022/2/28 9:48
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
word = 'cpuCode'
print(word[0], word[3])
print(word[-1], word[-4])
r
可以让反斜杠不发生转义+
运算符连接在一起,用 *
运算符重复List(列表) 是 Python 中使用最频繁的数据类型
列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)
列表是写在方括号 []
之间、用逗号分隔开的元素列表
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表
列表截取的语法格式 :
变量[头下标:尾下标]
索引值以 0
为开始值,-1
为从末尾的开始位置
+
: 列表连接运算符*
: 重复操作"""
@dauthor : cpucode
@date : 2022/2/28 10:02
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
list = ['abc', 222, 3.3, 'cpuCode', 10.1]
tinylist = [111, 'cpu']
a = [1, 2, 3, 4, 5, 6]
# 输出完整列表
print("list : ", list)
# 输出列表第一个元素
print("list[0] : ", list[0])
# 从第二个开始输出到第三个元素
print("list[1:3] : ", list[1:3])
# 输出从第三个元素开始的所有元素
print("list[2:] : ", list[2:])
# 输出两次列表
print("tinylist * 2 : ", tinylist * 2)
# 连接列表
print("list + tinylist : ", list + tinylist)
print("/*************************************/")
print("a = ", a)
print("a[0] : ", a[0])
print("a[0] : ", a[2:5])
# 将对应的元素值设置为 []
a[2:5] = []
print("a = ", a)
+
操作符进行拼接Python 列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串
第三个参数为负数表示逆向读取
"""
@dauthor : cpucode
@date : 2022/2/28 10:14
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
def reverseWords(input):
# 通过空格将字符串分隔符,把各个单词分隔为列表
inputWords = input.split(" ")
# 翻转字符串
# 假设列表 list = [1,2,3,4],
# list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
# inputWords[-1::-1] 有三个参数
# 第一个参数 -1 表示最后一个元素
# 第二个参数为空,表示移动到列表末尾
# 第三个参数为步长,-1 表示逆向
inputWords = inputWords[-1::-1]
output = ' '.join(inputWords)
# 重新组合字符串
return output
if __name__ == '__main__':
input = 'I like cpuCode'
rw = reverseWords(input)
print(rw)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 ()
里,元素之间用逗号隔开
元组与字符串类似,可以被索引且下标索引从 0 开始,-1 为从末尾开始的位置。也可以进行截取
"""
@dauthor : cpucode
@date : 2022/2/28 10:27
@github : https://github.com/CPU-Code
@csdn : https://blog.csdn.net/qq_44226094
"""
tuple = ('abcd', 8848, 2.21, 'cpuCode', 48.2)
tinytuple = (123, 'cpu')
# 输出完整元组
print(tuple)
# 输出元组的第一个元素
print(tuple[0])
# 输出从第二个元素开始到第三个元素
print(tuple[1:3])
# 输出从第三个元素开始的所有元素
print(tuple[2:])
# 输出两次元组
print(tinytuple * 2)
# 连接元组
print(tuple + tinytuple)
# 修改元组元素的操作是非法的
tuple[1] = 11
string、list 和 tuple 都属于 sequence(序列)
与字符串一样,元组的元素不能修改
元组也可以被索引和切片,方法一样
注意构造包含 0 或 1 个元素的元组的特殊语法规则
元组也可以使用+
操作符进行拼接
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员
基本功能是进行成员关系测试和删除重复元素
使用大括号 { }
或者 set()
函数创建集合
创建一个空集合必须用
set()
而不是{ }
,因为{ }
是用来创建一个空字典
字典(dictionary)是 Python中内置数据类型
列表是有序的对象集合,字典是无序的对象集合
两者区别:字典当中的元素是通过键来存取的,而不是通过偏移存取
字典是一种映射类型,字典用 { }
标识,它是一个无序的 键(key) : 值(value) 的集合
键 (key) 必须使用不可变类型
在同一个字典中,键(key) 必须是唯一
构造函数 dict()
可以直接从键值对序列中构建字典
{x: x**2 for x in (2, 4, 6)}
该代码使用的是字典推导式
字典是一种映射类型,它的元素是键值对
字典的关键字必须为不可变类型,且不能重复
创建空字典使用{ }