python基础-Let’s一起来复习吧!
先来了解下几个概念:
-
首先,python是一种编程语言,那么什么是编程语言呢?—.> 答案是 用来定义计算机程序的形式语言,即简单来说就是 人类与计算机进行交流的语言。
-
python有什么优缺点呢?
优点:python是一门 简单、易学、免费开源、高层语言、可移植性、可拓展性强、面向对象的解释性语言并且包含了丰富的库。代码规范采取强制缩进,因此可读性强。
缺点:执行效率慢,解释型语言都普遍存在的。(想知道原因吗?—>瞅瞅看) -
应用场景:
web应用开发、操作系统管理、服务运维的自动化脚本、网络爬虫、科学计算、桌面软件、服务器软件、游戏、产品迭代。
开始😁
注释
why? 为了给某些代码进行批注,增强程序可读性。
单行注释---> #
多行注释--->''' '''
变量及类型(type)
变量就是用来存储数据的一个容器;
变量类型有:数字(Numbers)、布尔(boolean)、字符串(String)、列表(List)、元组(Tuple)、字典(Dictionary);其中数字包括int、long、float、complex;布尔包括True、False。
标识符和关键字
标识符是由字母、数字、下划线 构成的,且数字不能 开头。不能使用关键字和内置函数名,区分大小写。
命名规则:遵循PEP8标准,有小驼峰、大驼峰、下划线 式命名法。
关键字是一些具有特殊功能的标识符,python内部已经在使用的,开发者不可重名。可通过查看
>>> import keyword
>>> keyword.kwlist
输入输出
输入:input()
输出:print() --->格式化输出 % \ 换行输出:\n
常用的有:%s 字符串、%d 整数输出
运算符
算数运算符(+、-、*、/、//、%、**)、赋值运算符(=)、复合赋值运算符(+=...)
判断语句
**if判断语句**
if 要判断的条件:
条件成立时,要做的事情
-----------------------------
if 条件:
执行语句
else:
否则
-----------------------------
if 条件:
执行语句
elif 条件:
执行语句
else:
否则
比较(关系)运算符
**==、!=、>、<、>=、<=**
逻辑运算符
**and、or、not**
if嵌套
if 条件1:
满足条件1 做的事情1
满足条件1 做的事情2
if 条件2:
满足条件2 做的事情1
满足条件2 做的事情2
循环
i = 0
while i < 10000:
print("媳妇儿,我错了")
i += 1
----------------------------------
while 条件:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
------------------------------------
计算1-100之间的偶数累计和:
i = 1
sum = 0
while i <= 100:
if i % 2 == 0:
sum = sum + i
i+=1
print("1~100的累积和为:%d" % sum)
------------------------------------
while嵌套的格式
while 条件1:
条件1满足时,做的事情1
条件1满足时,做的事情2
条件1满足时,做的事情3
...(省略)...
while 条件2:
条件2满足时,做的事情1
条件2满足时,做的事情2
条件2满足时,做的事情3
...(省略)...
-------------------------------------
九九乘法表
i = 1
while i<=9:
j=1
while j<=i:
print("%d*%d=%-2d " % (j, i, i*j), end = '')
j+=1
print('\n')
i+=1
break 和 continue
在循环体中,break结束当次(最近的一层)循环;continue跳过当次循环
for循环
for 临时变量 in 列表或者字符串等可迭代对象:
循环满足条件时执行的代码
字符串
1.含义:双引号或者单引号中的数据,就是字符串
2.字符串输出输入同上
3.下标(索引)和切片:
str = “h e l l o w o r l d”
下标 0 1 2 3 4 5 6 7 8 9
#切片的语法:[起始:结束:步长] 包括起始位,不包括结束位
字符串、列表、元组都支持切片操作
字符串反转 [::-1]
字符串常见操作
find :查找元素下标--->找不到 返回-1
index :查找元素下标 ---> 产生异常
count :元素出现次数
replace :替换
split :分隔符
capitalize :首字符大写
title :每个单词首字母大写
join :构造字符串
......
列表
列表循环
for:
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
for name in namesList:
print(name)
while:
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
length = len(namesList)
i = 0
while i<length:
print(namesList[i])
i+=1
列表相关操作:
1. 添加元素(append、extend(拆分添加)、insert(插入添加))
2. 修改 `list =['hello world'] --->list[0] = 'A' --->'Aello world'`
3. 查找 (in, not in, index, count)
4. 删除 (del, pop, remove)
列表元素的常用删除方法有:
del:根据下标进行删除
pop:删除最后一个元素
remove:根据元素的值进行删除
5.排序(sort,reverse)
元组
元组是不能修改的,并且不能删除,可查
>>> a = ('a', 'b', 'c', 'a', 'b')
>>> a.index('a', 1, 3) # 注意是左闭右开区间
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: tuple.index(x): x not in tuple
>>> a.index('a', 1, 4)
3
>>> a.count('b')
2
字典
字典是 {key:value} 的格式通过key去进行操作
info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
print(info['name']) # 查看 name 值 班长
info['name'] = '小兵' # 修改
info['age'] = 18 # 添加
del info['sex'] # 删除
info.clear() # 清空字典
其他常见操作
1. 查看字典长度(个数)---> len()
2. 以列表的形式返回所有key ---> keys()
3. 以列表形式返回所有值 ---> values()
4. 以列表包含元组的形式返回所有的键值对 ---> items()
遍历
for...in...
字符串、列表、元组、字典都可进行遍历
其中字典可以有多种遍历的方式
dict = {"name":“xiaoming”,"age":"18"}
- keys() 通过键遍历
for key in dict.keys():
- values() 通过值遍历
for value in dict.values():
- items() 通过元素遍历
for item in dict.items(): 元组的形式
- key,value通过键值对遍历
for key,value in dict.items(): key=value的形式
- 带下标的遍历形式
>>> chars = ['a', 'b', 'c', 'd']
>>> for i, chr in enumerate(chars):
... print i, chr
...
0 a
1 b
2 c
3 d
公共方法
运算符:
+ 合并 ---> 字符串、列表、元组;
* 复制 ---> 字符串、列表、元组;
in 在 ---> 字符串、列表、元组、字典;
not in 不在---> 字符串、列表、元组
python内置函数
cmp() 比较 字典-->先比key再比值;
len() 比较个数;
max() 比较最大值;
min() 比较最小值;
del()/del 删除变量;
函数
def test(a,b): # 定义test 函数名 传入形参
c=a+b # 编写内容
print(c)
test(1,2) # 调用 传入实参
函数返回值类型
- 无参数,无返回值
def print():
print('---无参无返回---')
print()
- 无参、有返回值
def print():
return 1
print()
- 有参、无返回值
def print(a):
print("--有参无返回--")
print(1)
- 有参有返回值
def print(a,b):
num = a+b
return num
print(1,2)
函数的嵌套
含义:一个函数中嵌套了另一个函数
作用域:
在一个函数中定义的变量,只能在本函数中用(局部变量)
在函数外定义的变量,可以在所有的函数中使用(全局变量)
注意:在同一函数中,当局部变量和全局变量重名时,以局部为主。
可变不可变类型
可变类型有: 列表、字典、集合
不可变类型有: 数字、字符串、元组
函数参数
1. 缺省参数 --->有默认值的
2. 不定长参数 --->加 * args的 以元组形式
加 ** kwargs的 以字典形式
3. 顺序
位置参数、*args,缺省参数、**kwargs
拆包
def get_my_info():
high = 178
weight = 100
age = 18
return high, weight, age # 保证拆包接收的数据和变量数一致
my_high, my_weight, my_age = get_my_info()
交换2个变量的值
1. a = 4 b = 5 c = 0
c = a a = b b = c
2. a = 4 b = 5
a = a + b a = 9,b = 5
b = a - b a = 9,b = 4
a = a - b a = 5,b = 4
3. a , b = 4 , 5
a , b = b , a
引用
变量的内存引用地址
# 数字是不可变类型内存引用地址是不变的
a = 1
b = a
id(a) #13033816
id(b) #13033816
# 列表可变类型的内存指向地址是不发生改变的
>>> a = [1, 2]
>>> b = a
>>> id(a)
139935018544808
>>> id(b)
139935018544808
>>> a.append(3)
>>> a
[1, 2, 3]
>>> id(a)
139935018544808
>>> id(b) # 注意a与b始终指向同一个地址
139935018544808
1. Python中函数参数是引用传递(注意不是值传递)
2. 对于不可变类型,因变量不能修改,所以运算不会影响到变量自身
3. 而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量
递归函数
函数在内部自己调用自己就是递归函数
递归函数
def calc(num):
if num = 1:
result = 1
else:
result = num * calc(num-1)
return result
ret = calc(5)
print(ret)
匿名函数
用lambda关键词创建的小型匿名函数
lambda 参数1,参数2:表达式