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:
运算符 | 描述 | 实例</ |
---|