我的编程之路
从玩耍Excel表格到MySQL数据仓库,之后进入数据分析的天坑,然后再到大数据平台HIVE、Hbase。接着Django Web全栈开发。在走过这一圈之后,很多的内容学习都是碎片化的,在未来一段时间找几本书籍系统的学习一下,顺便做个笔记给后来的学生。
编程语言最强大的功能就是操作变量。变量就是一个有值的代号。
赋值语句
创建新的变量并赋值,格式为 变量代号 = 具体的值。
>>> MyName = 'Data Yang'
>>> age = 36
>>> pi = 3.141592653589793
变量名称
变量也有自己的命名规则。
- 变量可以由字母、下划线和数字组成。
- 变量不能以数字开头。
- 变量不能与关键字重名。
- 变量区分大小写。
>>> data = "Python Data"
>>> Name = "Mr数据杨"
>>> score = 99.9
>>> y = True
命名规则
>>> my_name = "Mr数据杨"
>>> myName = "Mr数据杨"
>>> MyName = "Mr数据杨"
变量数据类型
>>> value = 10
>>> value = 10.0
>>> value = True
>>> value = 1 * (10**2) + 1 * (10 ** 1)
>>> value = "data"
>>> value = ["data1","data2"]
>>> value = ("data1","data2")
>>> value = {"key":"value"}
变量之间的计算
>>> 5 + 5 => 10
>>> True + False => 1
>>> str_ = "data" + "data" => "datadata"
>>> str_ = "data" * 2 => "datadata"
不能冲突的关键词 33 个
>>> import keyword
>>> print(",".join(keyword.kwlist))
>>> False,None,True,and,as,assert,break,class,continue,def,del,elif,else,except,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,or,pass,raise,return,try,while,with,yield
具体含义如下,不用刻意去记,这些都会有区别于普通代码的颜色提示,你要是用他们做变量名了,一看就会知道的。
- and: 用于表达式运算,逻辑与操作
- as: 用于类型转换
- assert: 断言,用于判断变量或条件表达式的值是否为真
- break: 中断循环语句的执行
- class: 用于定义类
- continue: 继续执行下一次循环
- def: 用于定义函数或方法
- del: 删除变量或者序列的值
- elif: 条件语句 与if else 结合使用
- else: 条件语句 条件语句,与if,elif结合使用。也可以用于异常和循环使用
- except: 包括捕获异常后的操作代码,与try,finally结合使用
- finally: 用于异常语句,出现异常后,始终要执行finally包含的代码块。与try,except结合使用
- from: 用于导入模块,与import结合使用
- global: 定义全局变量
- if: 条件语句,与else,elif结合使用
- import: 用于导入模块,与from 结合使用
- in: 判断变量是否存在序列中
- is: 判断变量是否为某个类的实例
- lambda: 定义匿名函数
- not: 用于表达式运算,逻辑非操作
- or: 用于表达式运算,逻辑或操作
- pass: 空的类,函数,方法的占位符
- print: 打印语句
- raise: 异常抛出操作
- return: 用于从函数返回计算结果
- try: 包含可能会出现异常的语句,与except,finally结合使用
- while: 循环语句
- with: 简化Python的语句
- yield: 用于从函数依次返回值
表达式和语句
表达式是数值,变量和操作符的组合。单个值、变量本身也被当作一个表达式。
>>> 10
10
>>> n
10
>>> n + 10
20
语句的种类包括
MyName = "Mr数据杨"
MyName = myName = my_name = "Mr数据杨"
content = input("请输入...")
print("Hello Python World")
if MyName == "Mr数据杨":
print("我是Mr数据杨")
elif MyName == "Data Yang":
print("Data Yang")
else:
print("你是谁?")
if MyName == "Mr数据杨":print("我是Mr数据杨")
name = "我是Mr数据杨" if MyName == "Mr数据杨" else "你是谁?"
- 循环语句(遍历循环for-in-else、条件循环while-else、break/continue)
count = 1
while count < 10:
count = count + 1
if count == 10:
break
elif count % 2 == 0:
continue
else:
print(count, " is 奇数" )
print("===========")
else:
print("游戏结束喽!")
for m in range(1, 20):
for n in range(2, m):
if m%n==0:
o = m/n
print('%d 等于 %d * %d' % (m, n, o))
break
else:
print(m,"====",n)
else:
print(m,"是一个质数")
- 异常处理语句(try-except-else-finally)
try:
MyName == "Mr数据杨"
except:
print("变量赋值请使用 =")
x,y = 10,0
try:
result = x / y
except ZeroDivisionError:
print('被除数不能是0,输入信息有误')
else:
print('{}除以{}的结果是{}'.format(x,y,result))
finally:
print("计算完成")
脚本模式
我们每一个制作的文件在Anaconda是以笔记的方式呈现,这些代码放到文本文件,将文件后缀名改成 .py 那它就是python脚本。是可以通过解释器执行。
在未来的工程项目开发的时候都会用到该种方式进行代码的保存,将交互的模式代码编写成脚本,毕竟python是一门脚本语言。
运算符优先级
对于数学运算,Python就遵循着数学上的规则。
- 括号内的内容最优先,大家可以用括号来强制某系表达式有限计算。所以1**(3-1)就等于2了,(1+1)**(3-1)就是1的立方,等于1。使用括号也有助于让你的表达式读起来更好理解,比如(minute * 100) / 60,这个也不影响计算结果,不过看起来易于理解。
- 除了括号,所有运算符中,乘方最优先,所以1 + 23的结果是9而不是27,2*32结果是18,而不是36。
- 乘除运算比加减优先。
- 同类运算符从左往右来进行,乘方除外。
注释
try:
MyName == "Mr数据杨"
except:
print("变量赋值请使用 =")
调试
程序错误基本分3个种类,在调试DeBug过程中也是和常见的,也是比较容易解决的。
-
语法错误Syntax error: 比如括号要成对用。如果你的程序有某个地方出现了语法错误,Python会显示出错信息并退出,程序就不能运行了。最开始学习编程的这段时间,你遇到的最常见的估计就是这种情况。等你经验多了,基本就犯的少了,而且也很容易发现了。 -
运行错误Runtime error: 直到运行的时候才会出现的错误。这种错误也被叫做异常,因为一般表示一些意外的尤其是比较糟糕的情况发生了。 -
语义错误Semantic error: 这种错误是指你的程序运行没问题,也不产生错误信息,但不能正确工作。程序可能做一些和设计目的不同的事情。发现语义错误特别不容易,需要你仔细回顾代码和程序输出,要搞清楚到底程序做了什么。
Python 基础术语
- 变量(variable):有值的量。
- 赋值(assignment):给一个变量赋予值。
- 状态图(state diagram):图形化表征每个变量的值。
- 关键词(keyword):系统保留的用于解析程序的词,不能用关键词当做变量名。
- 运算数(operand):运算符来进行运算操作的数值。
- 表达式(expression):一组变量、运算数的组合,会产生单值作为结果。
- 求解(evaluate):把表达式所表示的运算计算出来,得到一个单独的值。
- 声明(statement):一组表示一种命令或者动作的代码,目前我们了解的只有赋值语句和打印语句。
- 运行(execute):将一条语句进行运行。
- 交互模式(interactive mode):在提示符后输入代码,让解释器来运行代码的模式。
- 脚本模式(script mode):将代码保存成脚本文件,用解释器运行的模式。
- 脚本(script):程序以文本形式存成的文件。
- 运算符优先级(order of operations):不同运算符和运算数进行计算的优先顺序。
- 拼接(concatenate):把两个运算对象相互连接到一起。
- 注释(comment):程序中用来解释代码含义和运行效果的备注信息,通常给阅读代码的人准备的。
- 语法错误(syntax error):程序语法上的错误,导致程序不能被解释器解译,就不能运行了。
- 异常(exception):程序运行的时候被探测到的错误。
- 语义(semantics):程序的意义。
- 语义错误(semantic error):程序运行的结果和料想的不一样,没有完成设计的功能,而是干了点其他的事情。
|