Skip to content

基础知识

python是一种动态语言,支持交互式编程、面向对象编程和函数式编程,是一种面向对象的解释型计算机程序设计语言,能够把其他语言制作的各种模块结合在一起

计算机只能识别机器语言,不能识别我们的python代码,我们需要python的解释器来将python语言翻译成机器语言,如python3.8.9版本,这个就是解释器

cmd中可以直接执行python.py文件,但是要确保在该文件的路径下,通过命令python xxx.py执行

可以在打开文件的资源管理器上部的路径中直接输入cmdcmd打开的窗口路径就在该文件的路径下


注释

注释可以提高代码的可读性,提高代码开发效率

python中单行注释用#(可以用ctrl+/快捷键添加注释)号,#号右边就是注释的内容

python中多行注释使用三个单引号'''内容'''或者三双引号“”“内容“”“


模块的导入和 import的使用

math为例:math用于数学运算

全部导入

  • import math
  • from math import * 导入标准库math中所有对象

部分导入

只导入模块中的指定对象(较快的访问速度)

  • form math import sin
  • 给导入的对象起个别名:form math import sin as f

import math具体使用

数据运算(math)使用时要导入数据运算方法,引用时要加上math.

名称描述
math.piπ的值
math.e自然常数e的值
math.sin()sin函数
math.gcd()最大公约数
math.pow(x,y)返回xy次方
math.sqrt(x)返回x的平方根
math.fabs(x)返回x的绝对值
math.divmod(x,y)返回xy的商和余数
math.logn(x)返回以n为底的对数,如果省略则表示以e为底

import random具体使用

要先引入一个函数库:import random

名称描述
random.choice(t)t这个列表里面随机找出一个元素
random.random()在0-1里面找出随机的浮点数
random.randint(1,100)在1-100里面找出随机的整数,[1,100]
random.randrange(1,100)返回[1,100)区间中随机的整数
random.shuffle(t)将序列的所有元素随机排序

random.shuffle(t) 具体使用:

py
import random
t = [1,5,3,4,6,2];
random.shuffle(t)
print(t)   # 得到:[1,3,4,6,2,5]

import datetime具体使用

要先引入一个函数库:import datetime

名称描述
datetime.date表示日期类
datetime.datetime表示日期时间类
datetime.date.today()用于获取当前的日期,返回格式为YYYY-mm-dd
datetime.timedelta()表示两个时间之间的时间差,两个date或者datetime

对象相减时可以返回一个timedelta对象。days=n用于实现加n天或者减n天的操作

strftime()函数接收时间元组,并返回可读字符串表示的时间,格式由参数format决定

在计算机中有两个时间的概念:

  • 硬时间:主板的晶振
  • 软时间:操作系统的时间

变量和命名规则

变量就是一个盒子(容器),里面可以装任何东西,变量不仅仅是数字,还可以是其他任何数据类型,变量是一段有名字的存储空间,可以通过定义变量来申请并命名这样的存储空间,并通过变量的名字来使用这段空间,变量是临时存放数据的场所,先定义变量,然后在使用变量

变量定义规则:变量名 = 数据(值) 变量可以重复赋值,使其值发生变化,在程序执行中可以改变

  • python在变量赋值时,不需要指定数据类型,给这个变量赋什么类型的值,这个变量就是什么数据类型,这个是pytohn相比其他语法的不同之处
  • 变量必须以字母(a-z,A-Z)或者下划线(_)开头,其他字符可以是字母,数字或下划线,变量区分大小写,Python不能用关键字命名,相关关键字如下:
  • Python预先定义了一部分有特定含义的单词,用于语言自身使用,不可以把关键字作为自定义名称来使用
  • 变量命名需要有以下的命名规范:见名知意,尽量用有语义的单词进行命名
  • 书写可以用小驼峰命名法(userName);大驼峰命名法(UserName);下划线命名法(user_name

基本数据类型

基本数据类型:整形,浮点型,复数,布尔类型

Python中提供了type()函数方便我们查看相关变量的数据类型

整形

整形(int)数字没有范围(这点与C语言不同),可正可负,为十进制

​ 若想要表示其他进制则加一个前导符:

  • ​ 二进制:前导符0b0B 0b10 为十进制2 bin(a)将十进制a转化为二进制
  • ​ 八进制:前导符0o0O 0o10 为十进制8 oct(a)将十进制a转化为八进制
  • ​ 十六进制:前导符0x0X 0x10 为十进制16 hex(a)将十进制a转化为十六进制

浮点型

浮点数(float)小数 取值范围和精度是有限制的,可以是小数表示,可以是科学计数法表示:小数:1.23 -9.01;科学计数法:1.23e9 1.2e-5 e后面必须是整形且不能带空格 浮点数运算存在不确定尾数,可能会有误差,如:0.1+0.2=0.300000000000004 可以用round()函数解决:round(0.1+0.2,2) 最后的2表示保留两位小数

补充:round(x,n)返回浮点数x的四舍五入值,n代表舍入到小数点后的位数 如round(3.67,1) 得到3.7

复数

复数(complex)有实部和虚部两部分组成,虚部用j表示 可以用complex()函数完成: a=complex(1,2) 1表示实部,2表示虚部,或者直接输入a=1+2j

布尔型

布尔值:True False 逻辑运算结果为布尔值,注意大小写要区分 条件判断时,下面的几种情况会被认为是False

  • 为0的数字,包括0,0.0;
  • 空字符串' ',"";表示空值的None;空集合,包括空元祖(),空序列[],空字典{};

其他的值都为True


运算符及其优先级

算数运算符

符号描述
+加法
-减法
*乘法
**指数
/浮点数除法(100/5 = 20.0)
//整数数除法(整除数轴上向左取整)(100//5=20)(3//2=1)(-3//2=-2)
%模(求余) (9%4 =1)

赋值运算符

符号描述
=幅值运算符,将右边的值赋给左边的变量
+=加法幅值运算符 a += 5 等价于 a = a + 5
-=减法幅值运算符
*=乘法幅值运算符
/=除法幅值运算符
%=取模幅值运算符
**=幂幅值运算符
//=取整幅值运算符

a,b = 10,5 同时进行按顺序赋值

比较运算符

符号描述
==等于
!=不等于
>大于
<小于
>=大于等于
<=小于等于

比较运算符返回bool类型的数据

Python中是可以使用1<x<3这种形式的, 1<3<5等价于1<3and3<5

逻辑运算符

符号描述
x and y只要一个为False,那么结果为False
x or y只要一个为True,那么结果为True
not x结果与逻辑量相反

短路原则: 在与运算发现第一个为False时,就不会计算后面的表达式了,直接出结果,否则返回后面的值 如a=10,b=20 a and b 返回20 在或运算发现第一个为True时,就不会计算后面的表达式了,直接出结果,否则返回后面的值 如a=10,b=20 a or b 返回10 所有的非0值,我们作为真的逻辑量,只有0表示假逻辑量

优先级

高到低:正负—幂—乘,除,取模—加减—比较—逻辑否—逻辑与—逻辑或 只有幂的结合性是从右往左的:2**3**2=2**9=512


标准输入输出

标准输入函数input()

输入函数:input():可以从键盘中读入一个字符串。

input()输入的是字符串,后面要数值计算的话要先类型转化为整形

无论输入是数字还是字符串,input()函数都返回字符串,即age的数据类型为string类型 ​如果想使用数字进行计算,则要对字符串进行强制类型转换,否则会引起异常。 ​如果需要其他类型的数值,则需要强制类型转换,如想要读入一个整数:a = int(input()) ​如果想要输入多个值在同一行实现:a,b = input().split() ​加入提示语:如,n= int(input("请输入一个整型值N:"))

标准输出函数print()

输出函数:print(): 输出整形值,如print(a) print(a,b)print()函数会默认作为换行符结束,改成print(i,end='') 就可以以行输出,''中间表示距离。

语法格式:

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

  • value, ...:表示输出的对象,可以输出多个对象,需要用逗号分隔。
  • sep:分隔符,默认以空格分隔。
  • end:结束换行符。用来设定以什么结尾,默认值为换行符“\n”。\n 表示换行符
  • file:打印的目的对象,默认为标准输出(可以改为其他类似文件的对象)
  • flush:是否立即输出到file指定的流对象中。

print() 表示换行,自带换行的效果

格式化输出
格式化占位符:%—formatting输出

%是占位符,后面跟着的是要打印变量的类型

格式符号描述
%c 格式化字符及其ASCII码
%s格式化字符串
%d 格式化十进制整数
%u格式化无符号整数
%o格式化八进制整数
%x格式化十六进制整数
%f格式化浮点数,可以指定小数精度,默认保留六位
%e格式化浮点数,用科学计数法
%8d右对齐
%-8d左对齐
%.2f结果保留两位小数
%8.3f设定宽度保留三位小数

例如:

  • print("%fasdf %ewfs"%(a,b)) 一个萝卜一个坑,要一一对应起来
  • print("%fasdf wfs"%(a,)) 后面没有b,逗号也要保留

print实参拆包:把列表拆成元素

python
I=[2,7,5]
print(I)
# 得到:[2,7,5]
print(*I)
# 得到:2 7 5
格式化format输出

通过{}和:来替代print中格式化占位符的%format函数:基本格式:str.format(变量) 列如:保留两位小数输出:print("{0:.2f}{1:.2f}".format(x,y))0.1表示format函数中第一和第二个参数 .2f表示小数保留两位

格式化字符串常量f-string输出

例如:S=3print(f"序列和为{S:.3f}")

格式描述符
符号描述
<左对齐(字符串默认对齐方式)
>右对齐(数值默认对齐方式)
^居中对齐
#切换数字显示方式

同理,格式化占位符都适用,应用时放在:后面。:前面直接调用变量值 例如:print(f'宽度设置,低补位0:{a:<08d}')

Released under the MIT License.