python特色 这是不同于java的地方
- python是若类型的语言特色。是以数据为中心,无需声明数据类型,上来就把要存储的数据放到内存,然后再去用一个变量名引用这个数据。
- python每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
- python每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。 **创建的时候就自动判断这个数据的标识(类型),引用名,数据.
- python的多个变量赋值 可以这样赋值 a, b, c = 1, 2, “john”
- python删掉数据引用 用del del var1,var2,…
- python中的列表 类型可以不固定 list = [ ‘runoob’, 786 , 2.23, ‘john’, 70.2 ]
- python中的字符串切割、列表、元组切割 规则从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾
- python中一下划线开头的标识符
- 单下划线开头是 类的保护protected成员变量(从java上来说)只有类对象和子类对象自己能访问到这些变量。
- 双下划线开头是 类的私有private成员变量(从java上来说)意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。
- 双下划线开头和结尾是 类的构造函数(从java上来说)
python最大特色是 不用大括号来控制类 函数的 逻辑判断 用缩进来控制的 缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
if True: print "True" else: print "False"
print相当于java上的printfln 自动换行 要想不换行需要加逗号
# 不换行输出 print x, print y, # 不换行输出 print x,y
python支持成员运算符
# -*- coding: UTF-8 -*- a = 10 b = 20 list = [1, 2, 3, 4, 5 ]; if ( a in list ): print "1 - 变量 a 在给定的列表中 list 中" else: print "1 - 变量 a 不在给定的列表中 list 中" if ( b not in list ): print "2 - 变量 b 不在给定的列表中 list 中" else: print "2 - 变量 b 在给定的列表中 list 中" # 修改变量 a 的值 a = 2 if ( a in list ): print "3 - 变量 a 在给定的列表中 list 中" else: print "3 - 变量 a 不在给定的列表中 list 中" 1 - 变量 a 不在给定的列表中 list 中 2 - 变量 b 不在给定的列表中 list 中 3 - 变量 a 在给定的列表中 list 中
python支持身份运算符 其实就是内存地址 相当于java上的equals比较的是hashcode 所以is和==的不同就跟equals和==的不同 一个是地址 一个是数值
# -*- coding: UTF-8 -*- a = 20 b = 20 if ( a is b ): print "1 - a 和 b 有相同的标识" else: print "1 - a 和 b 没有相同的标识" if ( a is not b ): print "2 - a 和 b 没有相同的标识" else: print "2 - a 和 b 有相同的标识" # 修改变量 b 的值 b = 30 if ( a is b ): print "3 - a 和 b 有相同的标识" else: print "3 - a 和 b 没有相同的标识" if ( a is not b ): print "4 - a 和 b 没有相同的标识" else: print "4 - a 和 b 有相同的标识" 1 - a 和 b 有相同的标识 2 - a 和 b 有相同的标识 3 - a 和 b 没有相同的标识 4 - a 和 b 没有相同的标识
- Python不支持单字符类型,单字符也在Python也是作为一个字符串使用。
python基础语法
- python标识符 这个与java相同 标识符由字母、数字、下划线组成,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。标识符是区分大小写的
注:**以下划线开头的标识符是有特殊意义的。
以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
以双下划线开头的 __foo 代表类的私有成员;
以双下划线开头和结尾的 foo 代表 Python 里特殊方法专用的标识,如 init() 代表类的构造函数。** - python保留字:
- python的行和缩进 Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。
python的多行语句:Python语句中一般以新行作为为语句的结束符。但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:语句中包含 [], {} 或 () 括号就不需要使用多行连接符
total = item_one + \ item_two + \ item_three days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
- python的引号:Python 可以使用引号( ’ )、双引号( ” )、三引号( ”’ 或 “”” ) 来表示字符串,引号的开始与结束必须的相同类型的。我习惯按java的来(‘) (“) (“”“) 其中三引号可以多行组成 一般用双引号表示字符串 三引号来多行注释 单引号表示字符
- python的注释 # 表示单行注释 “”” “”” 三引号表示多行注释
- python空行:函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。记住:空行也是程序代码的一部分。
- python同一行显示多条语句 要用分号隔开print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号
- python代码组:缩进相同的一组语句构成一个代码块,我们称之代码组。像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。我们将首行及后面的代码组称为一个子句(clause)。
- python脚本的第一行:脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单。
“#!/usr/bin/python” : 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器;
“#!/usr/bin/env python”(推荐): 这种用法是为了防止操作系统用户没有将 python 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到 env 设置里查找 python 的安装路径,再调用对应路径下的解释器程序完成操作。
“#!/usr/bin/python” 相当于写死了python路径;
“#!/usr/bin/env python” 会去环境设置寻找 python 目录,推荐这种写法
python数据类型
- Numbers (数字) int(有符号整型) long(长整型[也可以代表八进制和十六进制]) float(浮点型) complex(复数 实部+虚部组成的复数)