Python基础知识
Posted OIqng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础知识相关的知识,希望对你有一定的参考价值。
前言
为什么学习Python?
Python 本身由于库丰富,所以功能极其强大,从后台开发 Flask、AI、数据分析、爬虫… 全部都游刃有余。Python 简单易学,没有复杂的逻辑关系,相比java、C、C++对于新手、非科班或者想学一门语言感受下编程的同学很友好。
Python环境、模块、软件官网
Python官网:https://www.python.org
Pypi官网:https://pypi.org
Pycharm官网:https://www.jetbrains.com/pycharm/download/#section=windows
一、搭建Python环境
1.1 安装好Python环境后检查Python版本
windows系统在命令窗口使用python -V或python --version,如下图
linux系统默认安装Python,下图为当前计算机默认使用python版本
1.2 在不同系统输出简单的python命令
希望这能给你python学习过程中带来好运
Windows系统下
Linux系统下
二、变量类型
2.1 变量(Variable)和常量(Constant)
变量:就是将一个值(信息)赋予(即赋值Assignment)变量且这个值可以改变。因此我们说Python是动态类型语言,即可以接受其他类型的数据。全局变量:在函数外部创建的变量
局部变量:只能在函数内部使用
print('Hello World')
message = 'Hello World'
print(message)
message = 'Hello! nice to meet you'
print(message)
2.1.1 变量命名规范
- 变量名只能包含字母、数字和下划线。变量名不能以数字开头
- 变量名不能包含空格,使用下划线来分隔其中的单词
- 区分大小写
- 不要将Python关键字和函数名用作变量名
- 变量名应见名知义
- 尽量使用小写的Python变量名
2.1.2 变量命名时的名称错误
当我们故意将message写成mesage时程序报错,Python解释器指出,文件study_python01.py的第5行存在名称错误,指出mesage未找到。这有两种情况:要么没赋值,要么拼写不正确。
print('Hello World')
message = 'Hello World'
print(message)
message = 'Hello! nice to meet you'
print(mesage)
Python数据类型
内置数据类型 | |
---|---|
文本类型 | str |
数值类型 | int, float, complex |
序列类型 | list, tuple, range |
映射类型 | dict |
集合类型 | set, frozenset |
布尔类型 | bool |
二进制类型 | bytes, bytearray, memoryview |
随机数
import random
print(random.randrange(1,10))
2.2 字符串(String)
在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号。
2.2.1 字符串的灵活性
字符串的灵活性可以使字符串中包含引号和撇号
print('I told my friend, "Python is becoming more and more popular!"')
print("One of Python's strengths is its diverse and supportive community")
2.2.2 使用方法修改字符串的大小写
方法是Python可对数据执行的操作。在title()中,变量后面的句点(.)让Python对变量执行方法title()指定的操作(title()以首字母大写的方式显示每个单词)。每个方法后面都跟着一对括号,这是因为方法通常需要额外的信息来完成其工作。这种信息是在括号内提供的。函数title()不需要额外的信息,因此它后面的括号是空的。
message='python java c c++'
print(message)
print(message.title())
将字符串改为全部大写或全部小写,可以使用方法upper()和方法lower()
message='Python Java C C++'
print(message.upper())
print(message.lower())
2.2.3 合并(拼接)字符串
在下面这种情况,姓和名分别存储在不同变量之中当我们需要获取姓名时可以使用加号将其合并。只能使用加号来连接字符串吗?并不是,还可以使用逗号当我们使用逗号替换加号来合并字符串时会添加空格,使用时注意两者区别。
first_name='Allen'
last_name='williams'
full_name = first_name + ' ' + last_name
print('Hello, ' + full_name.title() + '!' )
print('Hello, ' , full_name.title() , '!' )
2.2.4 使用制表符和换行符来添加空白使代码更易读
在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。
print('python')
print('\\tpython')
print("Languages:\\nPython\\nC\\njavascript")
print("Languages:\\n\\tPython\\n\\tC\\n\\tJavaScript")
2.2.5 Python转义字符
转义字符 | 描述 |
---|---|
\\(在行尾时) | 续行符 |
\\\\ | 反斜杠符号 |
\\’ | 单引号 |
\\" | 双引号 |
\\a | 响铃 |
\\b | 退格(Backspace) |
\\000 | 空 |
\\n | 换行 |
\\v | 纵向制表符 |
\\t | 横向制表符 |
\\r | 回车,将 \\r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \\r 后面的内容完全替换完成 |
\\f | 换页 |
\\yyy | 八进制数,y 代表 0~7 的字符,例如:\\012 代表换行 |
\\xyy | 十六进制数,以 \\x 开头,y 代表的字符,例如:\\x0a 代表换行 |
\\other | 其它的字符以普通格式输出 |
2.2.6 Python字符串运算符
下表实例变量 a 值为字符串 “Hello”,b 变量值为 “Python”:
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | a + b 输出结果: HelloPython |
* | 重复输出字符串 | a*2 输出结果:HelloHello |
[ ] | 通过索引获取字符串中字符 | a[1] 输出结果 e |
[ : ] | 截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的 | a[1:4] 输出结果 ell |
in | 成员运算符—— 如果字符串中包含给定的字符返回 True | ‘H’ in a 输出结果 True |
not in | 成员运算符—— 如果字符串中不包含给定的字符返回 True | ‘M’ not in a 输出结果 True |
r/R | 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符 | print( r’\\n’ ) print( R’\\n’ ) |
% | 格式字符串 |
2.2.7 python字符串格式化符号
符号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
2.2.8 删除空白
在不看代码的情况下,有无空白对于我们来说都是一样。但对于程序来说就是两个字符串,所以删除空白就显得很有必要。如下图:
Additional_blanks='blank'
print(Additional_blanks)
print(Additional_blanks == 'blank')# 与‘blank’进行比较相同返回True
Additional_blanks='blank '
print(Additional_blanks)
print(Additional_blanks == 'blank')
print(Additional_blanks.rstrip()) # 删除字符串末尾空格
print(Additional_blanks.rstrip() == 'blank')
我们可以使用方法lstrip()、rstrip()和strip()删除字符串开头、末尾和两端的空白
Additional_blanks=' blank '
print(Additional_blanks.lstrip())
print(Additional_blanks.lstrip() == 'blank')
print(Additional_blanks.rstrip())
print(Additional_blanks.rstrip() == 'blank')
print(Additional_blanks.strip())
print(Additional_blanks.strip() == 'blank')
2.2.9 使用字符串时的语法错误
当我们将‘包含在两个单引号之间时Python将无法确认字符串的结束位置
print('One of Python's strengths is its diverse and supportive community')
2.2.10 使用函数str()类型是的类型错误
当使用下面代码时Python不知道如何解读这个18,需要调用函数str(),告诉Python将非字符串值表示为字符串
age = 18
print('Happy ' + 18 + 'th birthday')
age = 18
print('Happy ' + str(18) + 'th birthday')
2.3 数字(Number)
2.3.1 整数(Int)
2.3.2 浮点数(float)
Python将带小数点的数字都称为浮点数。浮点数也可以使用科学计数法表示(3.14e2 = 3.14 x
1
0
2
10^2
102 = 314)
2.3.3复数 (complex)
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
2.3.4 Python 数字类型转换
int(x) 将x转换为一个整数。
float(x) 将x转换到一个浮点数。
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
2.3.5 数学函数
函数 | 返回值 ( 描述 ) |
---|---|
abs(x) | 返回数字的绝对值,如abs(-1) 返回 1 |
ceil(x) | 返回数字的上入整数,如math.ceil(4.01) 返回 5 |
exp(x) | 返回e的x次幂(ex),如math.exp(2) 返回7.38905609893065 |
fabs(x) | 返回数字的绝对值,如math.fabs(-1) 返回1.0 |
floor(x) | 返回数字的下舍整数,如math.floor(4.99)返回 4 |
log(x) | 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
log10(x) | 返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
max(x1, x2,…) | 返回给定参数的最大值,参数可以为序列 |
min(x1, x2,…) | 返回给定参数的最小值,参数可以为序列 |
modf(x) | 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示 |
pow(x, y) | x**y 运算后的值 |
round(x [,n]) | 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数其实准确的说是保留值将保留到离上一位更近的一端。 |
sqrt(x) | 返回数字x的平方根 |
2.3.6 随机数函数
函数 | 描述 |
---|---|
choice(seq) | 从序列的元素中随机挑选一个元素 |
randrange ([start,] stop [,step]) | 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 |
random() | 随机生成下一个实数,它在[0,1)范围内 |
seed([x]) | 改变随机数生成器的种子seed |
shuffle(lst) | 将序列的所有元素随机排序 |
uniform(x, y) | 随机生成下一个实数,它在[x,y]范围内 |
2.3.7 三角函数
函数 | 描述 |
---|---|
acos(x) | 返回x的反余弦弧度值 |
asin(x) | 返回x的反正弦弧度值 |
atan(x) | 返回x的反正切弧度值 |
atan2(y, x) | 返回给定的 X 及 Y 坐标值的反正切值 |
cos(x) | 返回x的弧度的余弦值 |
hypot(x, y) | 返回欧几里德范数 sqrt(xx + yy) |
sin(x) | 返回的x弧度的正弦值 |
tan(x) | 返回x弧度的正切值 |
degrees(x) | 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0 |
radians(x) | 将角度转换为弧度 |
2.4 Python运算符
2.4.1 Python算术运算符
设a=3,b=2:
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | a+b输出5 |
- | 减 | a-b输出1 |
* | 乘 | a*b输出6 |
/ | 除 | a/b输出1.5 |
// | 整除 | a//b输出1 |
% | 取余 | a%b输出1 |
** | 乘方 | a**b输出9 |
2.4.2 Python比较运算符
设变量a为3,变量b为2
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 | (a == b) 返回 False |
!= | 不等于 | (a != b) 返回 True |
> | 大于 | (a > b) 返回 True |
< | 小于 | (a < b) 返回 False |
>= | 大于等于 | (a >= b) 返回 True |
<= | 小于等于 | (a <= b) 返回 False |
2.4.3 Python赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值运算符 | c = a + b将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
2.4.4 Python位运算符
设变量a为3,变量b为2
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 2 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1 | (a | b) 输出结果 3 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 1 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 | ~x 类似于 -x-1 (~a ) 输出结果 -4 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0 | a << 2 输出结果 12 |
>> | 右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数 | a >> 2 输出结果 0 |
2.4.5 Python逻辑运算符
设变量 a 为 3, b为 2
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" ——如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值 | (a and b) 返回 2 |
or | x or y | 布尔"或" —— 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值 | (a or b) 返回 3 |
not | not x | 布尔"非" ——如果 x 为 True,返回 False 。如果 x 为 False,它返回 True | not(a and b) 返回 False |
2.4.6 Python成员运算符
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False | x 在 y 序列中 , 如果 x 在 y 序列中返回 True |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True |
2.4.7 Python身份运算符
身份运算符用于比较两个对象的存储单元
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False |
2.5.1 注释
单行注释用井号(#)表示。井号后面的内容都会被Python解释器忽略。
# 你好!朋友
print('Hello! Friend')
多行注释用三个单引号或三个双引号表示。
'''
你好!朋友
print('Hello! Friend')
'''
2.5.2 print()函数
print函数有5个参数,sep为分隔符参数,默认值是空格;end为字符串结束符号,默认值是换行符;file为输出文件参数,默认值sys.stdout是标准输出,即控制台;flush为是否刷新文件输出流缓冲区,默认不刷新。
# 字符串结束符号之间的区别,默认为换行符
print('black', 'white')
print('black', 'white', end=',')
print('black', 'white')
# 分割符之间的区别:默认为空格
print('black', 'white')
print('black', 'white', sep='|')
2.5.3 input()函数
函数input()获取用户输入信息。当你使用函数input()时,应该准确地指出你希望用户提供什么信息。
age = input("How old are you?")
print(age)
2.6 条件、循环及其他语句
2.6.1 If语句
a = 6
b = 3
if a > b:
print("正确")
else:
print("错误")
2.6.2 For 循环
for x in range(10):
print(x)
2.6.3 while循环
while循环只要你愿意我可以一直运行,如下面代码中的i<10时将不停打印i的值直到i=10,即while后的条件成立时一直运行。
i = 1
while i < 10:
print(i)
i += 1
2.6.4 Break语句
当我想打印到5就停止时可以使用break不在执行余下代码,退出循环。
i = 1
while i < 10:
if i == 6:
break
else:
print(i)
i += 1
2.6.5 Continue语句
当我就想打印1~10里面的奇数时可以使用continue
i = 0
while i < 10:
i += 1
if i % 2 == 0:
continue
print(i)
三、列表、元组、字典
3.1 列表List
列表就是一些值的有序集合,在Python中,我们用方括号[ ]来表示列表,并用逗号来分隔其中的元素。
colors = ['red', 'blue', 'green', 'black', 'white']
print(type(colors))
3.1.1 访问列表元素
列表是有序集合,因此只需将该元素的位置或索引告诉Python。列表的开头第一个列表元素索引是从0开始的,最后一个列表元素则是-1开始。
colors = ['red', 'blue', 'green', 'black', 'white']
print(colors[0])
print(colors[1])
print(colors[-1])
print(colors[-2])
3.1.2 修改列表元素
要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。
colors = ['red', 'blue', 'green', 'black', 'white']
print(colors)
colors [0] = 'brown'
print(colors)
3.1.3 在列表中添加元素
使用方法append()在列表末尾添加元素
colors = ['red', 'blue', 'green', 'black', 'white']
print(colors)
colors.append('brown')
print(colors)
使用方法insert()并指定新元素的索引和值即可在列表的任何位置添加新元素
colors = ['red', 'blue', 'green', 'black', 'white']
print(colors)
colors.insert(1, 'brown')
print(colors)
3.1.4 从列表中删除元素
知道其索引使用del删除任何位置的列表元素,且使用del删除不再以任何方式使用它。
colors = ['red', 'blue', 'green', 'black', 'white']
print(colors)
del colors[0]
print(colors)
方法pop()可删除列表末尾的元素,且在删除元素后还能继续使用它。
colors = ['red', 'blue', 'green', 'black', 'white']
print(colors)
print(colors.pop())
print(colors)
print(colors.pop(0))
print(colors)
使用方法remove()根据值删除元素
colors = ['red', 'blue', 'green', 'black', 'white']
print(colors)
colors.remove('green')
print(colors)
3.1.5 使用方法 sort()对列表进行永久性排序
使用方法sort()时下面按字母顺序排列,且永久性地修改了列表元素的排列顺序。
colors = ['red', 'blue', 'green', 'black', 'white']
print(colors)
colors.sort()
print(colors)
colors.sort(reverse=True)
print(colors)
3.1.6 使用函数 sorted()对列表进行临时排序
函数sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
colors = ['red', 'blue', 'green', 'black', 'white']
print(colors)
print(sorted(colors))
print(colors)
3.1.7 使用方法reverse()反转列表元素的排列顺序
reverse()不是指按与字母顺序相反的顺序排列列表元素,而是反转列表元素的排
列顺序
colors = ['red', 'blue', 'green', 'black', 'white']
print(colors)
colors.reverse()
print(colors)
3.1.8 函数len()获取列表的长度
colors = ['red', 'blue', 'green', 'black', 'white']
print(len(colors))
3.1.9 使用列表时的索引错误
当使用以下代码时,列表索引超出列表范围时的错误提示:
colors = ['red', 'blue', 'green', 'black', 'white']
print(colors[5])
当列表不包含元素时,python返回索引报错
weather = []
print(weather[1])
3.1.9 遍历列表
下面使用for循环遍历列表并打印所有颜色
colors = ['red', 'blue', 'green', 'black', 'white']
for color in colors:
print(color)
3.1.10 缩进
python最具特色的就是使用缩进来表示代码块,同一个代码块的语句必须包含相同的缩进空格数。
3.1.11 数字列表
使用range()产生从第一个数到第二个数之间的数字(不包含第二个数的值)
numbers = list(range(1,10))
print(numbers)
简单的统计计算
numbers = list(range(1,10))
print(min(numbers))# 打印列表最小值
print(max(numbers))# 打印列表最大值
print(sum(numbers))# 打印列表总和
3.1.12 切片
所谓切片就是和range()一样,指定始索引和终止索引来创建切片。
numbers = list(range(1,10))
print(numbers[0:3])
print(numbers[:])# 输出整个列表
print(numbers[2:])# 没有终止索引输出从特定位置到列表末尾的所有元素
print(numbers[:5])# 没有始索引输出从头开始
常用python日期日志获取内容循环的代码片段