最近在接手公司同事做的报表的时候开始接触一些python脚本,这些脚本主要是执行一些hive 的sql,把得到的结果存储在mysql中的结果表里。
首先了解下基础语法:
http://www.w3cschool.cc/python/python-basic-syntax.html
其中python的行和缩进是很特殊的,
Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。
python最具特色的就是用缩进来写模块。
在Python的代码块中必须使用相同数目的行首缩进空格数。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行
Python标识符
在python里,标识符有字母、数字、下划线组成。
在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
python中的标识符是区分大小写的。
以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from xxx import *"而导入;
以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。
一、数据结构
Python中常见的数据结构可以统称为容器(container)。序列(如列表和元组)、映射(如字典)以及集合(set)是三类主要的容器。
Python中两种基本的数据结构是序列和映射,序列包含:可变的列表和不可变的元组;列表、元组和字符串都是序列; 而当序列不够用时就出现了映射:字典。列表中的元素是可以变化的,元组里面的元素一旦初始化后就不可更改。列表和元组只是一类元数据的集合体,还不能满足通过名字引用值的数据,故字典就充当了这个功能角色。
二、运算符
python的运算符也是与java 有很多不同的地方。
1.算术运算符
以下假设变量a为10,变量b为20:
+ 加 两个对象相加 a + b 输出结果 30
- 减 得到负数或是一个数减去另一个数 a - b 输出结果 -10
* 乘 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/ 除 x除以y b / a 输出结果 2
% 取模 返回除法的余数 b % a 输出结果 0
** 幂 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
// 取整除 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
- 赋值运算符
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a
- 逻辑运算符
Python语言支持逻辑运算符,以下假设变量a为10,变量b为20:
and 布尔"与" - 如果x为False,x and y返回False,否则它返回y的计算值。 (a and b) 返回 true。
or 布尔"或" - 如果x是True,它返回True,否则它返回y的计算值。 (a or b) 返回 true。
not 布尔"非" - 如果x为True,返回False。如果x为False,它返回True。 not(a and b) 返回 false。
- 成员运算符
除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
in 如果在指定的序列中找到值返回True,否则返回False。 x 在 y序列中 , 如果x在y序列中返回True。
not in 如果在指定的序列中没有找到值返回True,否则返回False。 x 不在 y序列中 , 如果x不在y序列中返回True。
5.Python身份运算符
身份运算符用于比较两个对象的存储单元
is is是判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not is not是判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1
6.运算符优先级
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符
三、函数
定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
语法
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
在学习python的过程中,觉得下面资料做为入门还是挺不错的。
可以了解python的基础语法以及基本类型,看完之后,再看别人的写的脚本也就很轻松了。
http://www.itongji.cn/article/10243C22014.html
http://www.w3cschool.cc/python/python-tutorial.html