python基础知识——基本语法
在python基础知识这个系列中,准备罗列出我学习python的一些基础知识,包括:
- 基本语法
- 控制语句
- 内置数据结构
- 模块和函数
- 字符串
- 文件处理
- 面向对象
- 异常处理
以前写机器学习算法喜欢使用Matlab语言,接触python后,觉得python有很多地方还是比Matlab方便点,各有各的优势吧,在公司还是使用python较多,这里会罗列出一些python的基础知识。
一、编码规则
1、命名规则
变量名通常是由字母和下划线组成,包名,模块名通常是由小写字母组成。
类名的首字母用大写,其他字母用小写;对象名用小写字母;类的私有变量、私有方法以两个下划线作为前缀。
class Person:#定义一个Person类
__name = ''#定义一个私有变量
__age = ''#定义一个私有变量
def __init__ (self, name, age):
self.__name = name
self.__age = age
def getName (self):
return self.__name
def getAge (self):
return self.__age
函数名通常采用小写字母。
2、代码缩进和冒号
在python中,代码缩进和冒号都是一种语法,在Java,C/C++中有{}语法,在python中则是采用的缩进和冒号。
如在Java中实现如下的判断:
if (x < 10)
{
y = x + 1;
}else{
y = x * 2;
}
则在python中的写法为:
if x < 10:#冒号
y = x + 1#缩进
else:
y = y * 2
3、模块的导入
模块是指类或者函数的集合。与Java中的import类似,在python中有两种导入方式:
- import ...
- from ... import ...
如要需要使用random模块中的rangrange函数。则有以下两种方式:
from ...
import random
num = random.randrange(1,9)#使用randrange函数
print num
from ... import ...
from random import randrange
num = randrange(1,9)#使用randrange函数
print num
注:这两种方式的区别,from ...导入的是整个模块,而import ...import ...导入的只是部分内容,而且还创建了导入对象的引用,可以直接使用。在import ...模式中为模块创建别名,则使用as,如
import random as rd#为random创建别名rd
num = rd.randrange(1,9)#使用randrange函数
print num
4、注释
在python中注释使用的是#,#号后面为注释的内容,如上面的例子。
这里还要注意一下其他几种特殊的注释
- 中文注释:#coding:UTF-8
- 跨平台注释:#! /usr/bin/python
5、语句分隔
python中不必使用;分隔,但是一行写多条语句时要使用;分隔。
如
x = 1; y = 2; print x + y
6、变量和常量
变量名由字母、数字或者下划线组成,其中,首字符必须是字母或者下划线。
注意全局变量的定义和使用:
# 在文件的开始处定义全局变量
_a = 1#全局变量,加下划线以示区别
_b = 2
def add():
global _a
_a = 3
return _a + _b
要使用global关键字。
在python中没有直接定义常量的关键字。
7、数据类型
主要的数据类型有:数字、字符串、元祖、列表和字典。
数字直接定义
i = 1
查看i的地址:
i = 1
print id(i)#查看i的地址
查看变量的类型
i = 1
j = 1.
print type(i)
print type(j)
<type 'int'> <type 'float'>
8、运算符
算术运算符 |
算术表达式 |
说 明 |
---|---|---|
+ |
x + y |
加法 |
- |
x - y |
减法 |
* |
x * y |
乘法 |
/ |
x / y |
除法 |
% |
x % y |
求模 |
** |
x ** y |
求幂 |
注:1/2要进行浮点运算,需要导入division模块
from __future__ import division
关系运算符
关系运算符 |
关系表达式 |
说 明 |
---|---|---|
< |
x < y |
小于 |
> |
x > y |
大于 |
<= |
x <= y |
小于等于 |
>= |
x >= y |
大于等于 |
== |
x == y |
等于 |
!=或<> |
x != y或x<>y |
不等于 |
逻辑运算符
- 简单对比MySQL和Oracle中的一个sql解析细节 (r5笔记第40天)
- 关于Oracle和MySQL中的无密码登录 (r5笔记第39天)
- 快速定位隐蔽的sql性能问题及调优(r5笔记第38天)
- 关于统计信息过期的性能落差(r5笔记第36天)
- 系统级alias vs Oracle ADR功能(r5笔记第35天)
- 关于收缩数据文件的尝试(r5笔记第34天)
- 搭建dataguard碰到的几个小问题(r5笔记第33天)
- TP-LINK 远程代码执行漏洞 CVE-2017-13772 趣谈
- 执行计划中的COLLECTION ITERATOR PICKLER FETCH导致的性能问题 (r5笔记第49天)
- dataguard switchover的自动化脚本实现 (r5笔记第48天)
- 曲折的dump导入及问题分析(r5笔记第47天)
- 对一道if-else相关的程序题的简单分析(r5笔记第45天)
- 持续近7个小时的索引扫描的查询优化分析 (r5笔记第44天)
- 04.Java对象和类
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- XML文件解析实践(DOM解析)
- golang 多协程的同步方法总结
- C++核心准则T.144:不要特化函数模板
- 三千字带你搞懂XXL-JOB任务调度平台
- Python-科学计算-pandas-14-df按行按列进行转换
- Python实现扫码工具
- C++核心准则T.150:用static_assert检查类和概念的匹配性
- 初学者也能快速写Python脚本啦——通用功能代码分享
- C++核心准则CPL.1:C++比C更好
- C++核心准则CPL.2:如果你必须使用C,使用C和C++的共同子集,并且使用C++编译器编译C代码
- C++核心准则SF.1:如果你的项目没有正在遵从的其他习惯,为代码文件使用.cpp后缀,为接口文件使用.h后缀
- 群晖NAS搭建测速网站,支持万兆
- 二叉树:你真的会翻转二叉树么?
- C++核心准则SF.2:.h文件一定不能包含对象定义或者非inline函数定义
- Vue.js 源码⽬录设计