Python程序设计—车万翔

程序设计入门—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.300000000003
CPU有专门的浮点数运算部件

强制类型转换

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

以下不能 转换

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

运算符


算术运算符(Arithmetic Operators)

这里写图片描述

2/3 =0
3.0/6=0.5

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

自动类型转换

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

1.0 + 3 = 4.0
True + 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”的条目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246751.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【重大修改】动态时间规整(Dynamic Time Warping)

本文只是简单的介绍DTW算法的目的和实现。具体的DTW可以参考一下文献&#xff1a; 离散序列的一致性度量方法&#xff1a;动态时间规整&#xff08;DTW&#xff09; http://blog.csdn.net/liyuefeilong/article/details/45748399 动态时间归整/规整/弯曲(Dynamic time warpi…

从机器学习谈起

很好的一篇文章&#xff0c;转载自博客园&#xff1a;http://www.cnblogs.com/subconscious/p/4107357.html 在本篇文章中&#xff0c;我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习&#xff0c;并且上手相关的实践。这篇文档也算…

核函数

由于下一篇要学机器学习的另外一种模型——核模型&#xff0c;里面涉及到核函数&#xff0c;所以先找了一下核函数的相关知识。 在知乎上看到了一些比较好的解答&#xff0c;详细参考&#xff1a;http://www.zhihu.com/question/24627666 首先举一个核函数把低维空间映射到高…

关于Matlab编程的思考(待续)

Matlab编程的规范化思考 1.并行化 2.释放内存 3.需要调参的变量太多&#xff0c;可考虑将变量都放到一个结构体里面。 4.find(y),就是要找到y中那些非零项的指引 5.代码运行出现问题的时候&#xff0c;在命令行输入why就可以得到答案 6.输入bench可以给电脑跑分。 7.hom…

拉普拉斯锐化图像

在图像增强中&#xff0c;平滑是为了消除图像中噪声的干扰&#xff0c;或者降低对比度&#xff0c;与之相反&#xff0c;有时为了强调图像的边缘和细节&#xff0c;需要对图像进行锐化&#xff0c;提高对比度。 图的边缘是指在局部不连续的特征。 简要介绍一下原理&#xff1…

运动捕捉数据的描述ASF/AMC

运动捕捉数据有多种格式&#xff1a;ASF/AMC&#xff0c;BVH&#xff0c;C3D等&#xff0c;这三个是比较常用的&#xff0c;一般的matlab实验用的是ASF/AMC&#xff0c;其次就是BVH。 ASF/AMC文件格式是Acclaim Games公司设计开发的&#xff0c;全称是Acclaim Skeleton File/A…

应用深度学习(台大陈蕴侬李宏毅) Part1

History of Deep Learning Big Data & GPU 端到端 Universality Theorem Core Factors for Applied Deep Learning 参考文献 http://v.qq.com/vplus/578e2d6f5e1fadc1/foldervideos/8n1000201qzzkx5 Deep Learning ◦Goodfellow, Bengio, and Courville, “Deep Learning…

世界坐标

世界坐标是最直观反映人体在世界坐标系下运动位置的变化信息&#xff0c;对分析运动行为有重要的作用。下面介绍如何根据ASF/AMC文件计算人体各个关节的世界坐标。 根据前面讲的ASF/AMC文件的格式&#xff0c;可以知道人体运动可以看做是通过根节点root的平移以及其他关节绕其父…

人工神经网络——径向基函数(RBF)神经网络

此博客排版不好&#xff0c;重新用Markdown写了一篇&#xff0c;同时附上了代码&#xff0c;戳这里 本文摘自&#xff1a;《模式识别与智能计算——matlab技术实现第三版》与《matlab神经网络43个案例分析》 【注】蓝色字体为自己的理解部分 径向基函数神经网络的优点&#xf…

李宏毅机器学习课程-Transfer Learning

深度学习 -> 强化学习 ->迁移学习&#xff08;杨强教授报告) 李宏毅机器学习课程&#xff0d;Transfer Learning 迁移学习&#xff0d;吴恩达 freeze 待处理的 理解深层神经网络中的迁移学习及TensorFlow实现 Transfer Learning模式 Similar domain, different task…

matlab实现RBF的相关函数

摘自《matlab神经网络43个案例分析》 (1)newrb() 该函数可以用来设计一个近似径向基网络(approximate RBF)。调用格式为&#xff1a; [net,tr]newrb(P,T,GOAL,SPREAD,MN,DF) 其中P为Q组输入向量组成的R*Q位矩阵&#xff0c;T为Q组目标分类向量组成的S*Q维矩阵。GOAL为均方误…

李宏毅机器学习课程-Structured Learning

Simple structured learning framework for python pystruct-github Slides for explaining structured prediction and PyStruct -github 一、Structured Learning-Unifed Framework 之前的input and output 都是vectors Training阶段就是找一个&#xff26;来评估&#xff…

matlab之norm函数

简单点说就是用来计算范数的一个函数。 假设A是一个矩阵&#xff0c;那么norm(A)或者norm(A,2)计算的就是A的2范数&#xff1b;同理norm(A,1)计算的就是1范数了. 2范数&#xff1a;计算步骤是先计算A*A‘&#xff08;这里A’代表转置&#xff0c;也就是原矩阵*&#xff08;原…

matlab之unwrap函数

网上的说法&#xff1a; 要计算一个系统相频特性&#xff0c;就要用到反正切函数&#xff0c;计算机中反正切函数规定&#xff0c;在一、二象限中的角度为0&#xff5e;pi&#xff0c;三四象限的角度为0&#xff5e;-pi。 若一个角度从0变到2pi&#xff0c;但实际得到的结果是…

Python xrange与range的区别

xrange 与 range xrange 用法与 range 完全相同&#xff0c;所不同的是生成的不是一个list对象&#xff0c;而是一个生成器。 要生成很大的数字序列的时候&#xff0c;用xrange会比range性能优很多&#xff0c;因为不需要一上来就开辟一块很大的内存空间。 xrange 和 range 这…

受限玻尔兹曼机准备知识——蒙特卡洛方法

先了解几个基本概率知识&#xff0c;不急着看蒙特卡洛方法的定义&#xff0c;具体的MC方法参考网上各种资料。 两个比较好的学习MC方法的文章&#xff1a;蒙特卡洛方法入门 (结合了实例)和 蒙特卡洛方法 (推荐&#xff0c;非常详细) 更新日志&#xff1a;2016-11-19&#xff…

受限玻尔兹曼机准备知识——MCMC方法和Gibbs采样

先点明几个名词 MCMC方法&#xff1a;马尔可夫链-蒙特卡洛方法 (千万别叫成梅特罗波利斯蒙特卡罗方法了) Metropolis-Hastings采样&#xff1a;梅特罗波利斯-哈斯廷斯采样 Gibbs采样&#xff1a;吉布斯采样 还是介绍一下学习MCMC和Gibbs采样比较好的一个资料&#xff1a;随机采…

受限玻尔兹曼机——简单证明

花了很久看了一下玻尔兹曼机&#xff0c;感觉水有点深&#xff0c;总之一步一步来嘛~~~~ 先说一下一个非常好的参考资料&#xff1a; 受限玻尔兹曼机&#xff08;RBM&#xff09;学习笔记 &#xff0c;有兴趣的可以再看看这篇文章的参考文献或者博客&#xff0c;写的也非常好&…

受限玻尔兹曼机RBM实现及能量值思考——matlab实现

网址&#xff1a;http://www.cs.toronto.edu/~hinton/MatlabForSciencePaper.html 这个代码主要是在mnist上做手写数字识别的代码&#xff0c;贴出来的目的主要是想研究一下在迭代过程中能量的变化情况。 1. 标准能量函数 标准的能量函数的表达式为&#xff1a; 那么就将这个…

Cheat_Sheet ---Keras、Matlab、Matplotlib、Numpy、Pandas、Scikit-Learn、SciPy

Cheat_Sheet ---KerasCheat_Sheet ---MatlabCheat_Sheet ---MatplotlibCheat_Sheet ---NumpyCheat_Sheet ---PandasCheat_Sheet ---Scikit-LearnCheat_Sheet ---SciPy参考文献 http://ddl.escience.cn/f/IDkq#path%2F8215264