03 《Python编程 从零基础到项目实战》- 基础篇 1

第一章 从零开始


1.1 概述

定义一:计算机软件(Software),简称软件,是一系列按照特定顺序组织的计算机数据和指令的集合。如日常办公软件Office、Windows操作系统、微信、QQ、网站等都是软件。
定义二:编程语言(Programming Language),是一种语言形式,它指定了一组可用于产生各种输出的指令。编程语言由计算机的指令构成,可以用来创建实现特定算法的程序。常见的编程语言包括Python、C、Java、C++、C#、R、JavaScript、PHP等。
定义3:计算机程序(Computer Programming),简称程序,是由计算机执行特定任务指令的集合。

1.2 什么是Python

Python语言的名称来自英国BBC的一个节目名称《蒙提*派森的飞行马戏团》(Monty Python’s Flying Circus)。由于Python语言的作者Guido Van Rossum是该节目的忠实粉丝,于是把该节目里的Python一词作为该语言的正式名称。
Python是一门运用广泛的通用高级编程语言,由Guido Van Rossum在1989年创建并于1991年首次发布。Python是一门解释性的语言,它具有强调代码可读性的设计理念,以及允许程序员用比C++或Java等语言更简练的表达功能。Python的底层使用C语言编写成的,运行速度快。

  1. Python语言的优点
    (1)简单易用
    (2)提供了大量的功能类库
    (3)Python具有语言的兼容性
    (4)具有跨系统移植能力
    (5)代码免费、开源。
  2. Python语言的发展的现状
    (1)2017年IEEE Spectrum编程语言排名第一;
    (2)被全球计算机领域顶尖的大学作为程序设计课程,如卡内基梅隆大学、麻省理工学院等。

1.4 Python代码编译工具

定义4:编译器(Compiler),就是把高级语言一次性翻译成计算机能识别的机器语言的一种软件。
定义5:解释器(Interpreter),就是把高级语言编写的程序,在执行时,一行一行地翻译成机器语言的一种软件。
定义6:标识符(Identifier),在Python语言中用于规范命名解释器能识别的可执行代码对象的名称。


总结:

  1. Python 3.6.3(32-bit)版本的软件包,能安装到64位CPU的计算机上。
  2. Python语言的一大亮点是提供了强大的标准库和第三方库支持。
  3. Python支持强大的科学计算功能
  4. Python 3.6.3自带的编程调试环境包括了IDLE和Python.exe(代码解释器)。
  5. 脚本式代码编辑,先要把代码保存到扩展名为.py的文件中。
  6. Python语言在命名上是大小写敏感的。
  7. Python语言的注释符号是#。
  8. Python语言变量、关键字、函数、类等的组成只能是字母、数字和下划线。



第二章 变量


2.1 变量

定义1:变量(Variable),指在计算机编程中与关联的标识符配对的内存存储位置,在使用时含相关类型的值,其值可以修改。
在Python语言中,变量被使用时,在内存里将产生两个动作,一是开辟指定的地址空间,二是赋予指定的变量值。变量在指定的同时,必须强制赋初始值,否则解释器会报错。

>>> a		# a变量未赋值,解释器认为非法,报未定义出错
>>> a=0		# a变量赋予初始值为0,解释器执行通过
>>> print(a)
> 0
  1. 多个变量赋值
>>> one=two=three=10		# 多个变量赋值方式一
>>> print(one,two,three)
> 10,10,10
>>> one,two,three=10,10,10		# 多个变量赋值方式二
>>> print(one,two,three)
> 10,10,10
  1. 变量值类型
    变量值的类型在赋值后被隐形确定。
>>> a = 0			#0就是整数类型的值
>>> a = 'OK'		#OK是字符串类型的值
>>> a = True		#True就是布尔型的值

Python语言的基本变量类型包括字符串型(String)、数字(Numeric)、列表(List)、元组(Tuple)、字典(Dictionary)五大类。

注意

变量的命名规则:
变量、关键字、函数、类在Python中,只能由字母、数字、下划线组成。也就是小写字母a ~ z、大写字母A ~ Z 、下划线_和数字0 ~ 9,才能被使用。注意命名时,数字不能被放在你名称首位


变量对应的是常量,既不能变的数据对象


2.2 字符串

定义2:字符串(String),由任意字符组成,用单引号(’)、双引号(")、或三引号(’’’)成对表示。

>>> name='Tom'
>>> name1="Jerry"
>>> name2='''Sreck'''
>>> print(name,name1,name2,'''《Tom&Jerry》''')
> Tom Jerry Sreck 《Tom&Jerry》


>>> name,name1,name2='Tom',"Jerry",'''Sreck'''
>>> print(name,name1,name2,'''《Tom&Jerry》''')
> Tom Jerry Sreck 《Tom&Jerry》

一般情况下,使用单引号和双引号已经足够。在特殊情况下,可以发挥三引号的优势,允许只有一个字符串跨多行,字符串可以包括换行符、制表符以及其他特殊字符。

>>> text1='''带格式的文本,往往含有特殊格式的控制字符,如
制表符TAB(\t),又如
换行符[\n]'''
>>> print(text1)
> 带格式的文本,往往含有特殊格式的控制字符,如
制表符TAB(	),又如
换行符[
]

注意:
(1) 只有引号,没有字节内容的字符串也是合法的。name=’’
(2) 在英文输入模式下(EN)为半角输入,中文、日文等模式下默认为全角输入。中文全角一个字符占两字节。
(3) 在字符串中用反斜杠(\)开头的代表字符转义符号。

  1. 字符串基本操作

(1) 字符串的读取

>>> name="Tom is a cat!"
# 单下标读取:[下标]
>>> print(name[1])		# 读取下标为1的字符
> o
# 切片:[左下标:右下标]
>>> print(name[4:6])
> is
>>> print(name[:3])			# 读取小标为0~3的字符
> Tom
>>> print(name[:])			# 读取整个字符串
> Tom is a cat!
# 带步长的切片读取:[左下标:右下标:步长]
>>> name[::2]				# 从头到尾步长为2,读取字符
> Tmi  a!
# 负下标读取:从负数下标从右到左读取对应的字符串值。
>>> print(name[-1])			# 从右往左,读取右边第一个字符
> !
>>> print(name[-4:-1])		# 从右往左,读取倒数第四个、第三个、第二个字符。
> cat
>>> name[13]		# 使用下标时,超出字符串范围读取值,解释器会报错。

定义3:切片(Slice),python通过带 “左下标:右下标” 方式,获取集合一部分元素的操作叫切片。

注意:                                name="Tom is a cat!"
下标值都为正时,从T开始,左下标当作0数起,右下标当作1数起,向后数逐个+1
下标值都为负时,从 ! 开始,左下标当作-1数起,右下标当作0数起,向后数逐个-1

(2) 字符串值的合并

>>> name='Tom'
>>> job="teacher"
>>> record=name+","+job		# 用+合并三个字符串
>>> print(record)
> Tom,teacher

(3) 字符串值的修改

>>> name='There cool cat'
>>> new_name=name[:11]+'dog'	# 通过字符串合并,赋值成一个新的字符串
>>> print(new_name)
> There cool dog
上述字符串修改成功,是通过读取字符串并合并的方式实现的。
不能直接对字符串做出如下修改操作:
>>> name[6]='C'					# 解释器将报赋值出错

(4) 字符串的删除

>>> del(name)			# del()函数对整个字符串进行删除,再次调用会报错

说明:
del(x)函数删除内存中的一个指定的元素x,x可以是字符串、数字、列表、元组、字典、类等。

  1. 字符串其他常用操作

(1) 获取字符串长度

>>> hello="Hello, three cool cat!"
>>> print(hello)
> 22

>说明:

len(x) 函数可以返回一个对象的长度,x可以为字符串、列表、元组、字典。

(2) r/R原始字符串控制符号

>>> print('C:\back\name')
> Cack
>>> print(r'C:\back\name')
> C:\back\name

(3) 重复输出字符串(*)

>>> print('Cat'*2)
> CatCat

(4) 格式字符串(%)

>>> age=10
>>> print("Tom's age is %d"%(age))
> Tom's age is 10

2.3 数字和运算符

数字(Digital)分为整数(Integer)、浮点数(Float)、复数(Complex)、布尔(Boolean)。

  1. 算术运算符
运算符中文名称功能描述例子
+两个数字相加print(5+3),输出8
-两个数字相减print(5-3),输出2
*两个数字相乘print(5*3),输出15
/两个数字相除print(6/3),输出2
%取模返回除法的余数print(5%3),输出2
**返回x的y次幂print(5**3),输出125
//取整除返回商的整数部分print(5//3),输出1
  1. 整数

定义4:整数(Integer,简写Int) 又称为整型,由正整数,零和负整数构成,不包括小数、分数。在Python中,整数长度不受限制,仅受(虚拟)内存的限制

==================================  加、减、乘、除运算  =================================
>>> num1=10
>>> num2=3
>>> count=num1+num2
>>> print('加法和为:%d'%(count))
> 加法和为:13
>>> print('减法差为:%d'%(num1-num2))
> 减法差为:7
>>> print('乘法积为:%d'%(num1*num2))
> 乘法积为:30
>>> print('除法商为:%d'%(num1-num2))
> 减法差为:7
>>> print('减法差为:%d'%(num1/(num2+2)))
> 除法商为:2
>>> result=(num1+num2)*(num1-num2)/7-3
>>> print('加减乘除混合运算:%d'%(result))
> 加减乘除混合运算:10

================================== 取模、幂、取整除运算 =================================
>>> x=5
>>> y=3
>>> print(x%y)
> 2
>>> print(x//y)
> 1
>>> print(x**y)
> 125

数字运算符里幂的优先级最高,其次为乘、除、取模、取整,再次为加、减。

注意:
① 在python 2.X版本下,不能整除的两个整数相除时,将会产生取整(//)的效果。例如,5/2运算结果为2。在python 3.X版本下,5/2的运算结果为2.5,所有的除法结果 都为带小数的(浮点数)。
② 0不能做除数。

  1. 浮点数
    定义5:浮点数(Float),对应于数学中的实数(Real)。在Python语言中,浮点数是带小数点的数字。由于计算机内存中存储浮点数的位数有限,所以超过指定长度后,末尾将采取近似值处理。因此,浮点数不一定是精确值
>>> print(10.0/3)		# 10.0是浮点数
> 3.333333333333335
>>> print(10*2+0.1)
> 20.1
>>> print(1.1+0.9)
> 2.0
>>> print(4.0/2.0)
> 2.0
  1. 复数
    定义6:复数(Complex) 由实部和虚部组成,把实数扩展到了虚数,其数学表示形式为a+bj(a、b均为实数)。a称为实部,b称为虚部,j为虚数单位(j2=-1),bj称为虚数。
>>> print((1-2j))			# python语言里复数表示
> (1-2j)
>>> print((1-2j)*(2-3j))	# 复数的乘法
> (-4-7j)

复数的实部和虚部
>>> print((1-2j).real)		# 检测复数实部
> 1.0
>>> print((1-2j).imag)		# 检测复数虚部
> -2.0
  1. 布尔
    定义7:布尔(Boolean) 又称逻辑。在Python中用True、False表示,用于逻辑判断。该数据是一种特殊的整数类,True可以用1替换,代表 “真” ;False可以用0替换,代表 “假” 。
>>> print(True)			# 首字母必须大写,否则出错
> True

布尔的逻辑运算方式与数学完全一致。
>>> print(True and True)
> True
>>> print(True or False)
> True
>>> print(not False)
> True

逻辑运算符

运算符中文名称功能描述
and只有and两侧的逻辑值为1时,其结果为1.其他情况为0
or如果or两侧至少有一个逻辑值为1时,其结果为1,其他情况为0
notnot 0得1,not 1得0
  1. 二进制
    定义8:二进制(Binary) 数据是用0和1两个数字来表示的数。它的基数为2,进位去、规则则是 “逢二进一” 。最新的python版本中0b开始表示二进制数。
>>> print(0b1110)
> 14			# 输出十进制14

二进制码(范围为00000000~01111111)对应的十进制码详见ASCII表。

>>> print(bin(14))		# bin()函数把十进制数转为二进制数
> 0b1110				# 输出二进制值0b1110

二进制位运算符

运算符中文名称运算规则描述
&按位与运算符(m&n),参与运算的m、n,如果相应位数都为1则该位的结果为1,否则为0。
|按位或运算符(m|n),参与运算的m、n,只要对应的二进制位有一个为1,则结果为1;只有当对应的位都为0时,结果才为0。
^按位异或运算符(m^n),参与运算的m、n,当对应的二进制位相异时,结果为1;相同时,结果为0。
~按位反转运算符(~m),将二进制+1之后乘以-1,m的按位翻转是-(m+1)。
<<左移动运算符m<<x,把m的二进制位全部左移x位,高位在超出操作系统支持位数时,丢弃,不超出时左移,低位补0。x为需要移动的数量。
>>右移动运算符m>>x,把m的二进制位全部右移x位,低位丢弃,高位补0。x为需要移动的数量。

注:m、n都为二进制数,x为整数。

与(&)运算
>>> print( 0b00110101 & 0b01100001 )
> 33

或(|)运算
>>> print( 0b00110101 | 0b01100001 )
> 117

异或(^)运算
>>> print( 0b00110101 ^ 0b01100001 )
> 84

反转(~)运算
>>> print(~0b00110101)
> -54

左移运算(<<>>> print(0b00110101<<2)
> 212

右移运算(>>>>> print(0b00110101>>2)
> 13

说明:
① chr(x)函数,可将十进制数→ASCII码字符。
② Python语言还支持八进制(0o开头表示)、十六进制(0x开头表示)的运算。
③ 八进制:octal ; 十进制:decimalism ; 十六进制:hexadecimal 。

  1. 比较运算符
运算符中文名称运算规则描述
==等于x==y,返回True,否则返回False
!=不等于x!=y,返回True,否则返回False
>大于x>y,返回True,否则返回False
<小于x<y,返回True,否则返回False
>=大于等于x>=y,返回True,否则返回False
<=小于等于x<=y,返回True,否则返回False
  1. 赋值运算符
运算符中文名称
=简单赋值
+=加法赋值
-=减法赋值
*=乘法赋值
/=除法赋值
%=取模赋值
**=幂运算
//=取整除赋值
<<=左移位赋值
>>=右移位赋值
&=位与赋值
|=位或赋值
^=位异或赋值

说明:
增量赋值比一般赋值在内存中具有空间占用优势。

2.4 数据类型转换

(1)转化为整数函数int(x),x为数字或字符串型的数字,但不支持复数。

>>> print(int(3.2))			# x为数字
> 3

>>> print(int('10'))		# x为字符串型的数字
> 10

(2)转化为浮点数函数float(x),x为数字或字符串型的数字,但不支持复数

>>> print(float(10))			# x为数字
> 10.0

>>> print(float('10'))		# x为字符串型的数字
> 10.0

(3)转化为复数函数complex(x, y),x、y为整数、浮点数、布尔数;当只有x参数时(y=0),可以是字符串正整数、浮点数、布尔数。

>>> complex(2,2)
> (2+2j)
>>> complex('10')
> (10+0j)

(4)转化为str(x)

>>> str(5+2j)
> '(5+2j)'

(5)转化为二进制函数bin(x),x为非负整数。

>>> bin(0)
> 0b0

(6)转化为八进制函数oct(x),x为非负整数。

>>> oct(10)
> 0o12

(7)转化为十六进制函数hex(x),x为非负整数。

>>> hex(20)
> 0x14

(8)chr(x)函数,十进制数→ASCII字符,x为十进制数。

>>> chr(97)
> 'a'

(9)ord(x)函数,ASCII字符→十进制数,x为ASCII字符。

>>> ord('a')
> 97

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【为什么学PythonPython 是当今非常热门的语言之一,2020年的 TIOBE 编程语言排行榜中 ,Python名列第一,并且其流行度依然处在上升势头。 在2015年的时候,在网上还经常看到学Python还是学R的讨论,那时候老齐就选择了Python,并且开始着手出版《跟老齐学Python》。时至今日,已经无需争论。Python给我们带来的,不仅仅是项目上的收益,我们更可以从它“开放、简洁”哲学观念中得到技术发展路线的启示。 借此机会,老齐联合CSDN推出了本课程,希望能影响更多的人走进Python,踏入编程的大门。 【课程设计】 本课程共包含三大模块: 一、基础知识 内置对象和基本的运算、语句,是Python语言的基础。本课程在讲解这部分知识的时候,不是简单地将各种知识做简单的堆砌,而是在兼顾内容的全面性的同时,更重视向学习者讲授掌握有关知识的方法,比如引导学习者如何排查错误、如何查看和理解文档等。   二、面向对象 “面向对象(OOP)”是目前企业开发主流的开发方式,本课程从一开始就渗透这种思想,并且在“函数”和“类”的学习中强化面向对象开发方式的学习——这是本课程与一般课程的重要区别,一般的课程只在“类”这里才提到“对象”,会导致学习者茫然失措,并生畏惧,乃至于放弃学习。本课程则是从开始以“润物细无声”的方式,渗透对象概念,等学习到本部分的时候,OOP对学习者而言有一种“水到渠成”的感觉。   三、工具实战项目实战中,除了前述的知识之外,还会用到很多其他工具,至于那些工具如何安装?怎么自己做工具?有那些典型工具?都是这部分的内容。具体来说,就是要在这部分介绍Python标准库的应用以及第三方包的安装,还有如何开发和发布自己的工具包。此外,很多学习Python的同学,未来要么从事数据科学、要么从事Web开发,不论哪个方向,都离不开对数据库的操作,本部分还会从实战的角度,介绍如何用Python语言操作常用数据库。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值