Python程序设计初步

1 运算符与数据类型

1.1 运算符和表达式

1.1.1 算数运算符
运算符描述示例
+加,两个数相加3+5=8
-减,得到负数或是一个数减去另一个数5-3=2
*乘,两个数相乘或是返回一个被重复若干次的字符串2*3=6
/除,x除以y4/2=2
%取模,返回除法的余数5%3=2
**求幂,返回x的y次幂2**3=8
//取整除,返回商的整数部分(向下取整)21//10=2
1.1.2 比较运算符
运算符描述示例
==等于,比较对象是否相等(2==3)返回false
!=不等于,比较两个对象是否不相等(2!=3)返回true
>大于,返回x是否大于y(2>3)返回false
<大于,返回x是否小于y(2<3)返回true
>=大于等于,返回x是否大于等于y(2>=3)返回false
<=小于等于,返回x是否小于等于y(2<=3)返回true
1.1.3 赋值运算符
运算符描述示例
=简单的赋值运算符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
1.1.4 位移运算符

a = 0011 1100
b = 0000 1101

运算符描述示例
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a&b)输出结果12,二进制解释:00001100
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1(a|b)输出结果61,二进制解释:00111101
^按位异或运算符:当两对应的二进位相异时,结果为1(a^b)输出结果49,二进制解释:00110001
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1(~a)输出结果-61,二进制解释:11000011,在一个有符号二进制数的补码形式
<<左移动运算符:运算数的各二进位全部左移若干位,由<<右边的数字指定了移动的位数,高位丢弃,低位补0a<<2输出结果240,二进制解释:11110000
>>右移动运算符:运算数的各二进位全部右移若干位,由>>左边的数字指定了移动的位数,地位丢弃,高位补0a>>2输出结果15,二进制解释:00001111
1.1.5 逻辑运算符

x = 10
y = 20

运算符描述示例
andx and y布尔"与",如果x为False,x and y返回False,否则它返回y的计算值(x and y)返回20
orx or y布尔"或",如果x是非0,它返回x的值,否则它返回y的计算值(x or y)返回10
notnot x布尔"非",如果x为True,返回False如果x为False,它返回Truenot(x and y)返回False
1.1.6 身份运算符
运算符描述示例
isis是判断两个标识符是不是引用自一个对象x is y,类似id(x) == id(y),如果引用的是同一个对象则返回True,否则返回False
is notis not是判断两个标识符是不是引用自不同对象x is not y,类似id(a )!= id(b)。如果引用的不是同一个对象则返回结果True,否则返回False
1.1.7 成员运算符
运算符描述示例
in如果在指定的序列中找到值返回True,否则返回Falsex在y序列中,如果x在y序列中返回True
not in如果在指定的序列中没有找到值返回True,否则返回Falsex不在y序列中,如果x不在y序列中返回True
1.1.8 运算优先运算符
运算符描述
**指数(最高优先级)
~ + -按位翻转,一元加号和减号(最后两个的方法名为+@和-@)
* / % //乘,除,取模和取整除
+ -加法减法
>> <<右移,左移运算符
&位’AND’
^ |位运算符
<= < > >=比较运算符
== !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符

1.2 数据类型

1.2.1 字符串

a、使用单引号(’)
用单引号括起来表示字符串

str = 'this is string'

b、使用双引号(")
双引号中的字符串与单引号中的字符串用法完全相同

str = "this is string"

c、使用三引号(’’’)
利用三引号,表示多行的字符串,也可以在三引号中自由的使用单引号和双引号

str = '''this is string
this is "python string"
this is 'string' '''
1.2.2 布尔类型

True 真 False假

bool = False
bool = True
1.2.3 整数

包括正整形、0、负整数。
也包括二进制整形、八进制整形、十六进制整形。

int = 20
int = 0b011
int = 0o11
int = 0xFF
1.2.4 浮点数

有两种表现形式:
方式一:

float = 2.3

方式二(科学计数法):

float = 4.13e-3
1.2.5 复数

有两种表现形式:
方式一:
复数:实数 + 虚数 两部分构成的

plural = 5 + 6j

方式二:
complex(实数,虚数) 注意:这种表达方式虚数不能加j

plural = complex(14,2)
1.2.6 集合

集合是唯一、无序、不可改变的。

setvar  =  {}     #数据类型显示是一个dict字典
setvar  =  set()   #强制转换成一个空集合的数据类型
1.2.7 列表

列表是有序、可变、可直接修改的。

x = []
x = list()
1.2.8 元组

元祖是有序、不可改变、不可添加也不可删除的。

x = ()
x = tuple()

注意:创建一个对象的元组(逗号不能少):

x = (1,)
1.2.9 字典

字典是无序、长度不可变、可添加也可删除的。

x = {}
x = dict()

2 变量和转义字符

2.1 变量

变量是内存中命名的储存位置,其值可以动态变化。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。

为了区分Python语句中不同的变量,需要对每个变量进行命名,该名称即为标识符。

标识符命名规范:

  • 标识符是由字符(A~Z 和 a~z)、下划线和数字组成,但第一个字符不能是数字。
  • 标识符不能和 Python 中的保留字相同。
  • Python中的标识符中,不能包含空格、@、% 以及 $ 等特殊字符。
  • 标识符区分大小写,Num和num是不同的。
  • Python 语言中,以下划线开头的标识符有特殊含义,例如:
“_”单下划线代表不能直接访问的类属性。
“__”双下划线代表私有方法,表示类的私有成员。
以双下划线作为开头和结尾的标识符(如 __init__),是专用标识符。

2.2 转义字符

需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符。常用的如下表:

转义字符描述
\(在行尾时)续行符
\\反斜杠符号
\’单引号
\"双引号
\n换行
\r回车
\f换页

3 函数

3.1 函数调用表达式

定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。

def functionName(parm):
   "打印任何传入的字符串"
   return parm
# 调用函数
functionName("我要调用用户自定义函数!")

3.2 Python内置函数

如abs() ,divmod() ,input() ,open() ,staticmethod(),all() ,enumerate() ,int() ,ord() ,str(),any() ,eval() ,isinstance() ,pow() ,sum()等系统自带的函数。
详情查看官方文档或者菜鸟教程等。

3.3 自定义函数

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

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

3.4 模块

Python模块是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

模块是Python中一个非常重要的概念,他是最高级别的组织单元,他能将程序代码和函数封装以便重用。在使用过程中,用户可以调用Python标准库中的模块,也能下载和使用第三方模块。

def print_func( par ):
   print "Hello : ", par
   return

模块的引入

模块定义好后,我们可以使用 import 语句来引入模块,语法如下:

import 模块名

比如要引用模块 math,就可以在文件最开始的地方用 import math 来引入。在调用 math 模块中的函数时,必须这样引用:

模块名.函数名

from…import 语句

如果模块下有多个函数时,使用Python的 from 语句让你从模块中导入一个指定的函数到当前命名空间中。例如,要导入模块 fib 的 fibonacci 函数,使用如下语句:

from fib import fibonacci

这个声明不会把整个 fib 模块导入到当前的命名空间中,它只会将 fib 里的 fibonacci 单个引入到执行这个声明的模块的全局符号表。

from…import * 语句

此语句提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。

例如我们想一次性引入 math 模块中所有的东西,语句如下:

from math import *

4 语句

4.1 条件语句

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
Python 编程中 if 语句用于控制程序的执行,基本形式为:

if 判断条件:
    执行语句……
else:
    执行语句……

4.2 循环语句

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

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

执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假 false 时,循环结束。

2、for循环:
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。其基本形式为:

for iterating_var in sequence:
   statements(s)

3、嵌套循环:
Python 语言允许在一个循环体里面嵌入另一个循环。
Python for 循环嵌套语法:

for iterating_var in sequence:
   for iterating_var in sequence:
      statements(s)
   statements(s)

Python while 循环嵌套语法:

while expression:
   while expression:
      statement(s)
   statement(s)

你可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环。

4.3 循环控制语句

1、break语句:
break语句用于提前终止当前循环。放弃循环后,直接执行循环块下一个语句。

break语句可以在while和for循环中使用。

如果使用嵌套循环,则break语句将停止执行最内层循环,并在块之后开始执行代码的下一行。

Python语言 break 语句语法:

break

2、continue语句:
continue语句将控制返回到当前循环的开头。当遇到continue语句时,循环将不执行当前迭代中剩余的语句,而直接下一次迭代开始。

continue语句可以在while和for循环中使用。

Python 语言 continue 语句语法格式如下:

continue

3、pass语句:pass是空语句,是为了保持程序结构的完整性。
当因为语法需要但不希望执行任何命令或代码时,则可以使用pass语句。

pass语句是一个空操作; 执行时没有任何反应。

pass语句对于代码最终会出现但现在不用写入,即存根的地方也很有用。

Python 语言 pass 语句语法格式如下:

pass

5 类和对象

类(class)抽象的概念,比如说人类、鸟类、水果、是一个总的称呼,没有具体到某个物体。

对象(object,指具体实例)。

类定义的语法:

class 类名:
  执行语句
  类变量
  类方法

类最重要的两部分就是类变量和类方法,类成员之间的可以相互调用。

在实例方法中有一个特别的方法 :__init__ ,这个方法被称为构造方法 。 构造方法用于构造该类的对象, Python 通过调用构造方法返回该类的对象 。 python提供一个功能就是:若开发者没有定义构造函数,python会自动提供一个只包含self参数默认的构造方法。

在__init__构造函数里面的是实例变量,程序可以任何位置(类里面或者类外面)增加实例变量,删除则用del语句。

例如,可以定义一个Coordinate类,用于计算两个坐标点之间的距离,代码如下:

class Coordinate():
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def distance(self, other):
        x_diiff_sq = (self.x - other.x) ** 2
        y_diiff_sq = (self.y - other.y) ** 2
        return (x_diiff_sq + y_diiff_sq) ** 0.5

上面的 Coordinate类定义了 一个构造方法,该构造方法只是方法名比较特殊:__init__ ,该方法的第一个参数同样是 self,被绑定到构造方法初始化的对象 。和函数定义文档类似,类文档用字符串即可。该文档同样被放在类声明之后、类体之前。
下面是调用类的构造方法创建对象。

c = Coordinate(3, 4)
origin = Coordinate(0, 0)
print(c.distance(origin))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值