一.基础知识
1.Python
Ⅰ.是什么
是一门编程语言
Ⅱ.能干嘛
目前Python在Web应用后端开发、云基础设施建设、DevOps、网络数据采集(爬虫)、自动化测试、数据分析、机器学习等领域都有着广泛的应用。
2.变量
Ⅰ.变量命名
- 硬性规则:
- 变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头。
- 大小写敏感(大写的
a
和小写的A
是两个不同的变量)。 - 不要跟关键字(有特殊含义的单词,后面会讲到)和系统保留字(如函数、模块等的名字)冲突。
Ⅱ.使用
代码
a=10;
b=2;
print(a+b);print(a*b);print(a-b);
print(a/b);print(a**b);
效果
12
20
8
5.0
100
Ⅲ.变量类型检测与转换
代码
a=10;
b=2.1;
c='askdfjjkadfs'
d=4+2j; #注意python只有j做复数单位
e=True;
print(type(a));print(type(b));print(type(c));
print(type(d));print(type(e));
效果
<class 'int'>
<class 'float'>
<class 'str'>
<class 'complex'>
<class 'bool'>
可以使用Python中内置的函数对变量类型进行转换。
int()
:将一个数值或字符串转换成整数,可以指定进制。float()
:将一个字符串转换成浮点数。str()
:将指定的对象转换成字符串形式,可以指定编码。chr()
:将整数转换成该编码对应的字符串(一个字符)。ord()
:将字符串(一个字符)转换成对应的编码(整数)。
3.运算符
Python支持多种运算符,下表大致按照优先级从高到低的顺序列出了所有的运算符,运算符的优先级指的是多个运算符同时出现时,先做什么运算然后再做什么运算。
运算符 | 描述 |
---|---|
[] [:] |
下标,切片 |
** |
指数 |
~ + - |
按位取反, 正负号 |
* / % // |
乘,除,模,整除 |
+ - |
加,减 |
>> << |
右移,左移 |
& |
按位与 |
^ \| |
按位异或,按位或 |
<= < > >= |
小于等于,小于,大于,大于等于 |
== != |
等于,不等于 |
is is not |
身份运算符 |
in not in |
成员运算符 |
not or and |
逻辑运算符 |
= += -= *= /= %= //= **= &= |= ^= >>= <<= |
(复合)赋值运算符 |
说明: 在实际开发中,如果搞不清楚运算符的优先级,可以使用括号来确保运算的执行顺序。
4.结构
Ⅰ.条件
结构
#结构1
if 条件:
语句;
#结构2
if 条件:
语句;
else:
语句;
#结构3
if 条件:
语句;
elif 条件:
语句;
:
:
:
else:
语句;
代码
"""
分段函数求值
3x - 5 (x > 1)
f(x) = x + 2 (-1 <= x <= 1)
5x + 3 (x < -1)
"""
temp=float(input('x=?'));
if x > 1:
y = 3 * x - 5
elif x >= -1:
y = x + 2
else:
y = 5 * x + 3
print('f(%.2f) = %.2f' % (x, y)) #格式化输入
效果
#实际输入而定
Ⅱ.循环
结构
#for-in
for 变量 in 迭代范围:
变量的变化;
#while
while 真假:
语句;
代码
"""
用for循环实现1~100之间的偶数求和
"""
sum=0
for i in range(1,101):
if i%2==0:
sum=sum+i;
print(sum);
效果
2550
range(101)
:可以用来产生0到100范围的整数,需要注意的是取不到101。range(1, 101)
:可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。range(1, 101, 2)
:可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。range(100, 0, -2)
:可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。
5.导入
说明
from(来自) 那个文件名 import(导入) 类或者函数
例子
from cat import Cat,people #从cat文件导入Cat和people类或者函数
from cat import * #从cat文件导入所有类
import cat #导入这个文件
实际应用
from random import choice #获取random的choice方法
二.常用数据结构
1.字符串
Ⅰ.首字母大写
代码
a='ni hao';
a.title();
效果
'Python Abc'
Ⅱ.全部大写或小写
代码
a='Wi Wao';
a.upper();
a.lower();
效果
'WI WAO'
'wi wao'
Ⅲ.删除空白
代码
a=' Python abc ';
a.strip(); #两头都删除空格
a.rstrip(); #删除后面空格
a.lstrip(); #删除前面空格
效果
'Python abc'
' Python abc'
'Python abc '
Ⅳ.练习
设计一个函数产生指定长度的验证码,验证码由大小写字母和数字构成。
代码
from random import choice
def main(code_len=10):
a='';
all_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
while code_len:
a=a+choice(all_chars);
code_len=code_len-1;
print(a);
main(4)
效果
#实际效果而定
2.列表
Ⅰ.列表的基本操作
是一个类似数组的容器,但是存东西的能力强大,访问方式通过索引的方式
索引
代码
a=[' Python ','c++','java'];
a[0];
a[-1];
a[-2]; #逆序索引也是可以的呀
a[0].strip();
效果
' Python '
'java'
'c++'
'Python'
修改
代码
a=[' Python ','c++','java'];
a[0]='c#';
a;
效果
['c#', 'c++', 'java'];
扩展
a=[' Python ','c++','java'];
a.append('php');
a;
效果
['Python', 'c++', 'java','php']
插入(按位置插入)
a=[' Python ','c++','java'];
a.insert(1,'php'); #注意插入的位置就是就是它最后所在位置
a;
效果
['Python', 'php', 'c++','java']
删除
del 可以删除变量或者元素,注意:del a直接把列表删除了。
代码
a=[' Python ','c++','java'];
del a[1];
a;
效果
['Python','java']
弹出任意位置元素
代码
a=[' Python ','c++','java','C#','php','html'];
a.pop(); #默认最后一个
a.pop(0);
a.pop(-1);
a;
效果
['c++','java','c#']
删除指定的字符
注意:只能删除一个,多个就循环
代码
a=[' Python ','html','html','C#','php','html'];
a.remove('html');
a.remove('html');
a
效果
[' Python ',C#','php','html']
Ⅱ.列表的组织
排序
注意:按照字母表排序,而且是根本性改变元组顺序
代码
a=[' Python ','html','html','C#','php','html'];
a.sort();
a;
效果
[' Python ', 'C#', 'html', 'html', 'html', 'php']
反转
代码
a=[' Python ','html','html','C#','php','html'];
a.reverse();
a;
效果
['html', 'php', 'C#', 'html', 'html', ' Python ']
长度
代码
a=[' Python ','html','html','C#','php','html'];
a.len();
a;
效果
6
Ⅲ操作列表
循环
代码
a=[' Python ','html','html','C#','php','html'];
for _ in a:
print(_);
效果
Python
html
html
C#
php
html
范围range(开始,结束,步长)
代码
for _ in range(1,10,2):
print(_);
效果
1
3
5
7
9
列表
代码
a=list(range(5));
a;
效果
[0, 1, 2, 3, 4]
应用
代码
a=[];
for i in range(1,30,2):
a.append(i**2);
a;
效果
[1, 9, 25, 49, 81, 121, 169, 225, 289, 361, 441, 529, 625, 729, 841]
常见计算(最大最小和还有和)
代码
a=[0, 1, 2, 3, 4, 1, 16, 49, 100, 169, 256, 361, 484, 625, 784];
min(a);
max(a);
sum(a);
效果
0
784
2855
列表解析(a=[变量 循环 条件])
代码
a=[t**2 for t in range(10) if t%2==1];
a;
效果
[1, 9, 25, 49, 81]
切片(划分子集)
代码
a=[0, 1, 2, 3, 4, 1, 16, 49, 100, 169, 256, 361, 484, 625, 784]
a[1:4];
a[4:]; #到末尾
a[:5]; #重开头开始
a[-3:]; #后3位
a[-3:-1] #不包括-1
效果
[1, 2, 3]
[4, 1, 16, 49, 100, 169, 256, 361, 484, 625, 784]
[0, 1, 2, 3, 4]
[484, 625, 784]
[484, 625]
3.元组
Ⅰ. 元组的基本操作
元组既是不可变得列表
索引和修改
代码
a=(' Python ','c++','java');
a[0];
a[-1];
a[-2]; #逆序索引也是可以的呀
a[0]=123; #修改是不被允许的
效果
' Python '
'java'
'c++'
'Python'
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
a[0]='123'
TypeError: 'tuple' object does not support item assignment
4.集合
Ⅰ.集合的创建
代码
#方式一
a={
1,2,3,2,3,1};
print(a);
print(len(a)); #集合没有重复元素
#方式二:放列表或者放元组
set([1,2,3,4,3,2,1]);
set((1,2,3,4,3,2,1));
效果
{
1, 2, 3}
3
Ⅱ.集合的操作
代码
a=set((1,2,3,3,2,1))