Python 快速入门

1. 引言

Python确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特色。Python是“一种解释型、面向对象、带有动态语句的高级程序语言”。Pyhton运行起来可能不会像C/C++那样的编译语言一样快,但是Python省下的编程时间足以成为拥有它的理由,更何况大多数程序运行速度并不是那么差异明显。正如Hetland在书中描述的那样,不久以后可能就会有人问了:“谁不会Python呢?”。这里需要强调一下,Python这个名字是从Monty Python来的,并不是来起源于蟒蛇这种动物。[Python 基础教程]。(https://www.runoob.com/python/python-tutorial.html)

1.1 Python的特点

Python的特点
简单
Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
易学
就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。
免费、开源
Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。
高层语言
当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
可移植性
由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有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!
解释性
一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。
而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。
面向对象
Python即支持面向过程的编程也支持面向对象的编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。
可扩展性
如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
可嵌入性
你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
丰富的库
Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。
除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

1.2 安装Python

安装Python
Linux/Mac OS系统
苹果系统以及大部分Linux已经安装了Python,你可以打开终端,然后输入如下所示的命令:python -V,查看。

Windows系统
Windows用户可以访问Python.org/download,从网站上下载最新的版本,安装后在cmd中查看。

启动Python的时候,出现的符号>>>是提示符,提示可以在后面写点什么,比如:print('Hello World!')

提示: 建议初学者使用Python IDE编写Python代码,简单容易上手,Linux和Windows都可。这里的常用IDE 有PyCharm、VSCode等。推荐使用PyCharm社区版(免费且功能对于新手该有的都有),配置简单,较VSCode省去了配置的步骤。

更多Python IDE介绍详见:https://www.runoob.com/python/python-ide.html

1.3 第一个Python程序

第一个 Python 程序可通过:交互式编程、脚本式编程实现。

1.4 Python 命令行参数

可执行程序跨平台使用,或者调用脚本时需要输入命令行参数,Python的这部分内容和C/C++的命令行调用相似。

Python 提供了 getopt 模块来获取命令行参数

$ python test.py arg1 arg2 arg3
Python 中也可以使用 sys 的 sys.argv 来获取命令行参数:
sys.argv 是命令行参数列表。
len(sys.argv) 是命令行参数个数。

注:sys.argv[0] 表示脚本名。

[1] PyCharm使用详细教程
[2] 通过Pycharm安装包以及Matplotlib包安装遇到的各种问题
[3] 中文编码问题:https://www.runoob.com/python/python-chinese-encoding.html

2. 基本概念

2.1. 字符串

2.1.1 字符串

字符串是字符的序列。字符串基本上就是一组单词。
使用单引号(')
你可以用单引号指示字符串,就如同’Quote me on this’这样。所有的空白,即空格和制表符都照原样保留。

使用双引号(")
在双引号中的字符串与单引号中的字符串的使用完全相同,例如"What’s your name?"。

使用三引号(‘’'或"“”)
利用三引号,你可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双引号。例如:

'''This is a multi-line string. This is the first
line.
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond."
'''

2.1.2 转义符

假设你想要在一个字符串中包含一个单引号('),那么你该怎么指示这个字符串?例如,这个字符串是What’s your name?。你肯定不会用’What’s your name?‘来指示它,因为Python会弄不明白这个字符串从何处开始,何处结束。所以,你需要指明单引号而不是字符串的结尾。可以通过转义符来完成这个任务。你用’来指示单引号——注意这个反斜杠。现在你可以把字符串表示为’What’s your name?’。另一个表示这个特别的字符串的方法是"What’s your name?",即用双引号。类似地,要在双引号字符串中使用双引号本身的时候,也可以借助于转义符。另外,你可以用转义符\来指示反斜杠本身。
值得注意的一件事是,在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开
始一个新的行。例如:

"This is the first sentence.\
This is the second sentence."

等价于"This is the first sentence. This is the second sentence."

2.1.3 自然字符串

如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串。自
然字符串通过给字符串加上前缀r或R来指定。例如r"Newlines are indicated by\n"。

2.1.4 Unicode字符串

Python3中所有字符串默认都是Unicode。
Unicode是书写国际文本的标准方法。如果你想要用你的母语如北印度语或阿拉伯语写文本,那么你需要有一个支持Unicode的编辑器。类似地,Python允许你处理Unicode文本——你只需要在字符串前加上前缀u或U。例如,u"This is a Unicode string."。
记住,在你处理文本文件的时候使用Unicode字符串,特别是当你知道这个文件含有用非英语的语言写的文本。

2.1.5 字符串总结

字符串是不可变的
这意味着一旦你创造了一个字符串,你就不能再改变它了。虽然这看起来像是一件坏事,但实际上它不是。我们将会在后面的程序中看到为什么我们说它不是一个缺点。

给C/C++程序员的注释
在Python中没有专门的char数据类型。确实没有需要有这个类型,我相信你不会为此而烦恼。
给Perl/PHP程序员的注释
记住,单引号和双引号字符串是完全相同的——它们没有在任何方面有不同。
给正则表达式用户的注释
一定要用自然字符串处理正则表达式。否则会需要使用很多的反斜杠。例如,后向引用符可以写成’\1’或r’\1’。

2.2. 数字和表达式


在Python中有4种类型的数——整数、长整数、浮点数和复数。
2是一个整数的例子。
长整数不过是大一些的整数。
3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是复数的例子。

整数除法,在Python3中都是保留的浮点数。详细分析请见:整数除法,在python3中都是保留的浮点数

2.2.1 运算符

运算符

#除
print(1/2)
print(1/2.0)
print(1/2.)
print(1./2)
print(1.0/2)
print(type(1/2))

#整除
print(1//2)
print(type(1//2))

#取余(模除),x%y的结果为x除以y的余数
print(10%3)

#幂运算,23次方
print(2**3)
print(pow(2,3))

详见:Python 运算符

2.2.2 比较运算符

Python中的比较运算符和C/C++中的一致。
<> 不等于 比较两个对象是否不相等。python3 已废弃。

2.2.3 赋值运算符

Python中的赋值运算符和C/C++中的一致。

2.2.4 成员运算符

成员运算符用于测试实例中包含了一系列的成员,包括字符串,列表或元组。
在这里插入图片描述

2.2.5 身份运算符

身份运算符用于比较两个对象的存储单元。
在这里插入图片描述

2.3. 常用函数

pow(x,y)
abs(num)
cmath.sqrt(num)
cmath.ceil(num)
cmath.floor(num)

#类型转换
float(obj)
int(obj)
long(obj)
str(obj)

#返回值的字符串形式
repr(obj)

2.4. 缩进

错误的缩进会引发错误,空白在Python中是重要的。事实上行首的空白是重要的。它称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。我们将在后面的章节中看到有关块的用处的例子。

3. 变量类型

Python 定义了一些标准数据类型,用于存储各种类型的数据。Python有五个标准的数据类型:Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)。

3.1 数字

Python支持四种不同的数字类型:
int(有符号整型)
long(长整型,也可以代表八进制和十六进制)
float(浮点型)
complex(复数)

注意:long 类型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 类型数据溢出后会自动转为long类型。在 Python3.X 版本中 long 类型被移除,使用 int 替代。

数字常用函数见:https://www.runoob.com/python/python-numbers.html

3.2 字符串

如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。

>>> s = 'abcdef'
>>> s[1:5]
'bcde'

字符串常用函数见:https://www.runoob.com/python/python-strings.html

3.3 列表

List(列表) 是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。列表用 [ ] 标识,是 python 最通用的复合数据类型。

列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
加号 + 是列表连接运算符,星号 * 是重复操作。
列表操作详见:https://www.runoob.com/python/python-lists.html

3.4 元组

Python 元组是另一个数据类型,类似于 List(列表)。元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
元组操作详见:https://www.runoob.com/python/python-tuples.html

3.5 字典

Python 字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
字典操作详见:https://www.runoob.com/python/python-dictionary.html

4. 控制流

4.1 if条件判断

Python 编程中 if 语句用于控制程序的执行,基本形式为:

if 判断条件:
    执行语句……
else:
    执行语句……
if 判断条件1:
    执行语句1……
elif 判断条件2:
    执行语句2……
elif 判断条件3:
    执行语句3……
else:
    执行语句4……

4.2 While 循环语句

Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:

while 判断条件(condition):
    执行语句(statements)……

循环使用 else 语句,在 python 中,while … else 在循环条件为 false 时执行 else 语句块:

#!/usr/bin/python
 
count = 0
while count < 5:
   print count, " is  less than 5"
   count = count + 1
else:
   print count, " is not less than 5"

4.3 for 循环语句

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。for循环的语法格式如下:

for iterating_var in sequence:
   statements(s)

在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
for num in range(10,20):  # 迭代 1020 之间的数字
   for i in range(2,num): # 根据因子迭代
      if num%i == 0:      # 确定第一个因子
         j=num/i          # 计算第二个因子
         print ('%d 等于 %d * %d' % (num,i,j))
         break            # 跳出当前循环
   else:                  # 循环的 else 部分
      print ('%d 是一个质数' % num)

4.4 循环控制语句

循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
break: 在语句块执行过程中终止循环,并且跳出整个循环
continue: 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。
pass: pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。

break、continue和C++中的用法相似

#!/usr/bin/python
# -*- coding: UTF-8 -*- 
 
# 输出 Python 的每个字母
for letter in 'Python':
   if letter == 'h':
      pass
      print '这是 pass 块'
   print '当前字母 :', letter
 
print "Good bye!"

在 Python3.x 的时候 pass 可以写或不写。

Python2.x:

def function():
    # 空函数在Python2.x版本中pass是必须的
    pass

Python3.x

def function():
    # 在Python3.x的时候pass可以写或不写
    pass

5. 函数

你可以定义一个由自己想要功能的函数,以下是简单的规则:

def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

全局变量

x=1
def change_global():
    global x
    x += 1
    return x
x = 1
print(change_global())

6. 模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python 代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。

Python中的包
包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。
简单来说,包就是文件夹,但该文件夹下必须存在__init__.py文件, 该文件的内容可以为空__init__.py 用于标识当前文件夹是一个包。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值