在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解。之所以将python的基本语法分为两部分,是因为园子里大部分人都是有编程基础的,所以在学习Python的时候可以先出个预览版的,预览版都是根据Python的语法与其他语言(java/C#/php)比较类似又不完全一样的地方,便于大家对Python有个基本理解。在大家差不多有个了解以后,我们再深入讲讲Python的语法可能就会容易一些。

v写在前面

python你不去认识它,可能没什么,一旦你认识了它,你就会爱上它

v正文开始:Python基本语法

1.定义常量:

之所以上篇博客介绍了定义变量没有一起介绍定义常量,是因为Python的常量相对其他语言,可能略显麻烦。不仅仅只是单靠const就可以完成常量定义的。在Python中定义常量需要用对象的方法来创建。

我们需要在Lib的目录下创建一个const.py的文件,lib目录下主要是放一些模块的东西

代码正文:

class_const(object):class ConstError(TypeError):pass

def __setattr__(self, name, value):if self.__dict__.has_key(name):raise self.ConstError, "Can't rebind const (%s)" %name

self.__dict__[name]=valuedef __delattr__(self, name):if name in self.__dict__:raise self.ConstError, "Can't unbind const (%s)" %nameraiseNameError, nameimportsys

sys.modules[__name__] = _const()

这就是一个定义常量对象的方法,Python定义常量首先需要有对象的概念,所以上篇博客我们已经简单了解了对象的定义了。至于上面这个const类呢,大家略看一下就可以了,这种东西百度搜索Python定义常量一大堆。我们只需要在lib文件夹下面建立一个const.py的文件,将上述代码拷贝到const.py文件里。这样使用常量就很方便了。

代码讲解:

通过上图的运行结果,可以看出来,在输出第一次输出const.value(结果是5)以后,就报错了。那是因为一个常量再一次被赋值了,所以就会报错。在创建好常量对象的方法以后,其实常量使用还是很方便的。使用常量的方法如下。

importconst

const.value=5

print(const.value)

2.数的类型:

整数型(int) 例:0、6、-2、2015、-203

长整型(long) 例:56990l、-12694l、938476l

浮点型(float) 例:7.5325、9.434、6.66

布尔型(bool) 例:True、False

复数型(complex) 例:6+4j、-5+12j、98+9j

数的类型里都比较好理解,这里可能就只有复数型需要单独拿出来说说。

complex()函数可以使用参数real + imag*j方式创建一个复数。也可以转换一个字符串的数字为复数;或者转换一个数字为复数。如果第一个参数是字符串,第二个参数不用填写,会解释这个字符串且返回复数;不过,第二个参数不能输入字符串方式,否则会出错。real和imag参数可以输入数字,如果imag参数没有输入,默认它就是零值,这个函数就相当于int()或float()的功能。如果real和imag参数都输入零,这个函数就返回0j。有了这个函数,就可以很方便地把一个列表转换为复数的形式。

注意:当想从一个字符串的复数形式转换复数时,需要注意的是在字符串中间不能出现空格,比如写成complex(‘1+2j’),而不是写成complex(1 +2j’), 否则会返回ValueError异常。

代码讲解:

3.字符串类型:

单引号字符串:'hello'

双引号字符串:"hello"

三引号字符串:"""hello"""或'''hello''' 注:三引号包含的字符串可由多行组成,一般可表示大段的叙述性字符串。在使用时基本没有差别,但双引号和三引号("""...""")中可以包含单引号,三引号('''...''')可以包含双引号,而不需要转义

代码正文:

dan='m1n9'

print("dan: {0}".format(dan))

dan1='Our "young"!'

print("dan1: {0}".format(dan1))

dan2='''Our

young

cool'''

print("dan2: {0}".format(dan2))

dan3="""Our

young

cool"""

print("dan3: {0}".format(dan3))

代码讲解:

4.转义符和换行符:

代码正文:

comment='I\'m young'

print(comment)

description="Our \nyoung"

print(description)

代码讲解:

5.自然字符串和字符串重复:

自然字符串字面意思理解就是将字符串保留本身的格式,而不受转义的影响。

字符串重复字面意思理解就是将字符串重复输出。

代码正文:

comment=r'Our \nyoung'

print(comment)

description="Our \nyoung"

print(description)

three="Our young\n"*3

print(three)

代码讲解:

6.子字符串:

索引运算符从0开始索引

切片运算符[x:y]是指从第x下标开始到第y-1下标

代码正文:

description="Our young"d1=description[0]print("d1: {0}".format(d1))

d2=description[8]print("d2: {0}".format(d2))

d3=description[:3]print("d3: {0}".format(d3))

d4=description[3:]print("d4: {0}".format(d4))

d5=description[3:6]print("d5: {0}".format(d5))

代码讲解:

7.数据类型:

基本数据类型:基本数据类型就是之前我们讲到的数和字符串,这里就不介绍了。

列表:python里没有数组的概念,列表和数组的概念很接近。列表是用来存储一连串元素的容器,用[]表示。

元组:同样元组合数组的概念也很接近,用()表示。另外元组只能读取不能修改。

集合:

格式:set(元素),python的set是一个无序不重复元素集。

功能:

建立关系

消除重复元素

字典:Python中的字典也叫关联数组,用{}表示。例: dictionary={'name':'toutou',"age":"26","sex":"male"} ps:是不是觉得有点儿像json?

代码正文:

#coding=utf-8#列表

people=["刘一","陈二","张三","李四","王五","赵六","孙七","周八","吴九"]print people[3]#元组

names=("刘一","陈二","张三","李四","王五","赵六","孙七","周八","吴九")print people[1]#集合

xitems=set("1222234566666789")

xitems.add("x")

xitems.remove("8")

xitems.discard("8")printxitems

yitems=set("1357")#交集

print("交集:{0}".format(xitems&yitems)) #xitems&yitems = xitems.intersection(yitems)#并集

print("并集:{0}".format(xitems|yitems)) #xitems|yitems = xitems.union(yitems)#差集

print("差集:{0}".format(xitems-yitems)) #xitems-yitems = xitems.difference(yitems)

xitems.pop()

xitems.clear()print("xitems集合被清空:{0}".format(xitems))#字典

dictionary={'name':'toutou',"age":"26","sex":"male"}print dictionary["name"]#向字典中添加项目

dictionary['hobby']='cnblogs'

print dictionary["sex"]print dictionary["hobby"]

代码讲解:

8.标识符:

在日常生活中,标示符是用来指定某个东西、人,要用到它,他或她的名字;在数学中解方程时,我们也常常用到这样或那样的变量名或函数名;在编程语言中,标识符是用户编程时使用的名字,对于变量、常量、函数、语句块也有名字;我们统统称之为标识符。

标识符命名规范:

必须只能是字母或下划线开头,不能是数字或者其他字符开头

除第一个开头字符外,其他部分可以是字母或者下划线或者数字

标识符大小写敏感,比如name和Name是不一样的标识符

特殊标识符:python中的关键字是指系统中自带的具备特定含义的标识符。常用的python关键字主要有:and,elif,global,or,else,pass,break,continue,import,class,return,for,while... 常用的python关键字很多与其他语言类似的,我们在命名时应尽量避免与关键字重复。大家也不用担心怕不好区分,其实也很好区分,一般的IDE中关键字是会显示出特定颜色的。

9.对象:

Python对象类型:Pyhon的内置对象:数字、字符串、列表、元组、字典、集合等等,在Python中,一切都可以看做是对象。

Pickle模块:在Python中有时有一些对象需要持久性存储,并且不丢失这个对象的类型与数据,就需要将这些对象进行序列化,序列化之后需要使用时,再恢复为原来的数据。这种序列化的过程,就叫pickle(腌制)。

代码正文:

#coding=utf-8#pickle 模块化(腌制)

importpickle#dumps(object)序列化

listx=["one","two","three"]

listb=pickle.dumps(listx)print("dumps(object)序列化:{0}".format(listb))#loads(string)反序列化

listz=pickle.loads(listb)print("loads(string)反序列化:{0}".format(listz))#demp(object,file),将对象序列化存储到文件

writeFile=file('test.pke','wb')

pickle.dump(listx,writeFile,True)

writeFile.close()#load(object,file)将dump存储在文件里的数据反序列化

readFile=file('test.pke','rb')

listTemp=pickle.load(readFile)print("#load(object,file)将dump存储在文件里的数据反序\n列化:{0}".format(listTemp))

readFile.close()

代码讲解:

10.行与缩进:

物理行与逻辑行:

物理行:实际中看到的行。python中一个物理行一般可以包含多个逻辑行,在一个物理行中编写多个逻辑行的时候,用分号隔开。一个逻辑行后面必须有一个分号,注意,在实际程序中,如果一个逻辑行占了一个物理行的最后,这个逻辑行也可以省略分号。(省略规则:每个物理行默认自带一个分号,so,每个物理行的最后一个逻辑行可以省略分号,故:当一个逻辑行占了一个物理行的时候即可省略分号。)

逻辑行:一段代码意义上的行数

行连接:行连接相关讲解参见代码讲解图。

缩进:在上篇博客中,有朋友提到python语言是"靠缩进控制代码的语言"。的确如此,在python中,逻辑行的起始位置的空白是有语法规定的,如果空白不对,程序就会执行出错。(这一点是和其他语言很大的一个不同点。)一般情况下(if/while..等等后面的逻辑行除外),单独的逻辑行起始位置不应该有空白。缩进的方法有两种,可以按空格,也可以按tab键。(一般IDE会自动缩进。)关于缩进可能刚入门起来有点不适应或者不习惯,多试试就好了。

代码正文:

#coding=utf-8#物理行与逻辑行#以下是2个物理行

print "物理行1"

print "物理行2"

#以下是1个物理行,2个逻辑行

print "逻辑行1";print "逻辑行2"

#以下是1个逻辑航,2个物理行

print '''你说

我是

物理行还是逻辑行?'''

#行连接

print "我是行连"\"接"

代码讲解:

v博客总结

关于python的基本语法一和二就介绍这么多,大家如果有什么疑问或者补充的可以踊跃发言。基础很重要,而就Python基本语法而言,有很多和其他语言不一样的地方,需要勤加练习,就习惯了。

作  者:http://www.cnblogs.com/toutou/

关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!

版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我

声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!

python语法基础语法_Python基本语法[二],python入门到精通[四]相关推荐

  1. 【Python百日基础系列】Day02-Python语法基础

    Python百日基础系列 视频讲解2-1 [Python百日基础系列]02-Python语法基础-1 视频讲解2-2 [Python百日基础系列]02-Python语法基础-2 文章目录 Python ...

  2. 腾讯技术官发布Python零基础就业宝典,想学习Python的朋友有福了

    近几年来,互联网行业变化非常大,除了龙头企业的更替,"裁员潮""失业潮"也不断掀起,尤其是对于年纪太大的程序员真的是不太友好.但是,根据数据统计表明,自2018 ...

  3. Python零基础速成班-第9讲-Python面向对象编程(上),对象和类、初始化、继承、重写、多态、类方法、组合

    Python零基础速成班-第9讲-Python面向对象编程(上),对象和类.初始化.继承.重写.多态.类方法.组合 学习目标 修饰器 面向对象编程:对象和类.初始化.继承.重写.多态.类方法.组合 课 ...

  4. Python零基础速成班-第13讲-Python正则表达式Regex

    Python零基础速成班-第13讲-Python正则表达式Regex 学习目标 正则表达式 课后作业(4必做) 友情提示:将下文中代码拷贝到JupyterNotebook中直接执行即可,部分代码需要连 ...

  5. Python零基础速成班-第10讲-Python面向对象编程(下),Property属性、特殊方法、设计模式、链表应用

    Python零基础速成班-第10讲-Python面向对象编程(下),Property属性.特殊方法.设计模式.链表应用 学习目标 面向对象编程 接上一讲:Property属性.特殊方法.设计模式 面向 ...

  6. Python零基础速成班-第5讲-Python函数,Function和Lambda基础

    Python零基础速成班-第5讲-Python函数,Function和Lambda基础 学习目标 Function函数 Lambda Function函数 课后作业(4必做) 友情提示:将下文中代码拷 ...

  7. Python零基础速成班-第6讲-Python异常处理Exception,tryexcept,raise,assert,输入模块pyinputplus

    Python零基础速成班-第6讲-Python异常处理Exception,try&except,raise,assert,输入模块pyinputplus 学习目标 异常处理Exception: ...

  8. Python零基础速成班-第11讲-Python日志Logging,小游戏设计game of life

    Python零基础速成班-第11讲-Python日志Logging,小游戏设计game of life 学习目标 Python日志Logging 小游戏设计game of life 课后作业(2必做) ...

  9. Python零基础速成班-第8讲-Python文件操作File IO、高级文件处理模块shutil、CSV、JSON、多线程基础

    Python零基础速成班-第8讲-Python文件操作File I&O.高级文件处理模块shutil.CSV.JSON.多线程基础 学习目标 文件操作File I/O 高级文件处理模块shut ...

  10. Python零基础速成班-第14讲-Python处理Excel和Word,使用openpyxl和docx包详解,图表入门

    Python零基础速成班-第14讲-Python处理Excel和Word,使用openpyxl和docx包详解,图表入门 学习目标 Python处理Excel(使用openpyxl包).图表入门\ P ...

最新文章

  1. 线性时不变系统以及响应的分类
  2. Dwg图纸属性的读取
  3. Python多版本共存配置
  4. Vue组件之间相互传值的方式
  5. 在地理文本处理技术上,高德有哪些技巧?
  6. 瑞柏匡丞_移动互联的发展现状与未来
  7. Python——腾讯在线编程题(2018)
  8. 数据结构排序系列详解之二 希尔排序
  9. 2007.05.07 不再如此堕落
  10. svn和git的区别
  11. win10任务栏开始菜单等系统图标点击无反应的解决方法
  12. JPA使用nativeQuery多参数查询注意点
  13. Flex to Excel or Excel to Flex
  14. 那个炒币,8小时赚了一辆法拉利的女大学生,现在怎么样了?
  15. 文字绕圆排列:vue
  16. Linux系列之查看进程线程的方法
  17. 2021秋招嵌入式笔试面试题目汇总
  18. Java岗定级阿里P6-二面蚂蚁金服(交叉面),已拿offer
  19. CAN总线数据分析 汽车CAN总线
  20. 浙大计算机考研pq,浙大研究生电力系统分析.docx

热门文章

  1. Translation Regime介绍
  2. 声网自研传输层协议 AUT 的落地实践丨Dev for Dev 专栏
  3. 世界地图并不是世界的真实样貌!甚至误差非常大
  4. NVIDIA GPU SM和CUDA编程理解
  5. 设置 IIS下虚拟目录或应用程序不继承主站点的web.config
  6. 多链跨链、高可用、高安全性的区块链应用如何落地? 金链盟大赛10强揭晓
  7. 淘宝网的技术发展史(三)――分布式时代
  8. DC综合后处理(查看生成的网表和报告)
  9. 使用聊天机器人做客服工作是一种什么体验?
  10. 哪个软件可以制作GIF表情包