Python基础知识入门(一)

简介: Python的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中单词Python(意为大蟒蛇)作为该编程语言的名字,是因为英国20世纪70年代首播的电视喜剧《蒙提·派森的飞行马戏团》(Monty Python's Flying Circus)。后因吉多·范罗苏姆(Guido van Rossum)中的Guido(吉多),与拼音(Gui) 谐音,所以被中国程序员称为“龟叔”。

一、发展历程

      Python的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中单词Python(意为大蟒蛇)作为该编程语言的名字,是因为英国20世纪70年代首播的电视喜剧《蒙提·派森的飞行马戏团》(Monty Python's Flying Circus)。后因吉多·范罗苏姆(Guido van Rossum)中的Guido(吉多),与拼音(Gui) 谐音,所以被中国程序员称为“龟叔”。


二、语言特点

      1.易学习:Python有相对较少的关键字,结构简单,语法明确,学习起来更加的简单。


      2.易阅读:Python代码定义的更清晰。


      3.易维护:Python的成功在于它的源代码是相当容易维护的。


      4.丰富库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等。


      5.可移植:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。


      6.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。


      7.数据库:Python提供所有主要的商业数据库的接口。


      8.GUI编程:Python支持GUI可以创建和移植到许多系统调用。


      9.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。


三、基本知识

1.变量命名

      1)变量名可以使用字母命名(x、y),也可使用名称命名(age、name、car_name);


       2)变量名必须以字母或下划线字符开头;


       3)变量名称不能以数字开头;


       4)变量名只能包含字母数字字符和下划线(A-z、0-9 和 _);


       5)变量名称区分大小写(age、Age 和 AGE 是三个不同的变量);


       6)变量名不可使用保留关键字命名。


2.关键字段

Python中保留关键字

序号 关键字 字段使用方法

1

and

逻辑判断语句,and左右两边都为真,则判断结果为真,否则都是假。

2

as

with…as…

和with结合使用,主要用于文件的读写操作,省去了关闭文件的麻烦。

import...as ...

和impor结合使用,用于对导入模块或函数进行重命名。

except

和except组合使用,将捕获到的异常对象赋值给except。

3

assert

用来在运行中检查程序的正确性,和其他语言一样的作用。assert函数是属于python下的一个函数,也叫作断言函数,它可以用于判断某个表达式的值,若是该值为真,那么程序就能够继续往下执行;反之,Python解释器就会报出AssertionError错误。

4

async

async 用来声明一个函数为异步函数,异步函数的特点是能在函数执行过程中挂起,去执行其他异步函数,等到挂起条件(假设挂起条件是sleep(5))消失后,也就是5秒到了再回来执行。

            5

awit

await 用来用来声明程序挂起,比如异步程序执行到某一步时需要等待的时间很长,就将此挂起,去执行其他的异步程序。await 后面只能跟异步程序或有__await__属性的对象,因为异步程序与一般程序不同。假设有两个异步函数async a,async b,a中的某一步有await,当程序碰到关键字await b()后,异步程序挂起后去执行另一个异步b程序,就是从函数内部跳出去执行其他函数,当挂起条件消失后,不管b是否执行完,要马上从b程序中跳出来,回到原程序执行原来的操作。如果await后面跟的b函数不是异步函数,那么操作就只能等b执行完再返回,无法在b执行的过程中返回。如果要在b执行完才返回,也就不需要用await关键字了,直接调用b函数就行。所以这就需要await后面跟的是异步函数了。在一个异步函数中,可以不止一次挂起,也就是可以用多个await。

6

break

break语句是用来终止循环语句的,即使哪怕循环条件没有称为false或者序列还没有被完全递归,也会停止循环语句。提示,如果break的是for或while循环,任何对应的循环else块将不执行。

7

class

定义类的关键字,用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。

8

continue

continue语句用来跳过当前循环块中剩余语句,然后继续进行下一轮循环。

9

def

用于定义函数或方法。

10

del

删除变量或者序列的值。

11

elif

条件语句 与if else 结合使用。

12

else

条件语句 条件语句,与if,elif结合使用。也可以用于异常和循环使用。

13

except

包括捕获异常后的操作代码,与try,finally结合使用。

14

finally

异常处理关键字,用它可以指定始终执行代码,指定代码在finally里面。

15

for

for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

16

from

在python用import或者from…import来导入相应的模块。

17

False

布尔类型的值,表示假,与true对应。

18

global

定义全局标量。

19

if

if语句用来检验一个条件,如果条件为真,我们运行一块语句(称为if…块),否则我们处理另外一块语句(称为else…块)。else从句是可选的。

20

import

在Python用import或者from…import来导入相应的模块。

21

in

判断变量是否存在序列中,for…in是另外一个循环语句,它在一序列的对象上递归即逐一使用队列中的每个项目。

                     22

                    is

Python中的对象包含三个要素:id,type,value


其中:

id:用来唯一标示一个对象;

type:标识对象的类型;

value:是对象的值;

is:就是用来判断a对象是否就是b对象,是通过id来判断的;


==:判断的是a对象的值是否和b对象的值相等,是通过value来判断的

23

lambda

定义匿名函数,提升代码的简洁程度。

24

nonlocal

nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量。

25

not

逻辑判断,取反的意思。

26

None

None是一个特殊常量,None和False不同,None不是0。None不是空字符串。None和任何其他数据类型比较永远返回False。None有自己数据类型NoneType。可将None复制给任何变量,但不能创建其他NoneType对象。

27

or

逻辑判断,or两边有一个为真,判断结果就是真

28

pass

pass的意思是什么都不要做,作用是为了弥补语法和空定义上的冲突,它的好处体现在代码的编写过程之中,比如你可以先写好软件的整个框架,然后再填好框架内具体函数和class的内容,如果没有pass编译器会报一堆的错误,让整个开发很不流畅。

                  29

              raise

raise:单独一个 raise。该语句引发当前上下文中捕获的异常(比如在 except 块中),或默认引发 RuntimeError 异常。


raise 异常类名称:raise 后带一个异常类名称,表示引发执行类型的异常。


raise 异常类名称(描述信息):在引发指定类型异常同时附带异常描述信息。

30

return

python 函数返回值 return,函数中一定要有return返回值才是完整函数。如果你没有python定义函数返回值,会得到一个结果是None对象。

31

try

程序员可以使用try…except语句来处理异常。把通常的语句块放在try块中,而把错误处理的语句放在except块中。

32

True

布尔类型的值,表示真,与false相反。

33

while

while是循环语句一种,while语句有一个可选else从句。

34

with

with它实质是一个控制流语句,with可以用来简化try…finally语句,它的主要用法是实现类_enter_()和_exit_()方法。

35

yield

yield用起来像return,return是用来返回具体的某个值,yield一般与循环一起用,相当于生成了一个容器(常见的就是字典),然后在这个容器里面存放了每次循环以后的值,并且就在那放着,不输出,不返回,等你下次需要他的时候直接取出来用(调用)就行。

3.数据类型

Numbers(数字):int(整数)—123、 float(浮点)—12.3、complex(复数)—2+3j


Bool(布尔):True、False


String(字符串):'123'


List(列表):[1,2,3]


Tuple(元组):(1,2,3)


Dictionary(字典):{1:23}


Set(集合):{1,2,3}


不变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);


可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。


4.数据运算

算数运算

A = 3  B = 2

加法

+

A + B = 5

减法

-

A - B = 1

乘法

*

A * B = 6

 除法 

/

A / B = 1.5

余数

A % B = 1

次幂 

**

A ** B = 9

取整

//

A // B = 1

比较运算

等于

==

a == b

不等于

!=

a != b

大于

>

a > b

小于

<

a < b

大于等于

>=

a >= b

小于等于

<=

a <= b

赋值运算

等于赋值

c = a + 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

逻辑运算

A = 15  B = 20

多个条件判断

and

a > 10 and b > 10     返回true

任意条件判断

or

a > 10 or b > 20        返回true

取反条件判断

not

not a > b                    返回true

成员运算

in

如果在指定的序列中找到值

返回 True,否则返回 False。

如果 x 在 y 序列中返回 True。

not in

如果在指定的序列中没有找到值   

返回 True,否则返回 False。

如果 x 不在 y 序列中返回 True。

身份运算

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。

优先运算(以下表格列出从最高到最低优先级的所有运算符)

**

指数 (最高优先级)

~  +  -

按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)

*  /  %  //

乘,除,取模和取整除

+  -

加法减法

>>  <<

右移,左移运算符

&

位 'AND'

^  |

位运算符

<  = <  >  >=

比较运算符

==  !=

等于运算符

=  %=  /=  //=

-=  +=  *=  **=

赋值运算符

is is not

身份运算符

in not in

成员运算符

not and or

逻辑运算符

按位运算

Python中的按位运算法则如下:

变量 a = 60,b = 13,二进制格式如下:

a   = 0011 1100      b = 0000 1101

&

按位与运算符:参与运算的两个值,

如果两个相应位都为1,则该位的结果为1,否则为0

(a & b) 输出结果 12 ,

二进制解释: 0000 1100

|

按位或运算符:只要对应的二个二进位

有一个为1时,结果位就为1。

(a | b) 输出结果 61 ,

二进制解释: 0011 1101

^

按位异或运算符:当两对应的二进位

相异时,结果为1

(a ^ b) 输出结果 49 ,

二进制解释: 0011 0001

~

按位取反运算符:对数据的每个二进制位取反,

即把1变为0,把0变为1 。~x 类似于-x-1

(~a ) 输出结果 -61 ,

二进制解释: 1100 0011,有符号二进制数补码形式。

<<

左移动运算符:运算数的各二进位全部左移若干位,

由<<  右边的数字指定了移动的位数,高位丢弃,低位补0。

a << 2 输出结果 240 ,

二进制解释: 1111 0000

>>

右移动运算符:运算数的各二进位全部右移若干位,

由>> 右边的数字指定了移动的位数

a >> 2 输出结果 15 ,

二进制解释: 0000 1111

5.打印输出

1)print()函数用于执行打印输出。


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

    objects - 复数,表示可以一次输出多个对象。输出多个对象时需要用‘,’ (英文)分隔。


    sep - 用来间隔多个对象,默认值是一个空格。


    end - 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。


    file - 要写入的文件对象。


    flush - 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。


     注意:


            ( ) 和 ' '均为英文状态输入;可以使用 ' ' 、'' ''、 ''' '''包裹字符。

print(123)  #123  
print('Hello World')  #Hello World  
a ,b = 1 ,2
print(a,b) #1 2
print('www','baidu','com',sep= '.') #www.baidu.com
for i in '123':
    print(i,end = '*') #1*2*3*

2)input() 函数接收一个标准输入数据,返回为 string 类型。

input([prompt])

prompt - 提示信息

a = input('请您输入一个数字:')   #输入数据内容123
print(a)                        #123
print(type(a))                  #<class 'str'>数据类型为字符串

6.类型转换

序号

函数

作用

1

int(x)

将x转换成整数类型 int('123')→123。

2

float(x)

将 x 转换成浮点数类型 float(123)→123.0。

3

complex(real, [,imag])

创建一个复数 complex(1, 2) →(1+2j)。

4

str(x)

将 x 转换为字符串 str(123)→'123'。

5

list(x)

将序列 x 转换为列表 list({1,2,3})→[1,2,3]。

6

tuple(x)

将序列 x 转换为元组 tuple([1,2,3])→(1,2,3)。

7

set(x)

将序列 x 转换为集合 set([1,2,3])→{1,2,3}。

8

dict(x)

创建一个字典。 序列x必须是元组。 dict(((1,2),))→{1: 2}。

9

repr(x)

将 x 转换为表达式字符串 repr('1\t2\n3')→'1\t2\n3'。

10

eval(str)

计算在字符串有效表达式,并返回一个对象 。eval(2+3)→5。

11

chr(x)

主要用来表示ascii码对应的序号 chr(97)→'a'。

12

ord(x)

主要用来返回对应字符的ascii码 ord('a')→97。

13

bin(x)

将一个整数 x 转换为一个二进制的字符串 bin(12) →0b1100。

14

oct(x)

将一个整数 x 转换为一个八进制的字符串 oct(123)→0o173。

15

hex(x)

将一个整数 x 转换为一个十六进制字符串 oct(123)→0x7b。

7.字符转义

序号

字符

用法

1

\a

系统响铃声 。

2

\n

换行符,将光标移到下一行开头 。

3

\r

回车符,将光标移到当前行开头 。

4

\f

翻页符,将光标移到下页开头 。

5

\t

水平制表符,也即Tab键,一般相当于四个空格 。

6

\v

纵向制表符 。

7

\b

退格(Backspace),将光标位置前移并覆盖删除前一个字符 。

8

\\

代表一个反斜杠 \ 。

9

\'

代表一个单引号 ' 。

10

\"

代表一个双引号'' 。

11

\?

代表一个问号 ? 。

12

\0

代表一个空字符 。

13

\

在字符串行尾,即一行未完,转到下一行继续写 。

8.标准异常

异常名称

描述

BaseException

所有异常的基类

SystemExit

解释器请求退出

KeyboardInterrupt

用户中断执行(例如无限循环进行下去所导致)

Exception

常规错误的基类

StopIteration

迭代器没有更多的值

GeneratorExit

生成器(generator)发生异常来通知退出

StandardError

所有的内建标准异常的基类

ArithmeticError

所有数值计算错误的基类

FloatingPointError

浮点计算错误

OverflowError

数值运算超出最大限制

ZeroDivisionError

除(或取模)零 (所有数据类型)

AssertionError

断言语句失败

AttributeError

对象没有这个属性

EOFError

没有内建输入,到达EOF 标记

EnvironmentError

操作系统错误的基类

IOError

输入/输出操作失败

OSError

操作系统错误

WindowsError

系统调用失败

ImportError

导入模块/对象失败

LookupError

无效数据查询的基类

IndexError

序列中没有此索引(index)

KeyError

映射中没有这个键

MemoryError

内存溢出错误(对于Python 解释器不是致命的)

NameError

未声明/初始化对象 (没有属性)

UnboundLocalError

访问未初始化的本地变量

ReferenceError

弱引用(Weak reference)试图访问已经垃圾回收了的对象

RuntimeError

一般的运行时错误

NotImplementedError

尚未实现的方法

SyntaxError

Python 语法错误

IndentationError

缩进错误

TabError

Tab 和空格混用

SystemError

一般的解释器系统错误

TypeError

对类型无效的操作

ValueError

传入无效的参数

UnicodeError

Unicode 相关的错误

UnicodeDecodeError

Unicode 解码时的错误

UnicodeEncodeError

Unicode 编码时错误

UnicodeTranslateError

Unicode 转换时错误

Warning

警告的基类

DeprecationWarning

关于被弃用的特征的警告

FutureWarning

关于构造将来语义会有改变的警告

OverflowWarning

旧的关于自动提升为长整型(long)的警告

PendingDeprecationWarning

关于特性将会被废弃的警告

RuntimeWarning

可疑的运行时行为(runtime behavior)的警告

SyntaxWarning

可疑的语法的警告

UserWarning

用户代码生成的警告

相关文章
|
7天前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
8天前
|
Python
深入理解Python装饰器:从入门到实践####
本文旨在通过简明扼要的方式,为读者揭开Python装饰器的神秘面纱,从基本概念、工作原理到实际应用场景进行全面解析。不同于常规的摘要仅概述内容概要,本文将直接以一段精炼代码示例开篇,展示装饰器如何优雅地增强函数功能,激发读者探索兴趣,随后深入探讨其背后的机制与高级用法。 ####
38 11
|
5天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
5天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
5天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
4天前
|
设计模式 缓存 开发框架
Python中的装饰器:从入门到实践####
本文深入探讨了Python中装饰器的工作原理与应用,通过具体案例展示了如何利用装饰器增强函数功能、提高代码复用性和可读性。读者将学习到装饰器的基本概念、实现方法及其在实际项目开发中的实用技巧。 ####
17 3
|
7天前
|
机器学习/深度学习 数据采集 数据可视化
Python在数据科学中的应用:从入门到实践
本文旨在为读者提供一个Python在数据科学领域应用的全面概览。我们将从Python的基础语法开始,逐步深入到数据处理、分析和可视化的高级技术。文章不仅涵盖了Python中常用的数据科学库,如NumPy、Pandas和Matplotlib,还探讨了机器学习库Scikit-learn的使用。通过实际案例分析,本文将展示如何利用Python进行数据清洗、特征工程、模型训练和结果评估。此外,我们还将探讨Python在大数据处理中的应用,以及如何通过集成学习和深度学习技术来提升数据分析的准确性和效率。
|
6天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
7天前
|
人工智能 数据挖掘 程序员
Python编程入门:从零到英雄
【10月更文挑战第37天】本文将引导你走进Python编程的世界,无论你是初学者还是有一定基础的开发者,都能从中受益。我们将从最基础的语法开始讲解,逐步深入到更复杂的主题,如数据结构、面向对象编程和网络编程等。通过本文的学习,你将能够编写出自己的Python程序,实现各种功能。让我们一起踏上Python编程之旅吧!
|
8天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从基础到实战
【10月更文挑战第36天】本文将带你走进Python的世界,从基础语法出发,逐步深入到实际项目应用。我们将一起探索Python的简洁与强大,通过实例学习如何运用Python解决问题。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供有价值的指导和灵感。让我们一起开启Python编程之旅,用代码书写想法,创造可能。