这是机器未来的第6篇文章
写在前面:
• 博客简介:专注AIoT领域,追逐未来时代的脉搏,记录路途中的技术成长!
• 专栏简介:本专栏的核心就是:快!快!快!2周快速拿下Python,具备项目开发能力,为机器学习和深度学习做准备。
• 面向人群:零基础编程爱好者
• 专栏计划:接下来会逐步发布跨入人工智能的系列博文,敬请期待
• Python零基础快速入门系列
• 快速入门Python数据科学系列
• 人工智能开发环境搭建系列
• 机器学习系列
• 物体检测快速入门系列
• 自动驾驶物体检测系列
• ......
@[toc]
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
• 可以干什么?• 数据分析、WEB开发、爬虫、人工智能、科学计算、桌面软件等...• 胶水语言• 可以调用其他语言库, 适合搭框架,不适合构建核心• 解释型语言• 无需编译,边解释边执行,适合数据分析,不适合开发大型项目,运行效率低• 语法简洁,代码量小• 动态类型语言,代码量小• 内存管理:有垃圾回收。代码量小• 开源,好处:库丰富,出现问题有社区帮助解决或者遇到过。坏处:库不一定成熟或者经过生产环境测试,bug多• 跨平台Python最核心的优势就是:它是一个拉皮条的,自己不干活(不具体实现,搭框架),让别人干活(Python非常容易调用其它语言的实现库)。
变量由变量名、变量值和变量类型构成。需要注意的是python中定义变量时不需要声明类型。这是根据Python的动态语言特性而来。变量可以直接使用,而不需要提前声明类型。
• 变量名类似于一个代号,指向具体的变量值。15• 多个变量名可以绑定一个变量值。a='Jack'
b=a
a='Tom'
print(b)
print(a)请牢记:Python中的一切都是对象,变量是对象的引用!
标识符的命名规范:
• 数字,字母,下划线,并且不可以数字开头• 不能使用关键字• 区分大小写importkeyword
keyword.kwlist19
变量大写X和小写x是不同的变量
扩展阅读:Python 编码规范(Google)
Python中其实没有专门对常量的定义,对于常值一般采用全部大写的字母来定义,例如
PI=3.14print("hellopython")20
本文均以python3为基础。
三种方式
name="Joe"
sex="man"
#方法一,使用format格式化函数来实现
print("Mynameis{},mysexis{}".format(name,sex))
或
print("Mynameis{0},mysexis{1}".format(name,sex))
#方法二:format的简写形式
print(f"Mynameis{name},mysexis{sex}")
#方法三:逗号分隔,这种方式输出格式会凌乱一些,推荐方法二
print(f"Mynameis“,{name},"mysexis",sex)21
input的输入参数是提示字符串,返回值为输入的信息:
22
23
注释用于描述代码段的功能及使用说明之用。
Python的注释有2种:
• 井号注释# #注释常用来给代码行或代码块进行注释说明,常出现在代码上方或末尾#单行注释
print("#注释")• 三引号注释 三引号注释常用来给函数或类做注释使用,因为涉及到多行。三引号注释可分为单引号注释和双引号注释
defdata_analyze(dat):
"""
函数描述:用于数据分析
参数描述:
- dat:输入的参数
"""
return
defdata-analyze2(dat):
'''
函数描述:用于数据分析
参数描述:
- dat:输入的参数
'''
return以上2个函数的注释功能上是一样的,单引号或双引号其本质上是一个字符串常量。
#注释和三引号注释总体区分就是单行注释归#,多行注释归三引号注释。
Python中的基础数据类型包括:
• 数值类型:整数类型,浮点类型,复数类型,布尔类型、空值• 字符串• 容器类型:列表,元组,字典,集合常见的整数
a=101x1=0b0001#十进制1
x2=0b1010#十进制10=1*2^3+0*2^2+1*2^1+0=10
print(x1,type(x1),x2,type(x2))1
x1=0o17#十进制15=1*8+7=15
print(x1,type(x1))15
x1=15
print(x1,type(x1))15
x1=0x59#十进制89=5*16+9=89
print(x1,type(x1))89
x=15
x2=bin(x)
print(x2,type(x2))0b1111
x=15
oct(x)
print(x2,type(x2))0b1111
x=0x0f
x2=int(x)
print(x2,type(x2))15
x=15
x2=hex(x)
print(x2,type(x2))0xf
浮点类型是数学中的小数,浮点数在计算机中只能做到近似存储,这是浮点的不确定性。
f1=1.2
f2=1.4
f3=f1+f2
print(f3)
f3==2.6#f3竟然不等于2.6,神奇吧2.5999999999999996
False
从图中示例可知,在计算机中1.2+1.4不一定等于2.6,因为计算机中存储数据底层都是二进制存储,在转换过程中存在转换误差,因此避免使用浮点数做等值或不等值运算,如果必须使用,则使用如下函数形式。
importmath
defis_float_equal(a,b,precision):#第三个参数为精度
'''
a-输入比较的浮点数1
b-输入比较的浮点数2
precision-可允许的浮点数误差
'''
returnmath.fabs(a-b)True
float数据类型可表示的数据范围:
importsys
print(sys.float_info.max,sys.float_info.min)1.7976931348623157e+308 2.2250738585072014e-308
超出浮点数表示范围上限,数据会表示为inf,低于浮点数表示范围下限,则直接表示为0.0
print(2.3e+400,2.3e-400)inf 0.0
在这里插入图片描述
x1=3+4j
print(x1,type(x1))(3+4j)
x1.real,x1.imag#访问复数的实部和虚部(3.0, 4.0)
#求复数的模长
abs(x1)#c=sqrt(a^2+b^2)5.0
布尔类型:True 和 False
TrueandTrueTrue
TrueandFalseFalse
FalseandFalseFalse
• or 或 一个为真则为真,两个为假则为假TrueorTrue#两个均为真,则为真True
TrueorFalse#一个为真,则为真True
FalseorFalse#两个为假,则为假False
• not 非 非假为真,非真为假notFalseTrue
notTrueFalse
None
x1='python'
x2="python"
x3="""python"""
x4='''python'''
print(f"x1:{x1},x2:{x2},x3:{x3},x4:{x4}")image-20220523000516457
• 其中三引号还有定义格式的能力,举例image-20220523000537978• 字符串定义时,单引号、双引号出现在内容中的用法:image-20220523000626870• 使用转义字符\• 错位使用:内容包含单引号时,使用双引号定义;内容包含双引号时,使用单引号定义容器类型将在数据结构中描述。
+(加)、 -(减)、 *(乘)、 /(除)、//(除法取整)、%(取模)等。
image-20220523000642102
>(大于)、 <(小于)、==(等于)、 <=(小于等于), >=(大于等于), !=(不等于)等
28
7.3 赋值运算符=(赋值)、 +=(加法赋值)、-=(减法赋值)、*=(乘法赋值)、/=(除法赋值)、//=(除法取整赋值)、%=(取模赋值)等
29
x1=0b0001
x2=0b0001
x3=0b0010
#与运算&:对应位均为1,则为1;否则为0
x4=x1&x2
print(f"x4:{bin(x4)}")30
• 或(|),按位或运算符:只要对应的两个二进位有一个为1时,结果位就为1x1=0b0001
x2=0b0001
x3=0b0010
#或运算|:对应位均为0,则为0;否则为1
x5=x2|x3
print(f"x5:{bin(x5)}")31
• 异或(^),按位异或运算符:当两对应的二进位相异时,结果为1x1=0b0001
x2=0b0001
x3=0b0010
#异或运算^:对应位不同,则为1;否则为0
x6=x1^x2#x6=0b1^0b1=0
x7=x2^x3#x7=0b01^0b10=0b11
print(f"x6:{bin(x6)},x7:{bin(x7)}")32
• 取反(~),按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1x1=0b0001
#异或运算^:对应位不同,则为1;否则为0
x4=~x1# x4 =~0b1=0b1111110(补码表示:最高位为1,为负数,负数取反+1)=-0b10
print(f"x4:{bin(x4)}")33
• 左位移(<<),运算数的各二进位全部左移若干位,由<<右边的数字指定了移动的位数,高位溢出舍弃,低位补0x1=0b0001
#异或运算^:对应位不同,则为1;否则为0
x4=x1<<1#x4=0b1<<1=0b10
print(f"x4:{bin(x4)}")34
• 右位移(>>),把‘>>’左边的运算数的各二进制位全部右移若干位,>>右边的数字指定了移动的位数,低位溢出舍弃,高位补x1=0b1110
#异或运算^:对应位不同,则为1;否则为0
x4=x1>>1#x4=0b1110>>1=0b111
print(f"x4:{bin(x4)}")35
and布尔与、or布尔或、not布尔非
• and:表达式:x and y,即布尔的“与”,如果 x 或 y 任意一个值为 False,则返回为False的值,否则返回 y 的值。x1=5
x2=6
x3=7
#x1>x2=>5>6为False,所以整个表达式为False
x4=x1>x2andx3>x2
print(f"x4:{x4}")
#x2>x1andx3>x2=>6>5and7>6,
#第一个表达式的值为True,所以返回第二个表达式的值,第二个表达式的值为True
x5=x2>x1andx3>x2
print(f"x5:{x5}")
#x2>x1and2=>6>5and2,
#第一个表达式的值为True,所以返回第二个表达式的值,第二个表达式的值为2
x6=x2>x1and2
print(f"x6:{x6}")36
• or:表达式:x or y,即布尔的“或”,如果 x 或 y 任意一个值为 True,则返回为True的值,否则返回 x 的值。x1=5
x2=6
x3=7
#x2>x1orx2>x3=>6>5and6>7
#第一个表达式的值为True,所以返回True
x5=x2>x1orx2>x3
print(f"x5:{x5}")
#x1>x2orx2>x3=>5>6or6>7,两个表达式均为False,所以整个表达式为False
x4=x1>x2orx2>x3
print(f"x4:{x4}")
#x1>x2or0=>5>6or0,
#第一个表达式的值为False,所以返回第二个表达式的值,第二个表达式的值为0
x6=x1>x2or0#非0均为True
print(f"x6:{x6}")#注意不是返回False喔37
• not:表达式:not x,即布尔的“非”,如果 x 值为 True,则返回为False,否则返回True。x1=5
x2=6
x4=not(x1>x2)#note(x1>x2)=>not(5>6)=>notFalse=>True
print(f"x4:{x4}")
x5=not(x2>x1)#note(x2>x1)=>not(6>5)=>notTrue=>False
print(f"x5:{x5}")38
x=[1,2,4,5,8]
x1=5
x2=6
x3=x1inx#x1=5,是列表x中的元素,所以为真,True
print(f"x3:{x3}")
x4=x2notinx#x2=6,不是列表x中的元素,为假,not假,所以为真,True
print(f"x4:{x4}")39
流程控制有三种结构:顺序结构、分支结构、循环结构。
• 顺序结构:按部就班执行• 分支结构:根据条件不同执行• 循环结构:重复执行两种分支结构:
• 二分支ifcondition1:
statement1
else:
statement2举例:
score=85
ifscore>=60.0:
print("你的成绩:及格")
else:
print("你的成绩:不及格")41
简写:三元运算符
exp1ifconditionelseexp2对应
ifcondition:
exp1
else:
exp2举例:
#求最大值
x1=50
x2=30
max_num=x1ifx1>x2elsex2
max_numsnipaste20220523_001136
• 多分支ifcondition1:
statement1
elifcondition2:
statement2
...
else:
statement3举例:
score=85
ifscore>=90.0:
print("你的绩效为:A")
elifscore>=80.0:
print("你的绩效为:B+")
elifscore>=60.0:
print("你的绩效为:B")
else:
print("你的绩效为:C")注:python3.10以下版本不支持switch-case语句。
两种循环语句:while和for循环
whilecycle_condition:
statement
condition_change_statement• while表达式以冒号作为行的结束• while循环体代码块缩进4个字节举例:
#以神经网络模型的训练迭代次数举例
MAX_EPOCHS_COUNT=10
epoch=0
whileepochimage-20220523001217473
while...else...语句,在while退出时执行
whilecycle_condition:
statement
condition_change_statement
else:
exit_statement举例:
#以神经网络模型的训练迭代次数举例
MAX_EPOCHS_COUNT=10
epoch=0
whileepochimage-20220523001228174
foriteminsets:
statement举例:
x=[-1,4,6,7,9,-10,-13]
foriinx:
print(i)image-20220523001741324
• range可迭代对象 range(start,end,step):返回的是一个可迭代对象可迭代对象的优势是占用内存少,边使用边分配内存,不会一下子全部分配内存,在数据集较大时会特别便于使用。• start:表示开始,包含,默认是0• end:表示结束,不包含• step:表示步长,默认是1X=range(1,10,1)
print(type(X))
forxinrange(1,10,1):
print(x,end=',')
print("")适用场景:在需要提取数据结构对象索引的时候非常有用。
x=[-1,4,6,7,9,-10,-13]
#原始列表输出
foriinx:
print(i,end=',')
print("")
#将原始列表的输出转换为索引-值的元组
foriinenumerate(x):
print(i,end=',')
print("")-1, 4, 6, 7, 9, -10, -13, (0, -1), (1, 4), (2, 6), (3, 7), (4, 9), (5, -10), (6, -13),
#以神经网络模型的训练迭代次数举例
MAX_EPOCHS_COUNT=10
epoch=0
whileTrue:
if(epoch>=MAX_EPOCHS_COUNT):
break#执行后,从此处跳出循环
print(f"traintimes{epoch}")
epoch+=1image-20220523002128727
• continue 跳过循环体后面的语句,直接开始下一回循环#求列表中大于0的数值的和
x=[-1,4,6,7,9,-10,-13]
sum=0
foriteminx:
ifitem<0:
continue#执行continue后,本次循环,后面的代码块不再执行
sum+=item
print(f"sum:{sum}")image-20220523002148157
版权声明:我们致力于保护作者版权,注重分享,被刊用文章【python语法规则(一文快速掌握Python基础语法)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;
工作时间:8:00-18:00
客服电话
电子邮件
beimuxi@protonmail.com
扫码二维码
获取最新动态
