1.编程规范
1.1注释代码
注释一行在该行前加#
注释多行有两种方法
法1:'''注释代码部分'''
法2:"""注释代码部分"""
这是因为Python是不区分 " 和 ' 的
1.2程序块
在C语言中用{代码块}来区分的
在Python中用是否对齐来判别是不是一个块
1.3语句换行
语句太长需要换行,在程序末尾加上 \
1.4运算符
比较运算符与C相同
逻辑运算符: and(与) or(或) not(非)
1.5导库
Python是面向对象的编程很多函数是不需要我们来写的,想使用提供的函数,就得导入库或者函数
1.5.1导入整个库
import 库名
1.5.2导入库中的函数
导入库中一个函数
from 库名 import 函数
导入库中多个函数
from 库名 import 函数1,函数2,函数3
1.5.3导入整个库的函数
from 库名 import*
1.5.4给库改名
import 库名 as 新库名
2.语句
2.1判断语句
2.1.1if
if 条件:
if执行语句
2.1.2if else
if 条件:
if执行语句
else:
else执行语句
2.1.3if elif else
if 条件:
if执行语句
elif 条件:
elif执行语句
else:
else执行语句
2.2while循环语句
2.2.1while
while 循环条件:
循环执行
2.2.2while else
while 循环条件:
循环执行
else:
循环条件不成立执行
实例:
在循环执行过程中执行了break:
2.3for循环语句
2.3.1for
for 目标 in 源:
for遍历执行语句
迭代:
for num in range(10,20)#迭代10到20之间的数也就是循环了11次
2.3.2for else
for 目标 in 源:
for遍历执行语句
else:
for正常退出会执行
与while else循环 相同如果正常退出执行else,break退出不执行else。
for循环一般不作为循环功能使用,一般用于遍历某个变量
2.4循环嵌套
结合C用法是相同的。
2.5循环控制语句
break 结束循环
continue 结束本次循环执行下一次循环
pass 空语句,用于结构完整性
3.变量
3.1查看变量的类型
3.2数值类型
int,longinteger,float,复数类型
3.2.1类型转换
int(x)->将x转换为整型
float(x)->将x转换为浮点型
str(x)->将x转换为字符型
Python还提供了转换相关的函数供使用
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
函数 | 描述 |
---|---|
将x转换为一个整数 | |
将x转换到一个浮点数 | |
创建一个复数 | |
将对象 x 转换为字符串 | |
将对象 x 转换为表达式字符串 | |
用来计算在字符串中的有效Python表达式,并返回一个对象 | |
将序列 s 转换为一个元组 | |
将序列 s 转换为一个列表 | |
转换为可变集合 | |
创建一个字典。d 必须是一个 (key, value)元组序列。 | |
转换为不可变集合 | |
将一个整数转换为一个字符 | |
将一个字符转换为它的整数值 | |
将一个整数转换为一个十六进制字符串 | |
将一个整数转换为一个八进制字符串 |
3.2.2数学常量
pi->圆周率
e->数学常量e
3.3字符串
3.3.1访问字符串中的值
[ n ]->访问第n个
[n : m]->访问从第n个到第m-1个,左闭右开
in ->判断变量中是否含有该该变量,可以查看字符串,列表,元组等等
str1 = "hello"
if "h" in str1:
print("yes")
list1 = [1.2, 'hehe', 6]
if 1.2 in list1:
list1 = (1.2, 'hehe', 6)
if 1.2 in list1:
not in->和in用法相同
r/R->打印原始字符,打印\n会需要
print(r"hello\n")#不会换行,而是将\n以字符的形式打印
3.3.2字符串格式化
与C不同的是 ,变成%
print("%s %d"%("hehe",6))
3.4列表
3.4.1列表可以放任何类型的数据
list1 = [1.2, 'hehe', 6]
list2 = [4,5]
list1 = [1.2, 'hehe', 6, list2]
print(list1[3][0])//有点二维数组的感觉
输出结果为:4
3.4.2列表索引用
与字符串类似
3.4.3列表切片
与字符串类似
3.4.4列表添加新的元素
list1.append(x)#给链表添加一个x
3.4.5列表删除元素
del list1[n]#删除第n个元素
del list1[n : m]
del list1
注意删除是左闭右开原则。
3.5元组
元组的操作和列表操作相同
元组内的数据不可修改!
元组的括号是()
两个元组可以用+合并成一个新的元组
删除元组
del 元组
元组运算符
in(判断元组中是否含有)
+(合并元组)
内置函数
这些函数可以用于,字符串,列表,元组
len()->计算长度
max()->找其中的最大值,必须是内部全为同种数据
字符串与数无法比较
min()
taple()->将可带带系列转换为元组
3.6字典
什么是字典?
mydict = {'name':'张三','age':18}#创建一个非空字典
字典是用{},里边含有键值对,键和值用“:”隔开,键值对之间用“,”隔开
所以字典一般用于一个含有多个属性的对象!,一个字典内的键是唯一的不可重复(一个人不可能有两种性别吧)。值可以是任意的数据类型。
3.6.1创建字典
第一种直接创建
mydict = {'name':'张三','age':18}#创建一个非空字典
第二种使用dict()函数创建
mydict = dict()#创建一个空字典
list1 = [("x", 2),('y', 3)]
mydict2 = dict(list1)#创建一个非空字典
3.6.2访问字典里的值
字典[键]->这样我们就得到字典里键对应的值
mydict = {'name': '张三', 'age': 18}
print(mydict["name"])
输出结果:张三
怎样可以得到键里的所有值呢?
mydict = {'name': '张三', 'age': 18}
for x in mydict:
print(x)
这个代码是否可以呢?答案是NO,它只是将字典里的键进行遍历,因此我们可以这样操作
mydict = {'name': '张三', 'age': 18}
for x in mydict:
print(mydict[x])
除了上边的方式遍历Python还提供了内置相关函数供使用
3.6.3修改字典相关操作
修改键的值
mydict = {'name': '张三', 'age': 18}
mydict["name"] = "李四"
这样键name对应的值就改为了李四
添加键值对
mydict = {'name': '张三', 'age': 18}
mydict['sex'] = "man"
删除
删除键值对
del mydict['sex']#就可以删除这个键值对
删除字典
del mydict
清空字典
mydict.clear()
查看字典键的个数
len(mydict)
将键对应的值变为符串类型
str(mydict)
查看类型
type()
应用例程
for x in mydict:
print(type(str(mydict[x])))
<class 'str'>
<class 'str'>
进程已结束,退出代码0
for x in mydict:
print(type(mydict[x]))
<class 'str'>
<class 'int'>
进程已结束,退出代码0
3.6.4字典内置相关函数
序号 函数及描述
1 [dict.clear()] 删除字典内所有元素
2 [dict.copy()] 返回一个字典的浅复制
3 [dict.fromkeys()]创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4 [dict.get(key, default=None)] 返回指定键的值,如果键不在字典中返回 default 设置的默认值
mydict = {'name': '张三', 'age': 18}
print(mydict.get("name"))
输出:张三
print(mydict.get("name1"))
输出:None
print(mydict.get("name1",'未有这个键'))
输出:未有这个键
5 [key in dict] 如果键在字典dict里返回true,否则返回false
6 [dict.items()] 以列表返回一个视图对象
print(mydict.items())
输出:dict_items([('name', '张三'), ('age', 18)])
for key, value in mydict.items():
print(key, value)
输出:name 张三
age 18
7 [dict.keys()]返回一个视图对象
print(mydict.keys())
输出:dict_keys(['name', 'age'])
for key in mydict.keys():
print(key)
输出:name
age
8 [dict.setdefault(key, default=None)] 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9 [dict.update(dict2)]把字典dict2的键/值对更新到dict里
mydict1 = {'name': '张三', 'age': 18}
mydict2 = {'name': '张三', 'school': 'haha'}
mydict1.update(mydict2)
print(mydict1)
{'name': '张三', 'age': 18, 'school': 'haha'}
进程已结束,退出代码0
已经含有的不会重,没有的会载入。
10 [dict.values()] 返回一个视图对象
print(mydict.values())
输出:dict_values(['张三', 18])
11 [pop(key[,default])]l) 删除字典 key(键)所对应的值,返回被删除的值。
12 [popitem()] 返回并删除字典中的最后一对键和值。
3.7集合
集合(set)是一个无序不重复元素序列用{}括起来,与字典不同的是空集合的创建只能用函数set()来创建,这是为了避免与空字典创建时产生冲突
3.7.1集合创建
set创建错误用法
fruit2 = set("apple2","banana2","orange2")#错误写法
正确用法:
fruit1 = {"apple1", "banana1", "orange1"}
fruit2 = set("apple2""banana2""orange2")
print(fruit1)
print(fruit2)
{'apple1', 'orange1', 'banana1'}
{'r', 'b', 'l', 'n', 'o', 'a', 'e', '2', 'g', 'p'}
进程已结束,退出代码0
根据输出结果我们发现
1:set()创建他是不重复的,并且是无序的。
2:set()创建只能是多个字符,或者一个数字。()里面是不能带,的
3.7.2集合运算
集合A-集合B
集合A|集合B
集合A&集合B
集合A^集合B->集合AB不同时含有的元素
就是数学里的集合关系。
3.7.3集合的基本操作
添加元素
第一种:add()
fruit1 = {"apple1", "banana1", "orange1"}
fruit1.add("pear")
{'apple1', 'pear', 'orange1', 'banana1'}
第二种:update()
fruit1 = {"apple1", "banana1", "orange1"}
fruit1.update("pear")
{'banana1', 'p', 'r', 'e', 'apple1', 'a', 'orange1'}
观察两种方式就可以知道他们的区别是什么。
移除元素
方法1:remove()
fruit1 = {"apple1", "banana1", "orange1"}
fruit1.remove("apple1")
print(fruit1)
{'orange1', 'banana1'}
fruit1 = {"apple1", "banana1", "orange1"}
fruit1.remove("pear")
KeyError: 'pear'
只能移除已有的,移除未有的直接报错
方法2:discard()
fruit1 = {"apple1", "banana1", "orange1"}
fruit1.discard("pear")
{'orange1', 'apple1', 'banana1'}
有就移除,没有也不会报错
方法3:pop()
fruit1 = {"apple1", "banana1", "orange1"}
fruit1.pop()
{'banana1', 'orange1'}
每次运行可能结果都不同,随机删除集合一个元素
计算集合元素个数
print(len(fruit1))
清空集合
fruit1.clear()
判断元素集合是否含有
print('a' in fruit2)
3.7.4集合内置函数
方法 描述
[add()] 为集合添加元素
[clear()] 移除集合中的所有元素
[copy()] 拷贝一个集合
[difference()] 返回多个集合的差集
[difference_update()] 移除集合中的元素,该元素在指定的集合也存在。
[discard()] 删除集合中指定的元素
[intersection()] 返回集合的交集
[intersection_update()] 返回集合的交集。
[isdisjoint()] 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
[issubset()] 判断指定集合是否为该方法参数集合的子集。
[issuperset()] 判断该方法的参数集合是否为指定集合的子集
[pop()] 随机移除元素
[remove()] 移除指定元素
[symmetric_difference()] 返回两个集合中不重复的元素集合。
[symmetric_difference_update()]symmetric_difference_update.html) 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
[union()] 返回两个集合的并集
[update()] 给集合添加元素