第一个 python 代码
# 输出 打印
print("hello world")
python代码 是从上往下 一行一行执行 一旦报错 就会停止
一、常量
“常量”的广义概念是:‘不变化的量’,在计算机程序运行时,不会被程序修改的量,约定俗成 不可更改 ,一般 全部是大写字母。
如:a 、 15 、 G
二、变量
变量就是一些将来可能会改变的数据,程序运行时,这些数据将会被保存在计算机的内存里面,程序运行中所需要的各种各样的数据会以变量的形式保存起来。
由数字 字母 下划线任意组合,且不能以数字开头
用等于号 “ = ” 赋值,左边是变量名 ,右边是变量值
变量名 = 值
不能用python中的关键字,Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', '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']
# 定义一个变量名为i 把5.8 赋值给 变量i
i = 5.8
print(i)
# 把i得值改为了 3.9
i = 3.9
print(i)
注释
在程序中对某些代码进行标注说明,增强程序的可读性
python 注释有以下两类:
单行注释:以 # 开始
多行注释:用 一对 连续的 三个 引号(单引号和双引号都可以)
# 这是一单行注释
'''
这是一个
多行注释
'''
"""
这也是一个
多行注释
"""
什么时候需要使用注释?
1.注释不是越多越好,对于一目了然的代码,不需要添加注释
2.对于 复杂的操作,应该在操作开始前写上若干行注释
3.对于 不是一目了然的代码,应在其行尾添加注释(为了提高可读性,注释应该至少离开代码 2 个空格)
4.绝不要描述代码,假设阅读代码的人比你更懂 Python,他只是不知道你的代码要做什么
任何语言的程序员,编写出符合规范的代码,是开始程序生涯的第一步
三、数据类型
Python3 中有六个标准的数据类型:
Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Set(集合)
Dictionary(字典)
Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
3.1 数字(Number)
python 数字类型不改改变
整数:int 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,布尔(bool)是整型的子类型。
# 例如: 1 、-258 、 36900 等等
浮点数:float 浮点型由整数部分与小数部分组成
# 例如:3.25 、 0.35
复数:complex 复数由实数部分和虚数部分构成
数字运算:+ - * / % 整除:// 幂:**
运算符 | 作用 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
// | 取整 只取相除后得整数 |
** | 幂 次方 |
赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 就是赋值,把右边的结果值给到左边 | a=1 、b = 2+3 |
+= | 加法赋值:把左边加上右边,结果在给左边 | a +=2 就等于 a = a + 2 |
-= | 减法赋值:把左边减去右边,结果在给左边 | a -= 3 等于 a = a-3 |
*= | 乘法赋值:把左边乘于右边,结果在给左边 | a *=2 等于 a = a * 2 |
/= | 除法赋值:把左边除于右边,结果在给左边 | a /= 5 等于 a = a / 5 |
//= | 取整除赋值:把左边除于右边的商给到 左边 | a // 6 等于 a = a // 6 |
%= | 取模赋值:把左边除于右边的余数给到 左边 | a %= 7 等于 a = a % 6 |
**= | 幂赋值:把左边幂右边 的结果 给到左边 | a **= 7 等于 a = a ** 7 |
逻辑运算符
运算符 | 描述 | 实例 |
---|---|---|
and | 且、与: 两边全部为真,才是真 | True and False = Fales |
or | 或: 只要有一边成立,则成立 | True or False = True |
not | 非 取反 | not False = True |
优先级
和数学中的运算符的优先级一致,在 Python 中进行数学计算时,同样也是:
先乘除后加减
同级运算符是 从左至右 计算
可以使用 () 调整计算的优先级
幂 (最高优先级) > 乘、除、取余数、取整除 > 加法、减法
数据转换
# 浮点数 转 int 会有精度损失
i = 2.3
prin(int(i))
>>> 2
布尔类型
True :真 也是int类型 1
False:假 也是int类型 0
注意:Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加 True== 1,False==0 是会返回 Ture,但可以通过 is 来判断类型。
练习:
bu = (a and b or c) and d or e
# c =False, a 和b 其中有一个False, d 是True, e 也是True
# 问bu 结果是什么
3.2 字符串(str)
3.2.1、字符串格式
python 字符串 单引号 或 双引号
'内容'
"内容"
常用得转义符:
:可以作为续行符,也可以反义
:换行
注:若想输出整个原始字符串 可以在字符串前面加r
print(r"hello
你好")
>>> hello
你好
字符串相加 + 结果是拼接
print("hello"+"world")
>>> helloworld
格式化输出
st1 = '我叫{},喜欢{}'.format('小明','打球')
print(st1)
>>> 我叫小明,喜欢打球
# 还有另一种 %s
st2 = "我叫%s,喜欢%s" %("刘备","江山")
print(st2)
>>> 我叫刘备,喜欢江山
字符串有很多的方法使用
转换类方法
方法 | 作用 |
---|---|
capitalize() | 将字符串的第一个字符转换为大写 |
center() | 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 |
encode() | 指定的编码格式编码字符串 |
join() | 用于将序列中的元素以指定的字符连接生成一个新的字符串 |
len() | 返回对象(字符、列表、元组等)长度或项目个数 |
ljust(width[, fillchar]) | 返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串 |
rjust(width[, fillchar]) | 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串 |
lower() | 转换字符串中所有大写字符为小写 |
upper() | 将字符串中的小写字母转为大写字母 |
lstrip() | 截掉字符串左边的空格或指定字符 |
rstrip() | 删除 string 字符串末尾的指定字符(默认为空格) |
split() | 通过指定分隔符对字符串进行切片 |
replace() | 方法把字符串中的 old(旧字符串) 替换成 new(新字符串)如果指定第三个参数max,则替换不超过 max 次 |
splitlines() | 按照行(' ', ' ', ')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 |
swapcase() | 用于对字符串的大小写字母进行转换 |
zfill() | 返回指定长度的字符串,原字符串右对齐,前面填充0 |
查询类方法
方法名 | 作用 |
---|---|
count() | 用于统计字符串里某个字符出现的次数 |
find() | 检测字符串中是否包含子字符串 str,如果找不到返回-1 |
rfind() | 返回字符串最后一次出现的位置,如果没有匹配项则返回-1 |
index() | 检测字符串中是否包含子字符串 str该方法与 find()方法一样,只不过如果str不在 string中会报一个异常 |
rindex() | 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常 |
验证类方法
方法名 | 作用 |
---|---|
startswith() | 用于检查字符串是否是以指定子字符串开头 |
endswith() | 用于判断字符串是否以指定后缀结尾 |
isalnum() | 检测字符串是否由字母和数字组成 |
isalpha() | 检测字符串是否只由字母或文字组成 |
isdigit() | 检测字符串是否只由数字组成,如果字符串只包含数字则返回 True 否则返回 False |
isnumeric() | 检测字符串是否只由数字组成,如果字符串中只包含数字字符,则返回 True,否则返回 False |
isspace() | 检测字符串是否只由空白字符组成 |
isdecimal() | 检查字符串是否只包含十进制字符 |
istitle() | 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写 |
isupper() | 检测字符串中所有的字母是否都为大写 |
islower() | 检测字符串是否由小写字母组成。 |
字符串还有很多其他操作详见:
https://www.cnblogs.com/niunai/p/10147621.html
https://www.runoob.com/python3/python3-string.html
http://c.biancheng.net/python/str_method/
3.3 列表(list)
在程序运行中,我们需要把数据暂时存储在一个容器里,我们知道 变量是可以存储数据,但是变量 只能存储单个数据,当你想存储多个数据 怎么办?
python 列表就可以存放各种数据类型 且是有序的集合 可以添加或删除元素,里面的每一个元素用英文 逗号 , 隔开,
用英文中括号 表示 []
# 定义一个数组 存储两个元素: 1,烟花 指向一个变量
li = [1,"烟花"]
print(li)
>>> [1, '烟花'] # 会把整个数组内容显示出来
列表的基本操作
添加元素
# 定义空的列表,添加 元素 台风烟花要来了
ls = []
print(ls)
# 添加 元素 台风烟花要来了
ls.append("台风烟花要来了")
print(ls)
# 追加 :数字 666
ls.append(666)
print(ls)
>>> []
>>> ['台风烟花要来了']
>>> ['台风烟花要来了', 666]
索引
列表中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推
查看元素
# 定义一个有值的列表,如下
lis = ['茅台','伊利','同仁堂','海天','云南白药','片仔癀','中新药业']
# 获取第一个元素值
print(lis[0])
# 获取 第二个到第五个之间的元素 ,可以看到列表区间取值包头不包尾
print(lis[1:5])
>>> 茅台
>>> ['伊利', '同仁堂', '海天', '云南白药']
更新元素
# 更新元素 列表 还如下
li1 = ['茅台','伊利','同仁堂','海天','云南白药','片仔癀','中新药业']
# 把第二个元素 更新为 烟花,
li1[1] = "烟花"
print(li1[1])
>>> 烟花
删除元素
# 删除元素 可以使用 del 来删除元素
li2 =['茅台','伊利','片仔癀','同仁堂']
# 删除 茅台
del li2[0]
print(li2)
# >>> ['伊利', '片仔癀', '同仁堂']
# 也可以使用 pop方法 在方法里传入你要删除的索引值 ,如果不传默认删除末尾的元素
li2.pop(1)
print(li2)
# >>> ['伊利', '同仁堂']
列表可以拼接 用 + 列表也可以嵌套
# 定义两个 列表
li3 = ['茅台','片仔癀']
li4 = ['伊利','同仁堂']
# 相加 赋值给 变量li5
li5=li3+li4
print(li5)
# 定义列表li6 包裹 li3和li4
li6 = [li3,li4]
print(li6)
>>> ['茅台', '片仔癀', '伊利', '同仁堂']
>>> [['茅台', '片仔癀'], ['伊利', '同仁堂']]
列表常见操作方法
方法 | 作用 |
---|---|
len(list) | 统计列表元素个数 |
max(list) | 求列表里的最大值 |
min(list) | 求列表里的最小值 |
list.count(obj) | 统计该元素在列表出现的个数 |
list.insert(index, obj) | 将该元素插入列表指定的索引位置 |
list.clear() | 清空列表里的元素 |
sort() | 对元素排序,默认升序,传入参数reverse=True 降序 |
3.4 元组(tuple)
元组和列表类似 不过 用 () 表示 且元组 是不能修改的 也就是一旦定义,就不能更改添加删除里面的元素
# 定义一个元组
tu = ('片仔癀','同仁堂')
print(tu)
# 查看元组第一个值
print(tu[1])
>>> ('片仔癀', '同仁堂')
>>> 同仁堂
# 因为元组是不可以更改 我们可以通过拼接来扩展
tu1 =('五粮液','伊利')
tu2 = tu+tu1
print(tu2)
>>> ('片仔癀', '同仁堂', '五粮液', '伊利')
# 可以用 del 删除整个元组
del tu2
print(tu2)
>>> NameError: name 'tu2' is not defined
注: 当元组里面只有一个值的时候 后面要加 英文 逗号
元组常使用的操作方法
方法 | 作用 |
---|---|
len(tuple) | 统计元组个数 |
max(tuple) | 返回元组里面最大值 |
min(tuple) | 返回元组里面最小值 |
3.5 集合(set)
集合也是一个装载数据的容器 他的里面的元素特点是 元素不能重复 且 是无序的 没有索引
使用 {} 表示 或 set() 创建一个空集合 必须用set() 因为空 {} 有其他数据占用
创建集合
# 定义一个集合
se = {'伊利','茅台'}
print(se)
se1 = set("片仔癀")
print(se1)
# 判断元素是否在集合
print('伊利' in se)
>>> {'伊利', '茅台'}
>>> {'癀', '仔', '片'}
>>> True
集合常使用的操作方法
方法 | 作用 |
---|---|
add() | 添加元素 |
update( x ) | 添加元素,参数可以是列表,元组,字典等 |
remove() | 删除指定的元素,元素不存在会报错 |
pop() | 随机移除一个元素 |
discard() | 移除指定元素,不存在不会报错 |
clear() | 清空所有的元素 |
3.6 字典(dict)
字典像一个双列 列表 她是键值对形式的出现 {’key':'value'} 且一个key 只对应一个value值,
key 不能重复且必须是不可变类型 ,值可以是任意对象
多个键值对以英文逗号隔开
# 定义一个字典
di = {'茅台':2000,"片仔癀":'400'}
print(di)
>>> {'茅台': 2000, '片仔癀': '400'}
# 给字典 添加一对 "伊利":35
di["伊利"] = 35
print(di)
>>> {'茅台': 2000, '片仔癀': '400', '伊利': 35}
# 修改字典里面的值,然后在根据键查看里面的值
di["茅台"] = 2500
print(di["茅台"])
>>> 2500
# 删除 一对键值
del di["伊利"]
print(di)
>>> {'茅台': 2500, '片仔癀': '400'}
# 删除整个字典
del di
print(di)
>>> NameError: name 'di' is not defined
字典 一些常用操作方法
方法 | 作用 |
---|---|
len(dict) | 返回字典键的数量 |
clear() | 删除字典全部元素 |
pop(key) | 删除指定的键值 |
popitem() | 随机返回并删除字典中的最后一对键和值。 |
get(key) | 获取指定键的值 |
setdefault(key, defaultvalue) | 获取指定键的值,如果键不存在则返回 值defaultvalue |
copy() | 复制一个字典返回 |
keys() | 返回字典里面所有的key ,以列表形式展示 |
values() | 返回字典里面所有的value值 ,以列表形式展示 |