首页 > 编程知识 正文

《Python程序设计》,Python程序语言设计基础

时间:2023-05-04 09:50:28 阅读:200762 作者:4550

一、Python语言特点 解释型语言设计哲学是“优雅” 、 “明确” 、 “简单 ”开发哲学是“用一种方法 , 最好是只用一种方法来做一件事”现代编程语言
面向对象;支持泛型设计;支持函数式编程丰富的数据结构和第三方函数库编程
Django webpy ;Matplotlib Numpy;PyQt Tkinter ;BeautifulSoup PIL 二、基础概念 1. 数和表达式 除法运算的结果为小数,即浮点数(float或floating-point number)丢弃小数部分,即执行整除运算,可使用双斜杠。这是求余(求模)运算符。x y % 的结果为x除以y的余数。换而言之,结果为执行整除时余 下的部分,即x y % 等价于x - ((x // y) * y)。基于除法运算的工作原理,很容易理解终的余数是多少。对于整除运算,需要明白的一个 重点是它向下圆整结果。因此在结果为负数的情况下,圆整后将离0更远。这意味着对于-10 // 3, 将向下圆整到-4,而不是向上圆整到-3。乘方运算符的优先级比求负(单目减)高,因此-32等价于-(32)。如果你要计 算的是(-3)**2,必须明确指出。 2. 变量

另一个你可能熟悉的概念是变量(variable)。如果代数对你来说不过是遥远的记忆,也不用 担心,因为Python中的变量理解起来很容易。变量是表示(或指向)特定值的名称。例如,你可 能想使用名称x来表示3,为此执行如下代码: >>> x = 3 这称为赋值(assignment),我们将值3赋给了变量x。换而言之,就是将变量x与值(或对象) 3关联起来。给变量赋值后,就可在表达式中使用它。 >>> x * 2 6 不同于其他一些语言,使用Python变量前必须给它赋值,因为Python变量没有默认值。
注意 在Python中,名称(标识符)只能由字母、数字和下划线(_)构成,且不能以数字打头。 因此Plan9是合法的变量名,而9Plan不是

3. 获取用户输入

函数input

input("1+1=?") 4. 函数

乘方运算符:**
使用函数:pow

print(2**3) #8print(pow(2,3))#8

有多个内置函数可用于编写数值表达式。例如,abs计算绝对值,round将浮点数圆整为与之接近的整数。

abs(number) 返回指定数的绝对值bytes(string, encoding[, errors]) 对指定的字符串进行编码,并以指定的方式处理错误cmath.sqrt(number) 返回平方根;可用于负数float(object) 将字符串或数字转换为浮点数help([object]) 提供交互式帮助input(prompt) 以字符串的方式获取用户输入int(object) 将字符串或数转换为整数math.ceil(number) 以浮点数的方式返回向上圆整的结果math.floor(number) 以浮点数的方式返回向下圆整的结果math.sqrt(number) 返回平方根;不能用于负数pow(x, y[, z]) 返回x的y次方对z求模的结果print(object, …) 将提供的实参打印出来,并用空格分隔 5. 模块

可将模块视为扩展,通过将其导入可以扩展Python功能。要导入模块,可使用特殊命令import。前一节提及的函数floor包含在模块math中。

import mathprint(math.floor(32.9))#32

请注意其中的工作原理:我们使用import导入模块,再以module.function的方式使用模块 中的函数。就这里执行的操作而言,也可像前面处理input的返回值那样,将这个数字转换为整数。

print(int(32.9))#32

注意:还有一些类似的函数,可用于转换类型,如str和float。实际上,它们并不是函数,而 是类。类将在本书后面更详细地介绍。

如果确定不会从不同模块导入多个同名函数,你可能不想每次调用函数时都指定模块名。在这种情况下,可使用命令import的如下变种:

from math import sqrtprint(sqrt(9)) #3.0

通过使用命令import的变种from module import function,可在调用函数时不指定模块前缀。

事实上,可使用变量来引用函数(以及其他大部分Python元素)。执行赋值语句foo = math.sqrt后,就可使用foo来计算平方根。例如,foo(4)的结果为2.0。

6. cmath 和复数 import cmathprint(cmath.sqrt(-1)) #1j

注意到这里没有使用from … import …。如果使用了这种import命令,将无法使用常规函 数sqrt。类似这样的名称冲突很隐蔽,因此除非必须使用from版的import命令,否则应坚持使用常规版import命令。
1j是个虚数,虚数都以j(或J)结尾。复数算术运算都基于如下定义:-1的平方根为1j。

print((1 + 3j) * (9 + 4j)) #(-3+31j)

Python本身提供了对复数的支持。
注意 Python没有专门表示虚数的类型,而将虚数视为实部为零的复数。

7. 海龟绘图法

编写简单示例时,print语句很有用,因为几乎在任何地方都可使用它。如果你要尝试提供更有趣的输出,应考虑使用模块turtle,它实现了海龟绘图法:from turtle import *
海龟绘图法的理念源自形如海龟的机器人。这种机器人可前进和后退,还可向左和向右 旋转一定的角度。另外,这种机器人还携带一只铅笔,可通过抬起或放下来控制铅笔在什么 时候接触到脚下的纸张。模块turtle让你能够模拟这样的机器人。
绘制一个三角形:

from turtle import *forward(100) left(120) forward(100) left(120) forward(100)

绘制五角星:

from turtle import *color('red','red')begin_fill()for i in range(5): fd(200) rt(144)end_fill()done() 8. 从命令提示符运行 Python脚本

实际上,运行程序的方式有多种。首先,假定你打开了DOS窗口或UNIX shell,并切换到了 Python可执行文件(在Windows中为python.exe,在UNIX中为python)或将该可执行文件所在的目录加入到了环境变量PATH中(仅适用于Windows)。另外,假定脚本(hello.py)存储在当前目录下。满足上述条件后,就可在Windows中使用如下命令来执行这个脚本: C:>python hello.py 在UNIX系统中,可使用如下命令: $ python hello.py命令是一样的,只是系统提示符不同。

9. 让脚本像普通程序一样

在有些情况下,你希望能够像执行其他程序(如Web浏览器或文本编辑器)一样执行Python 脚本,而无需显式地使用Python解释器。UNIX提供了实现这种目标的标准方式:让脚本的第一 行以字符序列#!(称为pound rqdxg或sherqdxg)开始,并在它后面指定用于对脚本进行解释的程序 (这里是Python)的绝对路径。只需将下面的代码作为脚本的第一行, 就可在UNIX中轻松运行脚本: #!/usr/gsdhmgsjx/env python 不管Python库位于什么地方,这都将让你能够像运行普通程序一样运行脚本。如果你安装了 多个版本的Python,可用更具体的可执行文件名(如python3)替换python。 要像普通程序一样运行脚本,还必须将其变成可执行的: $ chmod a+x hello.py 现在,可以像下面这样来运行它(假定当前目录包含在执行路径中): $ hello.py 如果这不管用,请尝试使用./hello.py,这在当前目录(.)未包含在执行路径中时也管用(负责的系统管理员会告诉你执行路径是什么。

10. 注释

注释:程序员在代码中加入的说明信息,不被计算机执行
注释的两种方法:

单行注释以#开头 #Here are the comments多行注释以 ’’’开头和结尾 ’’’ This is a multiline comment used in Python ’’’ 11. 字符串 单引号字符串以及对引号转义 print("Hello, world!" )print('Hello, world!' )

Python在打印字符串时,用单引号将其括起,使用的是双引号没有任何差别。

这里使用的是单引号,结果却完全相同。既然如此,为何同时支持单引号和双引号呢?因为 在有些情况下,这可能会有用。

print("Let's go!")print('"Hello, world!" she said')

下面这种情况编译不通过,可以用""进行转义

print( 'Let's go!' ) 字符串表示 str 和 repr print(repr("Hello,nworld!"))print(str("Hello,nworld!"))


使用str能以合理的方式将值转换为用户能够看懂的字符串。例如,尽可能将特殊字符编码 转换为相应的字符。然而,使用repr时,通常会获得值的合法Python表达式表示。

长字符串、原始字符串和字节 长字符串:要表示很长的字符串(跨越多行的字符串)可使用三引号(而不是普通引号)。 print('''This is a very long string. It continues here. And it's not over yet. "Hello, world!" Still here.''')

还可使用三个双引号,如"""like this"""。请注意,这让解释器能够识别表示字符串开始 和结束位置的引号,因此字符串本身可包含单引号和双引号,无需使用反斜杠进行转义。

常规字符串也可横跨多行。只要在行尾加上反斜杠,反斜杠和换行符将被转义,即被忽略。

原始字符串
原始字符串不会对反斜杠做特殊处理,而是让字符串包含的每个字符都保持原样 print(r'C:nowhere')print(r'C:Program Filesfnordfoobarbazfrozzbozz')

原始字符串用前缀r表示
原始字符串不能以单个反斜杠结尾。换而言之,原始字符串的后一个字符不能是反 斜杠,除非你对其进行转义(但进行转义时,用于转义的反斜杠也将是字符串的一部分)。根据 前一个示例,这一点应该是显而易见的。如果后一个字符(位于结束引号前面的那个字符)为 反斜杠,且未对其进行转义,Python将无法判断字符串是否到此结束。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。