(1)缩进
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。否则会出现“IndentationError: unexpected indent”的错误提示。
(2)空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。空行并不是Python语法的一部分,书写时不插入空行,Python解释器运行也不会出错,但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
【注意】:学习Python与其他语言最大的区别就是,Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断,python最具特色的就是用缩进来写模块。
Python 文件中如果未指定编码,在执行过程会出现报错。解决方法为只要在文件开头加入 # -- coding: UTF-8 -- 或者 #coding=utf-8 即可。
【注意】:Python3.X 源码文件默认使用utf-8编码,可以正常解析中文,无需指定 UTF-8 编码)。
r只读打开文件(默认模式),r+读写
rb以二进制格式只读,rb+以二进制格式读写
a追加
其他类似规则,如:ab,ab+,a+;w,wb,wb+,w+等
表达式使用“%”二进制操作符或formart()函数。%操作符常见如:
%c 格式化字符及其ASCII码
%s格式化字符串
%d 格式化整数
%u 格式化无符号整型
%f 格式化浮点数字
%e 用科学计数法格式化浮点数。
【注意】:python运算符中“%”表示取余,“//”表示取整除整数部分。
【例】字符串格式化输出
import sys
print('my name is %(name)s,my age is %(age)d' %{'name':'ray','age':30}) # %格式化方法
print('my {config[spam]} runs {sys.platform}'.format(sys=sys,config={'spam':'laptop'}) ) #format格式化方法
^, <, > 分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充 + 表示带符号显示,在正数前显示 +,负数前显示 -
(空格)表示在正数前加空格
b、d、o、x 分别是二进制、十进制、八进制、十六进制
可以使用大括号 {} 来转义大括号
【例】数字格式化输出:
import sys
print("{:+.2f} \n {:.2%} \n {:,}\n {:^15d}\n ".format(3.1415926,0.25522,25522,25522)) #数字格式化
re.I使匹配对大小写不敏感
re.M多行匹配,影响 ^ 和 $
re.S使.匹配包括换行在内的所有字符
re.X增加可读性,忽略空格和 # 后面的注释
^匹配字符串的开头,$匹配字符串的末尾
[…]用来表示一组字符,单独列出,[^…]不在[]中的字符
\w匹配字母数字,\W匹配非字母数字
\s匹配任意空白字符(等价于[\t\n\r\f]),\S匹配任意非空字符
\d匹配任意数字(等价于[0-9]),\D匹配任意非数字
\A匹配字符串开始,\Z匹配字符串结束
\b匹配一个单词边界(单词和空格间的位置),\B匹配非单词边界
\n匹配一个换行符
\t匹配一个制表符
re*匹配0个或多个的表达式
.匹配任意字符,除了换行符(当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符)
【例】
[Pp]ython表示匹配 “Python” 或"python";
[^aeiou]表示匹配除了aeiou字母以外的所有字符;
[a-zA-Z0-9]表示匹配任何字母及数字(等价于\w);
‘er\b’可以匹配"never"中的’er’,但不能匹配"verb"中的’er’。
try:
<语句> #运行别的代码
except <错误类型>:
<语句> #如果在try部份引发了'错误类型'的异常(判断多种异常,可用逗号隔开)
except <错误类型>,<数据>:
<语句> #如果引发了'错误类型'异常,获得附加的数据
else:
<语句> #如果没有异常发生
[Finally:]
【注意】:try-except语句用于捕捉异常,try-finally 语句无论是否发生异常都将执行最后的代码。此外,raise语句自己触发异常,语法如下:
raise [Exception [, args [, traceback]]]
【例】异常处理
while True:
try:
x = int(input("Please enter a number: "))
break
except ValueError:
print("Oops! That was no valid number. Try again ")
Python循环语句有for和while循环,跳出循环语句:
【注意】在Python中没有do…while循环。
【例】计算提成奖金
# 需求:从键盘输入当月利润I,求应发放奖金总数?企业发放的奖金根据利润提成按以下规则:
# 利润<=10万元时,奖金可提10%;
# 10万元<利润<=20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
# 20万元<利润<=40万元时,高于20万元的部分,可提成5%;
# 40万元<利润<=60万元时,高于40万元的部分,可提成3%;
# 60万元<利润<=100万元时,高于60万元的部分,可提成1.5%;
# 高于100万元时,超过100万元的部分按1%提成。
# 程序分析:利用数轴来分界,定位
i = int(input('净利润:'))
arr = [1000000,600000,400000,200000,100000,0]
rat = [0.01,0.015,0.03,0.05,0.075,0.1]
r = 0
for idx in range(0,6):
if i>arr[idx]:
r+=(i-arr[idx])*rat[idx] #计算奖金
print ((i-arr[idx])*rat[i12580dx])
i=arr[idx] #改变分界值
print ("获得总奖金数: %d " %r)
#加载模块
import 模块名称 或 from 模块名称import 函数名称
lambda [arg1 [,arg2,.....argn]]:expression
【注意】匿名函数只是一个表达式,而不是一个代码块;有自己的命名空间。
【例】匿名函数
# 法1:定义并调用函数
def add(x, y) : # 两数相加
return x + y
print(add(10,20))
# 法2:Lambda 表达式是一个匿名函数,Lambda表达式基于数学中的λ演算得名,是一个匿名函数,即没有函数名的函数
sum1 = lambda x, y: x +y;
# 调用sum函数
print("Value of total : ", sum1(10, 20))