位置:首页 > Python快速入门 >

Python快速入门

作者:小牛君|发布时间:2017-07-06

小牛学堂的课程大纲最近进行了再一次升级,并且同时推出Java大数据平台开发班、Python爬虫与数据挖掘班、Spark项目班、Spark大神班、机器学习算法实战班、BI数据分析实战班, 目前这类人群凤毛麟角,导致这个行业的平均薪资极高,为此小牛学堂集合了行业的诸多大牛开设对应班级,为想学习的同学提供机会!
如果想了解详细情况,请联系 今日值班讲师 或者直接加入千人QQ群进行咨询:210992946

以下是本文正文:


Python是面向对象,高级语言,解释,动态和多用途编程语言。Python易于学习,而且功能强大,功能多样的脚本语言使其对应用程序开发具有吸引力。
Python的语法和动态类型具有其解释性质,使其成为许多领域的脚本编写和快速应用程序开发的理想语言。

Python支持多种编程模式,包括面向对象编程,命令式和函数式编程或过程式编程。

Python几乎无所不能,一些常用的开发领域,如Web编程。这就是为什么它被称为多用途,因为它可以用于网络,企业,3D CAD等软件和系统开发。

在Python中,不需要使用数据类型来声明变量,因为它是动态类型的,所以可以写一个如 a=10 来声明一个变量a中的值是一个整数类型。

Python使开发和调试快速,因为在python开发中没有包含编译步骤,并且编辑 <-> 测试 <-> 调试循环使用代码开发效率非常高。

Python是一种高级,解释,交互和面向对象的脚本语言。 Python被设计为高度可读性。 它使用英语关键字,而其他语言使用标点符号。它的语法结构比其他语言少。

  • Python是解释型语言 - Python代码在解释器中运行时处理,执行前不需要编译程序。 这与PERL和PHP类似。

  • Python是交动的 - 在Python提示符下面直接和解释器进行交互来编写程序。

  • Python是面向对象的 - Python支持面向对象的风格或编程技术,将代码封装在对象内。

  • Python是一门初学者的语言 - Python是初学者程序员的伟大语言,并支持从简单的文本处理到WWW浏览器到游戏的各种应用程序的开发。

第一节 Python 可以用来开发什么?

Python作为一个整体可以用于任何软件开发领域。下面来看看Python可以应用在哪些领域的开发。如下所列 -

1.基于控制台的应用程序

Python可用于开发基于控制台的应用程序。 例如:IPython

2.基于音频或视频的应用程序

Python在多媒体部分开发,证明是非常方便的。 一些成功的应用是:TimPlayercplay等。

3.3D CAD应用程序

Fandango是一个真正使用Python编写的应用程序,提供CAD的全部功能。

4.Web应用程序

Python也可以用于开发基于Web的应用程序。 一些重要的开发案例是:PythonWikiEnginesPocooPythonBlogSoftware等,如国内的成功应用案例有:豆瓣,知乎等。

5.企业级应用

Python可用于创建可在企业或组织中使用的应用程序。一些实时应用程序是:OpenErpTrytonPicalo等。

6.图像应用

使用Python可以开发图像应用程序。 开发的应用有:VPython,Gogh,imgSeek等

第二节 Python安装和环境配置

Python 3适用于Windows,Mac OS和大多数Linux操作系统。即使Python 2目前可用于许多其他操作系统,有部分系统Python 3还没有提供支持或者支持了但被它们在系统上删除了,只保留旧的Python 2版本。

参考:http://www.yiibai.com/python/python_environment.html

第三节 Python命令行参数

Python提供了一个getopt模块,用于解析命令行选项和参数。

$ python test.py arg1 arg2 arg3

Python sys模块通过sys.argv提供对任何命令行参数的访问。主要有两个参数变量 -

  • sys.argv是命令行参数的列表。
  • len(sys.argv)是命令行参数的数量。

这里sys.argv [0]是程序名称,即脚本的名称。比如在上面示例代码中,sys.argv [0]的值就是 test.py

示例

看看以下脚本command_line_arguments.py的代码 -

#!/usr/bin/python3

import sys

print ('Number of arguments:', len(sys.argv), 'arguments.')
print ('Argument List:', str(sys.argv))

现在运行上面的脚本,这将产生以下结果 -

F:\>python F:\worksp\python\command_line_arguments.py
Number of arguments: 1 arguments.
Argument List: ['F:\\worksp\\python\\command_line_arguments.py']

F:\>python F:\worksp\python\command_line_arguments.py arg1 arg2 arg3 arg4
Number of arguments: 5 arguments.
Argument List: ['F:\\worksp\\python\\command_line_arguments.py', 'arg1', 'arg2', 'arg3', 'arg4']

F:\>

注意 - 如上所述,第一个参数始终是脚本名称,它也被计入参数的数量。

解析命令行参数

Python提供了一个getopt模块,可用于解析命令行选项和参数。该模块提供了两个功能和异常,以启用命令行参数解析。

getopt.getopt方法

此方法解析命令行选项和参数列表。以下是此方法的简单语法 -

getopt.getopt(args, options, [long_options])

getopt.GetoptError异常

当在参数列表中有一个无法识别的选项,或者当需要一个参数的选项不为任何参数时,会引发这个异常。
异常的参数是一个字符串,指示错误的原因。 属性msgopt给出错误消息和相关选项。

示例

假设想通过命令行传递两个文件名,也想给出一个选项用来显示脚本的用法。脚本的用法如下 -

usage: file.py -i <inputfile> -o <outputfile>

以下是command_line_usage.py的以下脚本 -

#!/usr/bin/python3

import sys, getopt

def main(argv):
   inputfile = ''
   outputfile = ''
   try:
      opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
   except getopt.GetoptError:
      print ('GetoptError, usage: command_line_usage.py -i <inputfile> -o <outputfile>')
      sys.exit(2)
   for opt, arg in opts:
      if opt == '-h':
         print ('usage: command_line_usage.py -i <inputfile> -o <outputfile>')
         sys.exit()
      elif opt in ("-i", "--ifile"):
         inputfile = arg
      elif opt in ("-o", "--ofile"):
         outputfile = arg
   print ('Input file is "', inputfile)
   print ('Output file is "', outputfile)

if __name__ == "__main__":
   main(sys.argv[1:])

现在,使用以下几种方式运行来脚本,输出如下所示:

F:\worksp\python>python command_line_usage.py -h
usage: command_line_usage.py -i <inputfile> -o <outputfile>

F:\worksp\python>python command_line_usage.py -i inputfile.txt -o
GetoptError, usage: command_line_usage.py -i <inputfile> -o <outputfile>

F:\worksp\python>python command_line_usage.py -i inputfile.txt -o outputfile.txt
Input file is " inputfile.txt
Output file is " outputfile.txt

F:\worksp\python>

第四节 Python变量类型

变量是保存存储值的内存位置。也就是说,当创建一个变量时,可以在内存中保留一些空间。

基于变量的数据类型,解释器分配内存并决定可以存储在保留的存储器中的内容。 因此,通过为变量分配不同的数据类型,可以在这些变量中存储的数据类型为整数,小数或字符等等。

将值分配给变量

在Python中,变量不需要明确的声明类型来保留内存空间。当向变量分配值时,Python会自动发出声明。 等号(=)用于为变量赋值。

=运算符左侧的操作数是变量的名称,而=运算符右侧的操作数是将在存储在变量中的值。 例如 -

#!/usr/bin/python3

counter = 100          # 一个整型数
miles   = 999.99       # 一个浮点数
name    = "Maxsu"       # 一个字符串
site_url  = "http://www.yiibai.com" # 一个字符串

print (counter)
print (miles)
print (name)
print (site_url)

这里,100,999.99和“Maxsu”分别是分配给countermilesname变量的值。执行上面代码将产生以下结果 -

100
999.99 
Maxsu
http://www.yiibai.com

多重赋值

Python允许同时为多个变量分配单个值。

例如 -

a = b = c = 1

这里,创建一个整数对象,其值为1,并且所有三个变量都分配给相同的内存位置。还可以将多个对象分配给多个变量。 例如 -

a, b, c = 10, 20, "maxsu"

这里,将两个值为1020的整数对象分别分配给变量ab,并将一个值为“maxsu”的字符串对象分配给变量c

标准数据类型

存储在内存中的数据可以是多种类型。 例如,一个人的年龄可存储为一个数字值,他的地址被存储为字母数字字符串。 Python具有各种标准数据类型,用于定义可能的操作以及每个标准数据类型的存储方法。

Python有五种标准数据类型 -

  • 1.数字
  • 2.字符串
  • 3.列表
  • 4.元组
  • 5.字典

1.Python数字

数字数据类型存储数字值。当为其分配值时,将创建数字对象。 例如 -

var1 = 10
var2 = 20

可以使用del语句删除对数字对象的引用。 del语句的语法是 -

del var1[,var2[,var3[....,varN]]]]

可以使用del语句删除单个对象或多个对象。

例如 -

del var
del var_a, var_b

Python支持三种不同的数值类型 -

  • int(有符号整数)
  • float(浮点实值)
  • complex(复数)

Python3中的所有整数都表示为长整数。 因此,长整数没有单独的数字类型。

例子

以下是一些数字示例 -

int float complex
10 0.0 3.14j
100 15.20 45.j
-786 -21.9 9.322e-36j
080 32.3+e18 .876j
-0490 -90. -.6545+0J
-0x260 -32.54e100 3e+26J
0x69 70.2-E12 4.53e-7j

复数是由x + yj表示的有序对的实数浮点数组成,其中xy是实数,j是虚数单位。

2.Python字符串

Python中的字符串被标识为在引号中表示的连续字符集。Python允许双引号或双引号。 可以使用片段运算符([][:])来获取字符串的子集(子字符串),其索引从字符串开始处的索引0开始,并且以-1表示字符串中的最后一个字符。

加号(+)是字符串连接运算符,星号(*)是重复运算符。例如 -

#!/usr/bin/python3
#coding=utf-8
# save file: variable_types_str1.py

str = 'yiibai.com'

print ('str = ', str)          # Prints complete string
print ('str[0] = ',str[0])       # Prints first character of the string
print ('str[2:5] = ',str[2:5])     # Prints characters starting from 3rd to 5th
print ('str[2:] = ',str[2:])      # Prints string starting from 3rd character
print ('str[-1] = ',str[-1])      # 最后一个字符,结果为:'!'
print ('str * 2 = ',str * 2)      # Prints string two times
print ('str + "TEST" = ',str + "TEST") # Prints concatenated string

将上面代码保存到 variable_types_str1.py 文件中,执行将产生以下结果 -

F:\worksp\python>python variable_types_str1.py
str =  yiibai.com
str[0] =  y
str[2:5] =  iba
str[2:] =  ibai.com
str[-1] =  m
str * 2 =  yiibai.comyiibai.com
str + "TEST" =  yiibai.comTEST

F:\worksp\python>

2.Python列表

列表是Python复合数据类型中最多功能的。 一个列表包含用逗号分隔并括在方括号([])中的项目。在某种程度上,列表类似于C语言中的数组。它们之间的区别之一是Python列表的所有项可以是不同的数据类型,而C语言中的数组只能是同种类型。

存储在列表中的值可以使用切片运算符([][])来访问,索引从列表开头的0开始,并且以-1表示列表中的最后一个项目。 加号(+)是列表连接运算符,星号(*)是重复运算符。例如 -

#!/usr/bin/python3
#coding=utf-8
# save file: variable_types_str1.py
list = [ 'yes', 'no', 786 , 2.23, 'minsu', 70.2 ]
tinylist = [100, 'maxsu']

print ('list = ', list)          # Prints complete list
print ('list[0] = ',list[0])       # Prints first element of the list
print ('list[1:3] = ',list[1:3])     # Prints elements starting from 2nd till 3rd 
print ('list[2:] = ',list[2:])      # Prints elements starting from 3rd element
print ('list[-3:-1] = ',list[-3:-1])    
print ('tinylist * 2 = ',tinylist * 2)  # Prints list two times
print ('list + tinylist = ', list + tinylist) # Prints concatenated lists

将上面代码保存到 variable_types_str1.py 文件中,执行将产生以下结果 -

F:\worksp\python>python variable_types_list.py
list =  ['yes', 'no', 786, 2.23, 'minsu', 70.2]
list[0] =  yes
list[1:3] =  ['no', 786]
list[2:] =  [786, 2.23, 'minsu', 70.2]
list[-3:-1] =  [2.23, 'minsu']
tinylist * 2 =  [100, 'maxsu', 100, 'maxsu']
list + tinylist =  ['yes', 'no', 786, 2.23, 'minsu', 70.2, 100, 'maxsu']

F:\worksp\python>

3.Python元组

元组是与列表非常类似的另一个序列数据类型。元组是由多个值以逗号分隔。然而,与列表不同,元组被括在小括号内(())。

列表和元组之间的主要区别是 - 列表括在括号([])中,列表中的元素和大小可以更改,而元组括在括号(())中,无法更新。元组可以被认为是只读列表。 例如 -

#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_tuple.py
tuple = ( 'maxsu', 786 , 2.23, 'yiibai', 70.2  )
tinytuple = (999.0, 'maxsu')

# tuple[1] = 'new item value' 不能这样赋值

print ('tuple = ', tuple)           # Prints complete tuple
print ('tuple[0] = ', tuple[0])        # Prints first element of the tuple
print ('tuple[1:3] = ', tuple[1:3])      # Prints elements starting from 2nd till 3rd 
print ('tuple[-3:-1] = ', tuple[-3:-1])       # 输出结果是什么?
print ('tuple[2:] = ', tuple[2:])       # Prints elements starting from 3rd element
print ('tinytuple * 2 = ',tinytuple * 2)   # Prints tuple two times
print ('tuple + tinytuple = ', tuple + tinytuple) # Prints concatenated tuple

将上面代码保存到 variable_types_tuple.py 文件中,执行将产生以下结果 -

F:\worksp\python>python variable_types_tuple.py
tuple =  ('maxsu', 786, 2.23, 'yiibai', 70.2)
tuple[0] =  maxsu
tuple[1:3] =  (786, 2.23)
tuple[-3:-1] =  (2.23, 'yiibai')
tuple[2:] =  (2.23, 'yiibai', 70.2)
tinytuple * 2 =  (999.0, 'maxsu', 999.0, 'maxsu')
tuple + tinytuple =  ('maxsu', 786, 2.23, 'yiibai', 70.2, 999.0, 'maxsu')

F:\worksp\python>

以下代码对于元组无效,因为尝试更新元组,但是元组是不允许更新的。类似的情况可能与列表 -

#!/usr/bin/python3

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
list = [ 'abcd', 786 , 2.23, 'john', 70.2  ]
tuple[2] = 1000    # 无法更新值,程序出错
list[2] = 1000     # 有效的更新,合法

Python字典

Python的字典是一种哈希表类型。它们像Perl中发现的关联数组或散列一样工作,由键值对组成。字典键几乎可以是任何Python数据类型,但通常为了方便使用数字或字符串。另一方面,值可以是任意任意的Python对象。

字典由大括号({})括起来,可以使用方括号([])分配和访问值。例如 -

#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_dict.py

dict = {}
dict['one'] = "This is one"
dict[2]     = "This is my"

tinydict = {'name': 'maxsu', 'code' : 1024, 'dept':'IT Dev'}


print ("dict['one'] = ", dict['one'])       # Prints value for 'one' key
print ('dict[2] = ', dict[2])           # Prints value for 2 key
print ('tinydict = ', tinydict)          # Prints complete dictionary
print ('tinydict.keys() = ', tinydict.keys())   # Prints all the keys
print ('tinydict.values() = ', tinydict.values()) # Prints all the values

将上面代码保存到 variable_types_dict.py 文件中,执行将产生以下结果 -

F:\worksp\python>python variable_types_dict.py
dict['one'] =  This is one
dict[2] =  This is my
tinydict =  {'name': 'maxsu', 'code': 1024, 'dept': 'IT Dev'}
tinydict.keys() =  dict_keys(['name', 'code', 'dept'])
tinydict.values() =  dict_values(['maxsu', 1024, 'IT Dev'])

字典中的元素没有顺序的概念。但是说这些元素是“乱序”是不正确的; 它们是无序的。

数据类型转换

有时,可能需要在内置类型之间执行转换。要在类型之间进行转换,只需使用类型名称作为函数即可。

有以下几种内置函数用于执行从一种数据类型到另一种数据类型的转换。这些函数返回一个表示转换值的新对象。它们分别如下所示 -

编号 函数 描述
1 int(x [,base]) x转换为整数。如果x是字符串,则要base指定基数。
2 float(x) x转换为浮点数。
3 complex(real [,imag]) 创建一个复数。
4 str(x) 将对象x转换为字符串表示形式。
5 repr(x) 将对象x转换为表达式字符串。
6 eval(str) 评估求值一个字符串并返回一个对象。
7 tuple(s) s转换为元组。
8 list(s) s转换为列表。
9 set(s) s转换为集合。
10 dict(d) 创建一个字典,d必须是(key,value)元组的序列
11 frozenset(s) s转换为冻结集
12 chr(x) 将整数x转换为字符
13 unichr(x) 将整数x转换为Unicode字符。
14 ord(x) 将单个字符x转换为其整数值。
15 hex(x) 将整数x转换为十六进制字符串。
16 oct(x) 将整数x转换为八进制字符串。

第五节 Python基本运算符

运算符是可以操纵操作数值的结构。如下一个表达式:10 + 20 = 30。这里,1020称为操作数,+则被称为运算符。

运算符类型

Python语言支持以下类型的运算符 -

  • 1.算术运算符
  • 2.比较(关系)运算符
  • 3.赋值运算符
  • 4.逻辑运算符
  • 5.按位运算符
  • 6.成员运算符
  • 7.身份运算符

下面让我们依次来看看所有的运算符。

1.算术运算符

假设变量a的值是10,变量b的值是21,则 -

运算符 描述 示例
+ 加法运算,将运算符两边的操作数增加。 a + b = 31
- 减法运算,将运算符左边的操作数减去右边的操作数。 a – b = -11
* 乘法运算,将运算符两边的操作数相乘 a * b = 210
/ 除法运算,用右操作数除左操作数 b / a = 2.1
% 模运算,用右操作数除数左操作数并返回余数 b % a = 1
** 对运算符进行指数(幂)计算 a ** b,表示1021次幂
// 地板除 - 操作数的除法,其结果是删除小数点后的商数。 但如果其中一个操作数为负数,则结果将被保留,即从零(向负无穷大)舍去 9//2 = 49.0//2.0 = 4.0, -11//3 = -4, -11.0//3 = -4.0

有关算术运算符的示例代码,请参考::http://www.yiibai.com/python/arithmetic_operators_example.html

2.比较(关系)运算符

比较(关系)运算符比较它们两边的值,并确定它们之间的关系。它们也称为关系运算符。假设变量a的值10,变量b的值是20,则 -

运算符 描述 示例
== 如果两个操作数的值相等,则条件为真。 (a == b)求值结果为 false
!= 如果两个操作数的值不相等,则条件为真。 (a != b)求值结果为 true
> 如果左操作数的值大于右操作数的值,则条件成为真。 (a > b)求值结果为 false
< 如果左操作数的值小于右操作数的值,则条件成为真。 (a < b)求值结果为 true
>= 如果左操作数的值大于或等于右操作数的值,则条件成为真。 (a >= b)求值结果为 false
<= 如果左操作数的值小于或等于右操作数的值,则条件成为真。 (a <= b)求值结果为 true

有关比较(关系)运算符的示例代码,请参考:http://www.yiibai.com/python/comparison_operators_example.html

3.赋值运算符

假设变量a的值10,变量b的值是20,则 -

运算符 描述 示例
= 将右侧操作数的值分配给左侧操作数 c = a + b表示将a + b的值分配给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

有关赋值运算符的示例代码,请参考:http://www.yiibai.com/python/assignment_operators_example.html

4.逻辑运算符

Python语言支持以下逻辑运算符。假设变量a的值为True,变量b的值为False,那么 -

运算符 描述 示例
and 如果两个操作数都为真,则条件成立。 (a and b)的结果为False
or 如果两个操作数中的任何一个非零,则条件成为真。 (a or b)的结果为True
not 用于反转操作数的逻辑状态。 not(a and b) 的结果为True

有关逻辑运算符的示例代码,请参考:http://www.yiibai.com/python/logical_operators_example.html

5.按位运算符

按位运算符执行逐位运算。 假设变量a = 60; 和变量b = 13; 现在以二进制格式,它们将如下 -

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a = 1100 0011

Python的内置函数bin()可用于获取整数的二进制表示形式。

以下是Python语言支持位运算操作符 -

运算符 描述 示例
& 如果它存在于两个操作数中,则操作符复制位到结果中 (a & b) 结果表示为 0000 1100
如果它存在于任一操作数,则复制位。 (a b) = 61 结果表示为 0011 1101
^ 二进制异或。如果它是一个操作数集合,但不是同时是两个操作数则将复制位。 (a ^ b) = 49 (结果表示为 0011 0001)
~ 二进制补码,它是一元的,具有“翻转”的效果。 (~a ) = -61有符号的二进制数,表示为1100 0011的补码形式。
<< 二进制左移,左操作数的值由右操作数指定的位数左移。 a << 2 = 240 (结果表示为 1111 0000)
>> 二进制右移,左操作数的值由右操作数指定的位数右移。 a >> 2 = 15(结果表示为0000 1111)

有关按位运算符的示例代码,请参考:http://www.yiibai.com/python/bitwise_operators_example.html

6.成员运算符

Python成员运算符测试给定值是否为序列中的成员,例如字符串,列表或元组。 有两个成员运算符,如下所述 -

运算符 描述 示例
in 如果在指定的序列中找到一个变量的值,则返回true,否则返回false -
not in 如果在指定序列中找不到变量的值,则返回true,否则返回false -

有关成员运算符的示例代码,请参考:http://www.yiibai.com/python/membership_operators_example.html

7.身份运算符

身份运算符比较两个对象的内存位置。常用的有两个身份运算符,如下所述 -

运算符 描述 示例
is 如果运算符任一侧的变量指向相同的对象,则返回True,否则返回False
is not 如果运算符任一侧的变量指向相同的对象,则返回True,否则返回False -

有关身份运算符的示例代码,请参考:http://www.yiibai.com/python/identity_operators_example.html

8. 运算符优先级

下表列出了从最高优先级到最低优先级的所有运算符,如下所示 -

序号 运算符 描述
1 ** 指数(次幂)运算
2 ~ + - 补码,一元加减(最后两个的方法名称是+@-@)
3 * / % // 乘法,除法,模数和地板除
4 + -
5 >> << 向右和向左位移
6 & 按位与
7 ^ 按位异或和常规的“OR
8 <= < > >= 比较运算符
9 <> == != 等于运算符
10 = %= /= //= -= += *= **= 赋值运算符
11 is is not 身份运算符
12 in not in 成员运算符
13 not or and 逻辑运算符

有关运算符优先级的示例代码,请参考:http://www.yiibai.com/python/operators_precedence_example.html

第六节 Python决策

决策是指在执行程序期间根据发生的情况并根据条件采取的具体操作(行动)。决策结构评估求值多个表达式,产生TRUEFALSE作为结果。如果结果为TRUE或否则为FALSE,则需要确定要执行的操作和要执行的语句。

以下是大多数编程语言中的典型决策结构的一般形式 -

Python编程语言假定任何非零值和非空值都为TRUE值,而任何零值或空值都为FALSE值。

Python编程语言提供以下类型的决策语句。

编号 语句 描述
1 if语句 一个if语句由一个布尔表达式,后跟一个或多个语句组成。
2 if…else语句 一个if语句可以跟随一个可选的else语句,当if语句的布尔表达式为FALSE时,则else语句块将被执行。
3 嵌套if语句 可以在一个ifelse语句中使用一个ifelse if语句。

下面我们快速地来了解每个决策声明。

单个语句套件

一个if子句套件可能只包含一行,它可能与头语句在同一行上。

示例

以下是一行if子句的示例 -

#!/usr/bin/python3
var = 10
if ( var  == 10 ) : print ("Value of expression is 10")
print ("Good bye!")

当执行上述代码时,会产生以下结果 -

Value of expression is 100
Good bye!

第七节 Python循环

一般来说,语句依次执行 - 例如,函数中的第一个语句首先执行,然后是第二个语句,依次类推。但是有很多时候需要多次执行同一段代码,这就引入了循环的概念。

编程语言提供了允许更复杂的执行路径的各种控制结构。

循环语句允许多次执行语句或语句组。下图说明了一个循环语句流程结构 -

Python编程语言提供以下类型的循环来处理循环需求。

编号 循环 描述
1 while循环 在给定条件为TRUE时,重复一个语句或一组语句。 它在执行循环体之前测试状态。
2 for循环 多次执行一系列语句,并缩写管理循环变量的代码。
3 嵌套循环 可以使用一个或多个循环在whilefor循环中。

循环控制语句

循环控制语句从正常顺序更改执行。 当执行离开范围时,在该范围内创建的所有自动对象都将被销毁。

Python支持以下控制语句。

编号 控制语句 描述
1 break语句 终止循环语句并将执行转移到循环之后的语句。
2 continue语句 使循环跳过其主体的剩余部分,并立即重新测试其状态以进入下一次迭代。
3 pass语句 当语法需要但不需要执行任何命令或代码时,Python中就可以使用pass语句,此语句什么也不做,用于表示“占位”的代码,有关实现细节后面再写

下面简单地看一下循环控制语句。

迭代器和生成器

迭代器(Iterator)是允许程序员遍历集合的所有元素的对象,而不管其具体实现。在Python中,迭代器对象实现了iter()next()两种方法。

StringListTuple对象可用于创建Iterator

list = [1,2,3,4]
it = iter(list) # this builds an iterator object
print (next(it)) #prints next available element in iterator
# Iterator object can be traversed using regular for statement

for x in it:
   print (x, end=" ")
or using next() function
while True:
   try:
      print (next(it))
   except StopIteration:
      sys.exit() #you have to import sys module for this

发生器(generator)是使用yield方法产生或产生一系列值的函数。

当一个生成器函数被调用时,它返回一个生成器对象,而不用执行该函数。 当第一次调用next()方法时,函数开始执行,直到它达到yield语句,返回yielded值。 yield保持跟踪,即记住最后一次执行,而第二个next()调用从前一个值继续。

示例

以下示例定义了一个生成器,它为所有斐波纳契数字生成一个迭代器。

#!usr/bin/python3
import sys
def fibonacci(n): #generator function
   a, b, counter = 0, 1, 0
   while True:
      if (counter > n): 
         return
      yield a
      a, b = b, a + b
      counter += 1
f = fibonacci(5) #f is iterator object

while True:
   try:
      print (next(f), end=" ")
   except StopIteration:
      sys.exit()

第八节 Python数字

数字数据类型用于存储数值。它们是不可变数据类型。这意味着,更改数字数据类型的值会导致新分配对象。

当为数字数据类型分配值时,Python将创建数字对象。 例如 -

var1 = 1
var2 = 10

可以使用del语句删除对数字对象的引用。del语句的语法是 -

del var1[,var2[,var3[....,varN]]]]

可以使用del语句一次删除单个对象或多个对象。 例如 -

del var
del var_a, var_b

Python支持不同的数值类型 -

  • int(有符号整数) - 它们通常被称为整数或整数。它们是没有小数点的正或负整数。 Python 3中的整数是无限大小的。 Python 2 有两个整数类型 - intlongPython 3中没有“长整数”。

  • float(浮点实数值) - 也称为浮点数,它们表示实数,并用小数点写整数和小数部分。 浮点数也可以是科学符号,Ee表示10的幂 -

  • complex(复数) - 复数是以a + bJ的形式,其中ab是浮点,J(或j)表示-1的平方根(虚数)。数字的实部是a,虚部是b。复数在Python编程中并没有太多用处。

可以以十六进制或八进制形式表示整数 -

>>> number = 0xA0F #Hexa-decimal
>>> number
2575

>>> number = 0o37 #Octal
>>> number
31

例子

以下是一些数字值的示例 -

int float complex
10 0.0 3.14j
100 15.20 45.j
-786 -21.9 9.322e-36j
080 32.3+e18 .876j
-0490 -90. -.6545+0J
-0×260 -32.54e100 3e+26J
0×69 70.2-E12 4.53e-7j

复数由一个a + bj来表示,它是由实际浮点数的有序对组成,其中a是实部,b是复数的虚部。

数字类型转换

Python可将包含混合类型的表达式内部的数字转换成用于评估求值的常用类型。 有时需要从一个类型到另一个类型执行明确数字转换,以满足运算符或函数参数的要求。

  • int(x)x转换为纯整数。
  • long(x)x转换为长整数。
  • float(x)x转换为浮点数。
  • complex(x)x转换为具有实部x和虚部0的复数。
  • complex(x, y)xy转换为具有实部为x和虚部为y的复数。xy是数字表达式。

数学函数

Python中包括执行数学计算的函数,如下列表所示 -

编号 函数 描述
1 abs(x) x的绝对值,x与零之间的(正)距离。
2 ceil(x) x的上限,不小于x的最小整数。
3 cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 或者 如果 x > y 返回 1。在Python 3中已经弃用,可使用return (x>y)-(x<y)代替。
4 exp(x) x的指数,返回ex次幂
5 fabs(x) x的绝对值。
6 floor(x) 不大于x的最大整数。
7 log(x) x的自然对数(x > 0)。
8 log10(x) 以基数为10x的对数(x > 0)。
9 max(x1, x2,…) 给定参数中的最大值,最接近正无穷大值
10 min(x1, x2,…) 给定参数中的最小值,最接近负无穷小值
11 modf(x) x的分数和整数部分切成两项放入元组中,两个部分与x具有相同的符号。整数部分作为浮点数返回。
12 pow(x, y) xy次幂
13 round(x [,n]) x从小数点舍入到n位数。round(0.5)结果为 1.0round(-0.5) 结果为 -1.0
14 sqrt(x) x的平方根(x > 0)。

随机数函数

随机数字用于游戏,模拟,测试,安全和隐私应用。 Python包括以下通常使用的函数。

编号 函数 描述
1 choice(seq) 来自列表,元组或字符串的随机项目。
2 randrange ([start,] stop [,step]) 从范围(start, stop, step)中随机选择的元素。
3 random() 返回随机浮点数r(0 <= r < 1)
4 seed([x]) 设置用于生成随机数的整数起始值。在调用任何其他随机模块功能之前调用此函数,返回None
5 shuffle(lst) 将列表的项目随机化到位置。 返回None
6 uniform(x, y) 返回随机浮点数 r (x <= r < y)。

三角函数

随机数字用于游戏,模拟,测试,安全和隐私应用。 Python包括以下通常使用的函数。

编号 函数 描述
1 acos(x) 返回x的弧余弦值,以弧度表示。
2 asin(x) 返回x的弧线正弦,以弧度表示。
3 atan(x) 返回x的反正切,以弧度表示。
4 atan2(y, x) 返回atan(y / x),以弧度表示。
5 cos(x) 返回x弧度的余弦。
6 hypot(x, y) 返回欧几里得规范,sqrt(x*x + y*y)
7 sin(x) 返回x弧度的正弦。
8 tan(x) 返回x弧度的正切值。
9 degrees(x) 将角度x从弧度转换为度。
10 radians(x) 将角度x从角度转换为弧度。

数学常数

该模块还定义了两个数学常数 -

编号 常量 描述
1 pi 数学常数pi
2 e 数学常数e

第九节 Python字符串

字符串是Python中最受欢迎、最常使用的数据类型。可以通过用引号括起字符来创建它们。 Python将单引号与双引号相同。创建字符串和向一个变量赋值一样简单。 例如 -

var1 = 'Hello World!'
var2 = "Python Programming"

1.访问字符串中的值

Python不支持字符类型; 字符会被视为长度为1的字符串,因此也被认为是一个子字符串。要访问子串,请使用方括号的切片加上索引或直接使用索引来获取子字符串。 例如 -

#!/usr/bin/python3

var1 = 'Hello World!'
var2 = "Python Programming"

print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5]) # 切片加索引

当执行上述代码时,会产生以下结果 -

var1[0]:  H
var2[1:5]:  ytho

2.更新字符串

可以通过将变量分配给另一个字符串来“更新”现有的字符串。 新值可以与其原值相关或完全不同的字符串。 例如 -

#!/usr/bin/python3

var1 = 'Hello World!'

print ("Updated String :- ", var1[:6] + 'Python')

当执行上述代码时,会产生以下结果 -

Updated String :-  Hello Python

3.转义字符

下表是可以用反斜杠表示法表示转义或不可打印字符的列表。单引号以及双引号字符串的转义字符被解析。

反斜线符号 十六进制字符 描述/说明
\a 0x07 铃声或警报
\b 0x08 退格
\cx Control-x
\C-x Control-x
\e 0x1b Escape
\f 0x0c 换页
\M-\C-x Meta-Control-x
\n 0x0a 新一行
\nnn 八进制符号,其中n在0.7范围内
\r 0x0d 回车返回
\s 0x20 空格
\t 0x09 制表符
\v 0x0b 垂直制表符
\x 字符x
\xnn 十六进制符号,其中n0~9a~fA~F范围内

4.字符串特殊运算符

假设字符串变量a保存字符串值’Hello‘,变量b保存字符串值’Python‘,那么 -

运算符 说明 示例
+ 连接 - 将运算符的两边的值添加 a + b 结果为 HelloPython
* 重复 - 创建新字符串,连接相同字符串的多个副本 a*2 结果为 HelloHello
[] 切片 - 给出指定索引中的字符串值,它是原字符串的子串。 a[1] 结果为 e
[:] 范围切片 - 给出给定范围内的子字符串 a[1:4] 结果为 ell
in 成员关系 - 如果给定字符串中存在指定的字符,则返回true 'H' in a 结果为 1
not in 成员关系 - 如果给定字符串中不存在指定的字符,则返回true 'Y' not in a 结果为 1
r/R 原始字符串 - 抑制转义字符的实际含义。原始字符串的语法与正常字符串的格式完全相同,除了原始字符串运算符在引号之前加上字母“r”。 “r”可以是小写(r)或大写(R),并且必须紧靠在第一个引号之前。 print(r'\n') 将打印 \n ,或者 print(R'\n') 将打印 \n,要注意的是如果不加rR作为前缀,打印的结果就是一个换行。
% 格式 - 执行字符串格式化 请参见本文第5节

5.字符串格式化运算符

Python最酷的功能之一是字符串格式运算符。 这个操作符对于字符串是独一无二的,弥补了C语言中 printf()系列函数。 以下是一个简单的例子 -

#!/usr/bin/python3

print ("My name is %s and weight is %d kg!" % ('Maxsu', 71))

当执行上述代码时,会产生以下结果 -

My name is Maxsu and weight is 71 kg!

以下是可以与%符号一起使用的完整符号集列表 -

<


了解更多详情请联系 今日值班讲师 或者直接加入千人QQ群进行咨询:210992946

分享到:

编号 格式化符号 转换
1 %c 字符
2 %s 在格式化之前通过str()函数转换字符串
3 %i 带符号的十进制整数
4 %d 带符号的十进制整数
5 %u 无符号十进制整数
6 %o