新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 程序开发 > 语言 > Python

Python打牢基础,从12个语法开始

时间:2019-12-02 09:45:14  来源:  作者:

Python简单易学,但又博大精深。许多人号称精通Python,却不会写Pythonic的代码,对很多常用包的使用也并不熟悉。学海无涯,我们先来了解一些Python中最基本的内容。

Python的特点

  • 解释型语言,无需编译即可运行

  • 提供了交互式命令行

  • 基于对象的编程思想

  • 跨平台和良好的兼容性,在windowsmaclinux上都可运行

  • 简单好用而且功能强大

01 中文编码

很多同学在打开数据时会遇上乱码问题,其原因是字符集的编码问题。Linux和Mac默认的编码集是UTF8,而Windows则是ASCII。如果数据编码的字符集,和你使用Python进行处理时所用的字符集不同,则会出现乱码问题。

另外,我个人的习惯是在Python代码的头部加入以下内容,其中第二行声明了使用UTF8字符集。

#!/usr/bin/env python
# coding:utf8

02 变量

Python中的变量可以看作是一个个容器,里面存放着我们需要使用到的值。

Python对变量名的要求和其他语言一样:可以包括英文、数字以及下划线,但不能以数字开头,区分大小写。当然我推荐,变量名用纯英文就很好,并且取一些有意义的名称,便于自己理解每个变量的作用。

Python是一门弱类型的语言,在使用变量时无需声明其类型。Python中的变量包括以下几类:数值、字符串、列表、元组、字典。

数值

数值包括整型和浮点型,分别对应整数和浮点数,后者精度更高。

# 整型
a = 1
# 浮点型
b = 2.1
print a, b

字符串

字符串也就是我们经常接触到的文本,可以往里面放任意长度的内容,用单引号或双引号括起来。应当注意,中文以及中文符号只能出现在字符串內,如果在下面第三行中使用了中文输入法的逗号 ,Python将报错。

c = 'Hello'
d = '你好'
print c, d

使用 + 可以拼接两个字符串。

print c + d

使用 len() 可以得到字符串的长度。

print len('Hello World')

使用切片可以访问字符串中的某个字符或某个片段。

# 位置下标从0开始
c = 'Hello World'
# 打印结果为H,下标为0表示第一个字符
print c[0]
# 打印结果为d,下标为负数表示从后往前数
# 所以-1表示倒数第一个字符
print c[-1]
# 使用:返回一个片段,冒号前后分别为开始下标和结束下标
# 包括开始下标,但不包括结束下标
# 因此c[1:5]表示,返回下标从1到4的片段,即第二个到第五个字符
print c[1:5]
# 冒号前后的下标同样可以使用负数
# 或者不提供,表示从最左端开始或一直到最右端
print c[1:-1], c[:5], c[3:]

列表

列表好比一条队伍,里面依次存放着多个变量。列表和字符串类似,但字符串中的每个元素都是字符,而列表中的每个元素可以是任意类型的变量。

# 使用[]定义一个空列表,使用Append()向列表尾部添加一个元素
# 如果要添加到首部,就用prepend()好了
a = []
a.append(1)
a.append(2.1)
a.append('Hello')
print a

使用 len() 可以获得列表的长度。

print len(a)

列表元素的按下标访问和赋值等操作,和字符串都是类似的。

print a[1], a[-1]
a[1] = 100
print a

使用 del 删除列表中的某个元素。

del a[0]
print a

元组

元组和列表类似,唯一的不同是元组中的元素在初始化之后不能再更改,因此可以理解成一个只读的变量。

# 使用()定义一个元组
a = (1, 2.1, 'Hello')
# 尝试修改元组中的元素会报错
a[0] = 100

字典

字典是一种极为重要的变量类型,使用一个key来访问相应的value,即一种键值对的数据形式。

# 使用{}定义一个字典
a = {}
# 使用key来赋值value
a['k1'] = 1
a['k2'] = 2.1
a['k3'] = 'Hello'

所以能够总结出字典和列表的不同。列表中的元素是有序对等的,所以是用下标来赋值和访问,而字典中的元素是无序的,所以是用key来操作相应的value。

# 也可以在定义字典和列表的同时进行赋值
li = [1, 2.1, 'Hello']
di = {'k1': 1, 'k2': 2.1, 'k3': 'Hello'}

使用 has_key() 判断字典中是否有某个key。

print di.has_key('k4')

如果访问不存在的key,Python将会报错。在赋值的时候,如果key已经存在,则会用新的value覆盖已有的value。

03 注释

被注释的代码将不会运行,可以看作是写给自己和其他程序猿阅读的一些笔记和说明,提高代码可读性。

# 这里是单行注释

'''
这里是
很多行
注释
'''

在Sublime中,选中需要注释的内容,按Ctrl+/即可完成注释。

04 保留字符

在Python中,有一些字符串具有某些特定功能,如 import 、 class 等。我们在选择变量名时,应注意避开这些保留字符。

# 以下变量赋值将报错
import = 1

05 行和缩进

在Python中,代码块的边界不是通过大括号等符号进行显式划分,而是通过行的缩进实现的。连续相同缩进水平的代码处于同一个代码块,在使用 for 、 while 、 if 、 try 等语法时需要注意每行代码的缩进。

06 运算符

运算符的作用是根据已有的变量生成新的变量,主要有以下几种:

  • 算术运算符:+,-,*,/,%,即加、减、乘、除、取余

  • 比较运算符:==,!=,>,<,>=,<=,即等于、不等于、大于、小于、大于等于、小于等于

  • 赋值运算符:=,+=,-=,*=,/=,%=,即赋值、加赋值、减赋值、乘赋值、除赋值、取余赋值

  • 逻辑运算符:and,or,not,即与、或、非

  • a = 1


  • b = 2


  • print a + b




  •  
  • print a == b




  •  
  • # 等价于 a = a + 3


  • a += 3


  • print a




  •  
  • c = True


  • d = False


  • print c and d

07 条件

在写代码的时候,往往需要根据某些条件进行判断,并根据判断结果执行不同的分支代码。

a = 1
# 单个条件
if a == 1:
print 11111

# 处理条件不成立的分支
if a == 2:
print 22222
else:
print 33333

# 多个条件,加多少个都可以
if a == 1:
print 11111
elif a == 2:
print 22222
else:
print 33333

需要注意的是,但凡出现了 if 和 elif ,就需要加上相应的条件判断,并且注意代码的缩进。在Sublime中输入 if 会出现相应的提示,可以方便地补全代码,在换行时光标也会自动跳到合适的缩进处。

08 循环

如果需要打印从1到100的100个数,肯定不会傻傻地写100行print代码,而是会用循环来处理类似的重复性工作。

while 循环

while 循环的思想是,只要某一条件成立,就不断执行循环体里的代码,直到条件不再成立。

flag = 1
while flag < 10:
print flag
# 一定要记得在循环体里修改条件变量
# 否则可能导致死循环
flag += 1

for 循环

for 循环的循环次数一般是事先预知的,将一个标志变量从某个起始值迭代到某个终止值后即结束。

# x从0开始,一直到9结束
for x in xrange(0, 10):
print x

可以用 for 循环方便地遍历列表和字典。

li = [1, 2.1, 'Hello']
dict = {'k1': 1, 'k2': 2.1, 'k3': 'Hello'}

# 遍历列表,这里的item只是一个临时变量,取别的名称也行
for item in li:
print item

# 遍历字典的全部key,这里的key也只是一个临时变量,名称不重要
for key in dict.keys():
print key

# 遍历字典的全部value,这里的value也只是一个临时变量,名称不重要
for value in dict.values():
print value

# 同时遍历key和value
for key, value in dict.items():
print key, value

循环控制

循环控制主要包括三种: pass 、 continue 、 break 。

pass 表示什么也不做,只是占一行代码的位置;continue 表示立即退出本轮循环,继续执行后续轮循环;break 表示立即推出循环,后续循环也不再执行。

for x in xrange(0, 10):
if x == 5:
pass
else:
print x

for x in xrange(0, 10):
if x == 5:
continue
print x

for x in xrange(0, 10):
if x == 5:
break
print x

09 时间

在处理数据时,很多地方都会涉及到时间,例如数据产生的时间。先介绍一下时间戳的概念,时间戳指的是从1970年1月1日0时0分0秒开始,到某一时刻所经历的秒数,可以是整数或者小数,后者的精度更高。

为什么需要时间戳这样的一个概念?因为对于同一个时刻,不同人的描述可能不同,毕竟文本的形式千变万化,而时间戳使得时间的表达得到了统一,每个时刻只能用唯一的整数或浮点数来表示,同时也便于计算时间差这样的处理。

# 来看一下当前时刻的时间戳吧
import time
t = time.time()
print t, type(t)

关于时间戳,最常用的处理便是时间戳和时间文本之间的转换,例如将 2016年10月1日 10时0分0秒 转为时间戳。

import time
# 时间文本转时间戳,精确到秒
a = '2016-10-01 10:00:00'
a = int(time.mktime(time.strptime(a,'%Y-%m-%d %H:%M:%S')))
print a
# 时间戳转时间文本
b = int(time.time())
b = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(b))
print b

其中, %Y 、 %m 等都是时间字段,前者表示四位的年份,后者表示两位的月份。

10 文件

文件操作包括向文件中写内容,以及从文件中读内容,使用 open() 打开一个文件。

# 写文件
# 重新写模式,打开文件时会将文件内容清空
fw = open('data.txt', 'w')
# 追加写模式,打开文件后保留原始内容,继续写入
for x in xrange(0, 10):
# 将整数转成文本再写入
fw.write(str(x))
# 也可以每次写入之后换行,n为转义字符,表示换行
# fw.write(str(x) + 'n')
fw.close()

# 读文件
fr = open('data.txt', 'r')
# 一行一行地读,line只是个临时变量,取别的名称也行
for line in fr:
print line
# 如果每行后面有换行,可以将换行符去掉,使内容更紧凑
# strip()可以去掉字符串两端的空白字符
# print line.strip()
fr.close()

11 异常

Python代码中可能会出现一些可以预知的问题,例如字典访问的key不存在。如果不加处理,发生问题的时候Python便会报错并退出,可能之前跑了很久又要重头再来。因此,我们需要对可能出现的异常进行捕捉和处理。异常的结构由 try 、 except 、 else 、 finally 四部分组成。

try:
# 尝试执行这些代码
print 1 / 0
except Exception, e:
# 如果出现异常就进行处理
# e为出现的异常类型
print e
else:
# try里的代码没有出错
# 可以执行后续工作了
print '没有出错'
finally:
# 无论是否出错,都会执行的代码
print '一定会执行'

12 函数

函数的作用是代码模块化,将可重用的代码封装成一个函数,这样在需要使用的时候就只需调用写好的函数即可,而不用重新写一遍代码。

函数的使用包括两个部分,函数的定义和函数的调用。除此之外,函数可以有一个或多个参数,参数之间以逗号分开,为函数的功能提供更多的灵活性。

# 定义函数
def hello(name1, name2):
print 'Hello ' + name1 + ' ' + name2

# 调用函数
hello('Python', 'JAVAScript')

补充学习

以上所介绍的,都是Python中最基础和最常用的内容,先掌握这些就可以跟上后续章节。

当然,如果希望更全面更系统地学习一遍Python,可以参考以下链接。学习时间更多、成本更高,但是能掌握得更全更深。

  • 菜鸟教程:

    runoob.com/python/python-tutorial.html

  • 廖雪峰的Python教程:

    liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/

欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,学习能力的提升上有新的认识,欢迎转发分享给更多人。



Tags:Python   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
Python简单易学,但又博大精深。许多人号称精通Python,却不会写Pythonic的代码,对很多常用包的使用也并不熟悉。学海无涯,我们先来了解一些Python中最基本的内容。Python的特点 ...【详细内容】
2019-12-02   Python  点击:(0)  评论:(0)  加入收藏
Python学习网络爬虫主要分3个大的版块:抓取,分析,存储。另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下。 当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输...【详细内容】
2019-11-28   Python  点击:(6)  评论:(0)  加入收藏
B站在小视频功能处提供了 API 接口,今天的任务爬取Bilibili视频~B 站视频网址:https://vc.bilibili.com/p/eden/rank#/?tab=全部 此次爬取视频,我们爬取前100个~我们做好前期...【详细内容】
2019-11-27   Python  点击:(2)  评论:(0)  加入收藏
SQL注入就是攻击者在前端的表单输入中,或者 API 的传参时,按照 SQL 的语法,人为地加入一段代码,改变原有的SQL 逻辑,来跳过验证,篡改或者删除数据库,达到攻击者的目的的过程。SQL注...【详细内容】
2019-11-27   Python  点击:(3)  评论:(0)  加入收藏
通用爬虫和聚焦爬虫根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种.通用爬虫通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是...【详细内容】
2019-11-27   Python  点击:(2)  评论:(0)  加入收藏
1.1 变量和赋值语句#使用Python变量前必须给它赋值,因为其无默认值x=31.2 Python神奇之处1#可同时给多个变量赋值x,y,z=1,2,3a=b=123#简单的多变量间值交换a,b,c,d=&#39;a&#3...【详细内容】
2019-11-25   Python  点击:(3)  评论:(0)  加入收藏
在之前的文章中,我们介绍过编码格式的发展史。今天我们通过几个例子,来彻底搞清楚python3中的编码格式原理,这样你之后写python脚本时碰到编码问题,才能有章可循。 我们先搞清楚...【详细内容】
2019-11-22   Python  点击:(5)  评论:(0)  加入收藏
为什么要学正则表达式实际上爬虫一共就四个主要步骤:明确目标 (要知道你准备在哪个范围或者网站去搜索) 爬 (将所有的网站的内容全部爬下来) 取 (去掉对我们没用处的数据) 处...【详细内容】
2019-11-22   Python  点击:(6)  评论:(0)  加入收藏
无论函数传递的参数的可变还是不可变,只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用,而如果传递的参数是可变类型,在函数内部使用方法修...【详细内容】
2019-11-20   Python  点击:(3)  评论:(0)  加入收藏
要识别两张图片是否相似,首先我们可能会区分这两张图是人物照,还是风景照等......对应的风景照是蓝天还是大海......做一系列的分类。...【详细内容】
2019-11-20   Python  点击:(7)  评论:(0)  加入收藏
今天要给大家介绍的是验证码的爬取和识别,不过只涉及到最简单的图形验证码,也是现在比较常见的一种类型。运行平台:WindowsPython版本:Python3.6IDE: Sublime Text其他:Chrome浏...【详细内容】
2019-11-19   Python  点击:(6)  评论:(0)  加入收藏
我们在做一些数据统计或分析的时候,有时会接触到Execl 格式或者Word 格式的文件。Execl格式的数据提取和解析,我们在之前的文章分享过一些非常好用的Python第三方库,本文中主要...【详细内容】
2019-11-19   Python  点击:(6)  评论:(0)  加入收藏
在实现算法的时候,通常会从两方面考虑算法的复杂度,即时间复杂度和空间复杂度。顾名思义,时间复杂度用于度量算法的计算工作量,空间复杂度用于度量算法占用的内存空间。本文将从...【详细内容】
2019-11-18   Python  点击:(4)  评论:(0)  加入收藏
一直也没写过爬虫的代码,一来是接触练习的少,二来也对爬虫心存偏见:老有种做贼偷数据的感觉。最近在体验过爬虫的高效便捷后,觉得确实有必要多实践一下。其实我本身学爬虫没多久...【详细内容】
2019-11-14   Python  点击:(10)  评论:(0)  加入收藏
GUI,是 Graphics User Interface(图形用户界面)的缩写。在 GUI 中,并不只是输入文本和返回文本,用户可以看到窗口、按钮、文本框等组件,还可以通过鼠标和键盘操作应用。 GUI 是程...【详细内容】
2019-11-13   Python  点击:(8)  评论:(0)  加入收藏
一起学习,一起成长!Numpy数组的索引是一个内容丰富的主题,因为选取数据子集或单个元素的方式有很多。 一维数组In[13]:arr=np.arange(10)In[14]:arrOut[14]: array([0, 1, 2, 3,...【详细内容】
2019-11-13   Python  点击:(6)  评论:(0)  加入收藏
作为数据分析师,我通常会收到诸如“您可以每周向我发送此报告吗?”或“您是否可以每月通过电子邮件向我发送此数据?”这样的请求。发送报告很容易,但是如果您每周必须做同样的事...【详细内容】
2019-11-12   Python  点击:(51)  评论:(0)  加入收藏
1创建web服务器:使用cmd命令进入到存放项目的目录中执行以下命令:python django-admin.py startproject mysite成功后会在目录中出现 mysite 目录,此处创建的为开发服务器2创...【详细内容】
2019-11-12   Python  点击:(9)  评论:(0)  加入收藏
Python 的概念小编使用的centos7下的python版本为2.7,而python要全面转向python3,故升级pyhton迫在眉睫,今天来介绍一下如何升级centos下的python首先要确定需要升级的python...【详细内容】
2019-11-12   Python  点击:(16)  评论:(0)  加入收藏
Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上。后来对Python渐渐熟悉了一点,再回头看self的概念,似乎有点弄明白了。首先...【详细内容】
2019-11-11   Python  点击:(9)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条