一 前言

1 why python?

Python是数据科学界的主流编程语言,相对于传统的Excel等数据处理工具,Python具备处理海量数据的能力,并且可以执行机器学习算法。从数据获取(网络爬虫等工具)、数据清理到数据分析拟合再到最终的可视化呈现,Python都能胜任。

相比C、C++、Fortran等编译语言,Python作为动态解释语言,可以像Matlab等科学计算工具一样“写一行,跑一行”——更加用户友好,也更适于新手入门。在日渐繁荣的机器学习、人工智能领域更是独当一面,这是Python近年来热度稳步攀升甚至在有的统计中高居榜首的原因,也是本站选择Python作为主要编程语言的原因。

2 python能做啥

嵌入式开发;

游戏开发;

Web开发;

运维监控;

网页爬虫;

数据可视化;

数据分析与挖掘;

机器学习;

3 python的特点

面向对象

动态、解释性语言

支持库和框架多而广泛

跨平台

开源(源码获得)

简单、强大

社区活跃

人生苦短,我用python

Life is short, you need Python!

4 python的安装以及用pip管理包

python -m pip install --upgrade pip

python的第一个代码,helloworld

二 变量(Variable)

1 变量(Variable)和运算符

在实际应用当中,很多数值将反复出现,比如圆周率π,或者自然常数e

(常量也是一种变量),如果不想每次都重复输入十几位小数的话,最好预先定义为变量,更不用说那些需要频繁变动的参数。

Python中定义变量非常简单,只需要起好名字,用等号赋值。

除下划线_以外的特殊符号如+,-不能用于命名变量。

Python中已有的关键字如for,if,import也不能直接用作变量名。

当然只要不是完全匹配的,像forif,for_if还是可以的,只是一般不推荐。

a = 1

a = "xiaoming"

a = True

print(a)

type(a)

我们不一样,每个人都有不同的鲸鱼。——《我们不一样》

人和人不一样,值和值也不一样,首先是类型不一样。

经过之前的实践,我们已经得到了"Hello, world!"这句话,和1这个数,一个是字符串(str)一个是整数(int)。

Python中不需要预先定义所有的变量数据类型,解释器会自己根据内容去推测。

如果想知道某个变量的类型,可以使用type()这个函数。

2 字符串(string)

字符型常量是以单引号、双引号或三重引号引起来的对象

引号内不能直接包含相同的引号

对于单双混合问题,可找三引号,而且其还可以写入多行字符串;

通过转义()的方法完成特殊字符串的输入;

nameStr = '马云'

moneyStr = '有钱'

#字符串合并

print('用+将字符串合并:', nameStr + moneyStr)

mo = "苟利国家生死以, 岂因祸福避趋之"

#len(mo)##求字符串长度

#mo[0:7] ##对字符串切片

mot = "苟利\t国家生死以,\n岂因祸福避趋之" ##转义字符

print(mo[3])

3 数值(number)

Python支持3种数值类型:

int :整数比如1024。

float :俗称“带小数点的”,比如19.26。

complex :复数比如8 + 17j

Python支持常见的数值计算,总结如下:

符号 含义 例子 结果

加法 42 + 1 43

减法 42 - 0.5 41.5

乘法 1234 * 2 2468

/ 浮点除法 1 / 2 0.5

// 整型除法 1 // 2 0

** 指数 8 ** 2 64

% 余数 20 % 3 2

当多个运算符同时存在时,解释器会按照一定的优先级次序执行。

运算符 描述

() 括号

f(args...) 函数调用

x[index:index] 列表切片

x[index] 列表取值

x.attribute 对象属性

** 指数

~x 按位取非(NOT)

+x, -x 正值,负值

*, /, % 乘除,余数

+, - 加法,减法

<> 位移

& 按位取与(AND)

^ 按位取亦或(XOR)

in, not in, is, is not, , >=, <>, !=, == 比较与从属关系

not x 布尔值 非

and 布尔值 与

or 布尔值 或

lambda lambda表达式

##增强型赋值运算

n1 = 1

n1 = n1 + 1

n1 += 1

n1

##但是不支持X++这种写法

4 布尔值(bool)

至此我们已经写了很多Python语句,其中最多的是赋值语句。

语句是为了产生效果,比如count = 1就是把变量count的值变成了1。

但是语句本身只是一个动作,并没有相应的值存在。

另一种代码单元则相反,其本身不产生效果,但是却像变量一样具有值,这就是表达式。

var1 = "丁"

var2 = "卯"

var1 == var2

比较

in, not in, is, is not, , >=, <>, !=, == 比较与从属关系

逻辑运算

not x 布尔值 非

and 布尔值 与

or 布尔值 或

t, f = True, False

print("t and f = ", t and f)

print("t or f = ", t or f)

print("not t = ", not t)

print("t != f = ", t != f)

至此我们已经见过了Python编程当中最常用的几种变量类型,在应用中经常需要来回转换一个变量的类型,比如做网络爬虫指定目标URL的后缀,可能是关于页数的"?page=8"。

当我们要通过循环翻页的时候,就会迭代生成递增的数字,但是这些数字必须要转换成字符串才能拼接到URL当中,因为爬虫函数只识别字符串。

虽然看起来长得一样,但是变量的类型决定了它们能够参与哪些运算,整数和字符串的+含义就完全不同。

如果变量类型不匹配,还会造成很多函数、方法不能正常运行,这是实践中需要特别注意的。

isinstance(233,int)#查看变量是否是猜测类型insinstance(变量,猜测类型)

#input() # 输入所得到的是字符串

# 类型转换

int() # 转换类型为整形

float() # 转换类型为浮点型

complex() # 复数型

bool() # 布尔型

#a = input()

b = 1

##print(a + b)

print(int(a) + b)

#编写求圆面积的程序

#编写一个求圆柱体积的程序

import math

r = input()

r = float(r)

s = math.pi * r * r

print(s)

三 数据容器

1 列表

列表中的元素通过逗号(,)分隔,由方括号([])包含,比如一串数字或者一系列字符。

l1 = [1,1,2,3,5,8]

l2 = ["金坷垃","圣地亚哥","威廉伯爵","流失","蒸发"]

l = ["字符串", 114514, ["列表也可以作为元素"]]

#丹妮莉丝·塔格利安的头衔很长,请帮她把这些头衔存到一个列表titles当中,每个元素对应一个荣誉称号。

#用len()函数获取头衔列表的元素个数,并赋值给变量num_titles。

# 安达尔人、洛伊拿人和先民的女王

# 七国女王、全境守护

# 大草海的卡丽熙

# 龙石岛公主

# 碎镣者

# 不焚者

# 龙之母

ll = [1, 1, 2, 3, 5, 8]

ll[2:5]

创建列表是为了在程序中使用,多数情况下我们需要的是列表中的某个元素而非整个集合,而指向某个特定元素就是通过索引(index)。

列表中的元素是有序的,第一个元素的索引为0,第二个索引为1,依次类推。

获取某个元素的方法是:在列表对象后面紧跟方括号([]),方括号内写有该元素的索引值。元素的索引可以是负数,此时表示倒序排列,如[-1]对应最后一个元素。

如果 [] 只有一个索引值,就会直接访问索引对应的元素,可以认为是切割的一个特例。

若未提供 start,则相当于 start = 0。

若未提供 end,或 end 大于列表长度,则相当于 end 指向列表末尾。

若 start >= end,list[start:end] 将返回空列表

l5 = [[1,1,1],[2,2,2,],[3,3,3]]

##取出列表里的列表

l5[1][1]

##列表的运算

#与字符串相似,+ 对于列表是拼接操作,* 是复制列表内的元素,依次构成新列表。

l1 = [1, 2, 3, 4]

l2 = ["Pa", "Pa", "Pa"]

# 列表加法

l1 + l2

# 列表乘法

l2 * 3

append方法  每次只能在列表末尾增加一个元素

insert方法  每次可以在列表的指定位置增加一个元素

extend方法  每次可以在列表的末尾增加多个元素 ,等同于”+”连接

pop方法  每次默认删除最后一个元素,还可通过索引的方式删除指定的一个元素

remove方法  每次可删除列表中指定的一个实际值

clear方法  清空列表中的元素

sort方法  默认升序,但需要注意的是,列表中的元素必须为同一种数据类型

reverse方法  列表元素颠倒

index方法  返回指定元素第一次出现的位置

count方法  统计列表中某个元素的次数

copy方法  复制列表,与[:]一样的效果

##字符串可以转换为列表

str = "1颗赛艇, 3件小事, 5可奉告"

l1 = list(str)

print(l1.count(","))

#列表推导式

l1 = [ x for x in range(10) ]

l2 = [ x + 1 for x in range(10) ]

l3 = [ 2*x for x in range(10) ]

l3

列表b = [23,45,22,44,25,66,78]

用列表解析完成下面习题:

1)生成所有奇数组成的列表

2)输出结果: [25, 47, 24, 46, 27, 68, 80]

2 元组

元组和列表非常接近,但是元组一旦创建,就再不能添加、删除或修改其中的元素了。元组是不可更改的,这一点与字符串性质相同。

# 创建空元组

t1 = ()

# 直接创建元组

t2 = (1, 2, 3, 4)

# 从数组创建

t3 = tuple([1, 2, 3, 4]) # (1, 2, 3, 4)

# 从字符串创建

t4 = tuple("谈笑风生") # ('谈', '笑', '风', '生')

#元组的真正关键字其实不是括号(()),而是逗号(,)。

t4 = ('谈', '笑', '风', '生') # 有括号

t5 = '谈', '笑', '风', '生' # 没括号

#元组不可变,但元组内列表里的元素可变

tu = (1, 2, 3, 4,[3, 7, 8, 9])

print(tu)

tu[4][3] = 2333

print(tu)

3 字典

Python中的字典是由“键”,“值”对构成,在创建字典时需要注意的是:

键必须是唯一并hashable的(如果键值是字符串,必须加引号);

键与值之间用冒号隔开;

多个键值对之间用逗号隔开;

一个键对应多个值可存放在列表中;

使用花括号把键值括起来;

emp_dict = {}

heros = {

"batman":"Bruce Wayne",

"superman":"Clark Kent"

}

heros["batman"]

#访问字典中的元素须通过键。

#如果该键不存在的话,解释器会返回KeyError。

#heros["wonderwoman"] = "Diana Prince"

#del heros["superman"]

dict1 = {'name':'Sim'}

dict2 = {'name':'Sim','gender':'Male','age':27,'address':'Jiangsu'}

dict3 = {'name':'Sim','score':[67,90,72]}

dict4 = {'name':['Sim','BaiSheng'],'score':[84,87]}

dict5 = {'name':{'fstname':'Liu','lstname':'Sim'},'job':['teacher','data miner']}

dict2['address']

dict4['name'][1]

dict5['name']['fstname']

print(dict2['name'],"'s age is" ,dict2['age'],"!")

print("%s's age is %d!" %(dict2['name'],dict2['age']))

clear  清空字典

copy  复制字典

get  返回指定键的值,但查不到时不会报错,返回None!

items  列表的形式返回可遍历的(键, 值) 元组数组

keys  列表的形式返回字典的键

values  以列表的方式,返回字典的值

在字典中作为“键”的,必须是不可更改的数据类型。所以字符串、数值可以作为键,而列表和字典都不行。“值”可以是任何数据类型。

用字典的方式完成下面一个小型的学生管理系统。

学生有下面几个属性:姓名,年龄,考试分数包括:语文,数学,英语得分。

"""

比如定义2个同学:

姓名:李明,年龄25,考试分数:语文80,数学75,英语85

姓名:张强,年龄23,考试分数:语文75,数学82,英语78

"""

给学生添加一门python课程成绩,李明60分,张强:80分

3)把张强的数学成绩由82分改成89分

4)删除李明的年龄数据

5)对张强同学的课程分数按照从低到高排序输出。

student = {'lm':{'name':'liming',

'age':25,

'score':{'yw':75}},

'zq':{'name':'zhangqiang',

'age':23,

'score':[75,82,78]}}

student['lm']['score']['python']=60

student['zq']['score'].append(80)

student['zq']['score'][1] = 89

student['lm'].pop('age')

student['zq']['score'].sort()

python从入门到住院_python从入门到入土教程(1)——入门课相关推荐

  1. python新手入门到放弃_python萌新:从零基础入门到放弃

    原标题:python萌新:从零基础入门到放弃 不管是在什么领域,自学者都占绝大多数,你说自学可以吗?可以,没问题的,只需要你具备以下几点最基础的能力: 第一点:天赋.对于python而言其实是非常需要 ...

  2. python绘制3d动态模型_Python使用VTK三维3D图形绘制入门教程

    安装:pip install vtk 学习一个东西最快的方法是知道基本原理和用途 VTK有啥用 不能做游戏.适合快速开发绘制静态三维模型.所以类似多用途折叠工具刀用处多,但是不能用在特别费劲的场合. ...

  3. python无法选择安装位置图_python怎么安装?(教程图解)

    python可以免费获得,目前已经更新多个版本.所有版本(如3.3.5及2.1.1)安装步骤没有太大差异,下面将介绍在windows系统下,如何安装该软件. 安装python软件详细步骤 首先打开安装 ...

  4. python中read函数解释_Python内置函数解释教程,readwill(非常详细的代码演示截图),详解,看,了,就,会,很...

    内置函数 abs() 获取绝对值 all() 接受一个迭代器,如果迭代器的所有元素都为真,那么返回True,否则返回False any() 接受一个迭代器,如果迭代器里有一个元素为真,那么返回True ...

  5. python中delete怎么用_python删除np.deletePython基础教程05 - 缩进和选择

    缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例.if后面跟随条件,如果条件成立,则执行归属于if的一个代码块. 先看C语言的表达方式(注意,这是C,不是Python! ...

  6. python随机猜数字游戏_Python小游戏——猜数字教程(random库教程)

    今天来开发一个简单的数字逻辑游戏,猜数字(数字炸弹) 首先开发游戏第一件事,了解需求. 猜数字游戏规则: 计算机随机生成一个指定范围的数字,由玩家来猜测, 之后计算机会根据玩家提供数字来与自己生成的数 ...

  7. python软件如何安装方法_python软件安装包+安装教程

    Python介绍 Python是一种面向对象.直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定.这种语言具有非常简捷而清晰的语法特点,适合完成各种高层 ...

  8. python模拟屏幕点击_python模拟鼠标点击教程

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  pywin32 pip install  pyHook?1.5.1?cp37?cp37 ...

  9. python中如何自定义函数_Python中自定义函数的教程

    在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 我们以自定义一个求绝对值的my_abs函数 ...

最新文章

  1. Django学习--9 Admin
  2. runfile python_python文件执行路径问题
  3. 数据分析之道:抽丝剥茧,存乎一心(中)
  4. SQLServer 事物与索引
  5. css选择器中:first-child与:first-of-type的区别
  6. zk 加载 html 标签,HTML字符实体——ZK支持字符
  7. 手机微商城可以安装到虚拟服务器,安装使用:百家CMS微商城系统安装教程(图文说明)...
  8. 基恩士PLC实例笔记①--立项及编程
  9. Java HotSpot(TM)64位服务器虚拟机警告
  10. 蓝光护目镜 v6.66.6.3
  11. 机器学习UCI数据库说明
  12. 优化poi 导入导出excel,不造成电脑卡死问题
  13. 为什么有些微信群要不定期清理不活跃成员?
  14. imx6ull linux 内核编译
  15. 解决服务器空间满/var/lib/docker/overlay2占用很大,千万慎用 docker system prune -a清理 mongodb等数据库容器及镜像可能被删,找回恢复数据
  16. word2013和wps使合并后的内容上下对齐
  17. 如何给安卓设备一键截图到电脑
  18. matplotlib画布中属性设置常用函数及其说明
  19. 一期项目实战:问卷调查—人事管理系统
  20. win7 virtualbox VBoxDD.DLL 0x80004005 uxtheme.dll 错误

热门文章

  1. 解决win10 保存文件到C盘没有权限问题
  2. 前端面试题目(都是一些总结的,从各处摘抄的题目)
  3. Matplotlib可视化菜鸟教程
  4. 【Android应用】 苏州实时公交
  5. vue的混入mixin拙见
  6. 安卓 View 开发 绘制尺子
  7. 无差别收保费,光大银行强制搭售保险被批 原本提供增信价值的融资性信保产品,被一众放贷机构和保险公司玩坏,最终异化成借款人难以承受的负担。 撰文 | 冬弥 出品 | 消费金融频道 保险公司与助
  8. Delphi的高光时刻!C#之父Anders Hejlsberg的祝福:持续更新、持续发展的Delphi家族- Delphi 2009及其后的新功能
  9. 最快的排序算法是什么
  10. 拼多多贴钱卖车,揭示汽车经销商现状