Python程序设计—车万翔

来源:互联网 发布:淘宝上代购药品 编辑:程序博客网 时间:2024/06/08 11:01

程序设计入门—Python


对象和类型


五种基本对象类型

字符串 (string),简记为 str
使用 ’ ’ 或 ” ” 括起来的一系列字符
整数(integer),简记为 int
十进制:21,八进制:025,十六进制:0x15
浮点数(float)
1.48,21.0,21.,.21,2.1E2
布尔数(boolean),简记为 bool
True,False
复数(complex)
1+1j

对象类型

type('小明')--> <type 'str'>type('男')--> <type 'str'>type(15)--> <type 'int'>type(1.48)--> <type 'float'>type(43.2)--> <type 'float'>type('江苏')--> <type 'str'>

为什么区分对象类型?

不同类型对象运算规则不同
如:整数的加法和字符串的加法含义不同
不同类型对象在计算机内表示方式不同
5 –> 101,’5’–> 1001101

为何区分整数与浮点数?

 浮点数表示能力更强 浮点数有精度损失 1.1 + 1.1 + 1.1 =3.300000000003CPU有专门的浮点数运算部件

强制类型转换

int('123') --> 123str(123) -->  '123'float('123') -->  123.0float(123) -->  123.0bool(123) -->  Truebool(0) -->  False

以下不能 转换

a_str = 'test'a_num = int(a_str)#必须是字符中可转换的时候才能转换

运算符


算术运算符(Arithmetic Operators)

这里写图片描述

2/3 =03.0/6=0.5

Python 2 中,“/”表示向下取整除(floor division)
两个整数相除,结果也是整数,舍去小数部分
如果有一个数为浮点数,则结果为浮点数

自动类型转换

若参与运算的两个对象的类型同,则结果类型不变
如:1 / 2 = 0
若参与运算的两个对象的类型不同,则按照以下规则进行自动类型转换
bool –> int –> float –> complex

1.0 + 3 = 4.0True + 3.0 = 4.0

求余运算符

求余运算符(%)
如:10 % 3 = 1
应用
若今天是星期六,则10天后是星期几?
(6 + 10) % 7 = 2
判断一个数 x 是否为偶数
x % 2 是否等于 0

math 模块
模块(module)
实现一定的功能的 Python 脚本集合

引入模块

import module_name

math模块

import math

查看模块内容

dir(math)

查看帮助
“`
help(math.sin)

dir(math)
[‘doc‘, ‘file‘, ‘name‘, ‘package‘, ‘acos’,
‘acosh’, ‘asin’, ‘asinh’, ‘atan’, ‘atan2’, ‘atanh’, ‘ceil’,
‘copysign’, ‘cos’, ‘cosh’, ‘degrees’, ‘e’, ‘erf’, ‘erfc’, ‘exp’,
‘expm1’, ‘fabs’, ‘factorial’, ‘floor’, ‘fmod’, ‘frexp’, ‘fsum’,
‘gamma’, ‘hypot’, ‘isinf’, ‘isnan’, ‘ldexp’, ‘lgamma’,
‘log’, ‘log10’, ‘log1p’, ‘modf’, ‘pi’, ‘pow’, ‘radians’, ‘sin’,
‘sinh’, ‘sqrt’, ‘tan’, ‘tanh’, ‘trunc’]
“`

关系运算符(Relational Operators)
判断一个数 x 是否为偶数
x % 2 是否等于 0
x % 2 == 0
若为True,则 x 为偶数
若为False,则 x 为奇数
用于判断两个值的关系
大小、相等或不相等
运算的结果只有两种(布尔型)
若结果为True,表示条件成立
若结果为False,表示条件不成立

这里写图片描述

逻辑运算符(Logical Operators)
这里写图片描述

运算符优先级

看看下面两个表达式
2 * 1 + 3 先乘后加
2 * (1+3) 先加后乘

括号()
改变了语言内在的默认优先级
具有最高优先级
嵌套括号按照由内而外结合
(2 * (1 + 2))**2 == 36
2 * (1 + 2)**2 == 18

这里写图片描述


变量


这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


程序控制结构


程序流程图

这里写图片描述

这里写图片描述


判断语句

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


示例

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


这里写图片描述

这里写图片描述

这里写图片描述


循环结构


While循环结构

这里写图片描述
这里写图片描述
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

break continue 语句

这里写图片描述

这里写图片描述

for循环结构

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


for n in range(1, 100):
while n !=1:
if n%2 == 0:
n /=2
else:
n = 3*n +1
print n,

print n, 表示是打印在同一行中。

这里写图片描述

print format 右对齐

这里写图片描述


While VS for 循环

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


函数


这里写图片描述

这里写图片描述

这里写图片描述

缺省参数

这里写图片描述

有返回值函数

这里写图片描述

局部变量和全局变量 global

这里写图片描述

这里写图片描述


这里写图片描述

这里写图片描述

这里写图片描述

def is_leap_year(year):
if year %4 ==0 and year %100 !=0 or year % 400 ==0:
return True
else:
return False

def get_num_of_days_in_month(year, month):
if month in (1, 3, 5, 7, 8, 10, 12):
return 31
elif month in (4, 6, 9, 11):
return 30
elif is_leap_year(year):
return 29
else:
return 28

def get_total_num_of_day(year, month):
days = 0
for y in range(1800, year):
days +=366
else:
days +=365

for m in range(1, month):
days += get_num_of_days_in_month(year, m)
return days

def get_start_day(year, month):
return 3+ get_total_num_of_days(year, month) %7

print get_start_day(2033, 12)


递归函数


这里写图片描述

这里写图片描述


这里写图片描述

这里写图片描述

这里写图片描述


这里写图片描述

这里写图片描述


这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


这里写图片描述


字符串


这里写图片描述

这里写图片描述
这里写图片描述

这里写图片描述

字符串是不可变的

这里写图片描述

这里写图片描述

这里写图片描述

示例: 人名游戏

这里写图片描述

这里写图片描述

这里写图片描述

字符串比较

这里写图片描述

这里写图片描述

字符串格式化

这里写图片描述

正则表达式

这里写图片描述

这里写图片描述


列表


这里写图片描述

这里写图片描述

my_list[2:]#取从2到最后的值。

这里写图片描述

这里写图片描述

列表赋值

这里写图片描述

这里写图片描述

python中list与array互相转换

u = array([[1,2],[3,4]])
m = u.tolist() #转换为list
m.remove(m[0]) #移除m[0]
m = np.array(m) #转换为array

查找

这里写图片描述

时间复杂度

这里写图片描述

这里写图片描述

二分法

这里写图片描述

这里写图片描述

排序

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

内建排序函数

这里写图片描述

嵌套列表

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


元组


这里写图片描述

这里写图片描述

这里写图片描述

DSU模式(Decorate,Sort and Undecorate(DSU)模式)

这里写图片描述


字典的生成

dict()
作用:dict() 函数用于创建一个字典。返回一个字典。
语法:
class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)
参数说明:
**kwargs – 关键字
mapping – 元素的容器。
iterable – 可迭代对象

dict() # 创建空字典
{}
dict(a=’a’, b=’b’, t=’t’) # 传入关键字
{‘a’: ‘a’, ‘b’: ‘b’, ‘t’: ‘t’}
dict(zip([‘one’, ‘two’, ‘three’], [1, 2, 3])) # 映射函数方式来构造字典
{‘three’: 3, ‘two’: 2, ‘one’: 1}
dict([(‘one’, 1), (‘two’, 2), (‘three’, 3)]) # 可迭代对象方式来构造字典
{‘three’: 3, ‘two’: 2, ‘one’: 1}


删除字典元素

a = {"a": "1", "b": "2"}  for k,v in  a.items():      if k == "b":          del a[k]          print a  # {'a': '1'}  

a = {“a”: “1”, “b”: “2”}
f = filter(lambda i: i[0] != “b” , a.items())
print f
[(‘a’, ‘1’)]
print a
{‘a’: ‘1’, ‘b’: ‘2’}

del dict2[‘name’]#删除键为“name”的条目。
dict2.clear()#删除 dict2 中所有的条目
del dict2#删除整个 dict2 字典
dict2.pop(‘name’)#删除并返回键为“name”的条目

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝客服一直不说话怎么办 淘宝客服不说话也不发货怎么办 面对不说话的客人怎么办? 卖家客服不回复怎么办 2周小孩说话结巴怎么办 微信群里只领红包不说话的人怎么办 躺在微信不说话的客户怎么办 9岁儿童说话结巴怎么办 5岁儿童说话结巴怎么办 京东客服不说话怎么办 两岁宝宝说话有点结巴怎么办 孩子不敢跟外人说话怎么办? 孩子不爱跟外人说话怎么办 别人说我不说话怎么办 衣服屁股那块变亮怎么办 小孩家里说话外面不说话怎么办 2个月小宝宝便秘怎么办 3个月小宝宝便秘怎么办 微信客户不说话怎么办 一岁半宝宝便秘肛裂怎么办 网恋现在都不说话了怎么办 宝宝便秘四天了怎么办 月子里小孩吐奶怎么办 月子里的小孩吐奶怎么办 婴儿吃多了吐奶怎么办 20个月孩子便秘怎么办 一岁宝宝肛裂怎么办 婴儿吃饱了吐奶怎么办 23天新生儿吐奶怎么办 婴儿吐奶舌苔白怎么办 宝宝吐奶酸臭味怎么办? 1周岁吐奶有酸味怎么办 十多天的宝宝吐奶怎么办 未满月婴儿吐奶怎么办 2个月宝宝溢奶怎么办 四岁宝宝说话结巴怎么办 小孩说话结巴打顿怎么办 2岁宝宝突然说话结巴怎么办 2岁宝宝突然结巴怎么办 幼儿舌头起泡牙龈出血怎么办 小孩长得太快怎么办