python规范
- 函数必须写注释:文档注释格式
'''注释内容'''
- 参数中的等号两边不要用空格
- 相邻函数用两个空行隔开
- 小写 + 下划线
- 函数名
- 模块名
- 实例名
- 驼峰法
- 类名
tips
# 一行代码太长,使用\折行
if xx and xxx and \
xxx and xxx
# 获取对象内存
import sys
sys.getsizeof(f)
变量和数据类型
字符串
结构化类型,有一系列的属性和类型
库函数
# 不会影响原来的变量,需要改变则需用变量接受返回值
string.title() # 首字母大写,其余小写
string.upper() # 全大写
string.lower() # 全小写
string.rstrip() # 仅删除末尾空格
string = string.rstrip()
string.lstrip() # 仅删除开头空格
string.strip() # 删除首尾空格,中间的不删
string.split(' ', num) # 以空格为分隔符,分隔num+1个,默认分隔所有
相关语法
# 字符串拼接
string = str1 + "hello"
# r-string 非转义
print(r'\t') # output:\t
格式化
# % 格式化
'i am %s, and he is %s' % (my_name, his_name)
# format + 占位符 格式化
'i am {0}, and he is {1}'.format(my_name, his_name)
# 抑或
'i am {my_name}, and he is {his_name}'.format(my_name='li', his_name='wang')
# 也可混用
'i am {}, and he is{his_name}, we like to {}'.format(my_name, work, his_name='li')
# f-string
f'i am {my_name}, and he is {his_name}'
数字
标量类型,此对象无可访问的内部对象
# +-*/ <-> 加减乘除
# ** <-> 乘方
python
中,整型相除默认是浮点型
基础语法
if 语句
# 检查特定值
arr = ['a', 'b', 'c']
if 'dd' not in arr:
print('no')
# if - elif - else
age = 40
if age < 12:
print("you are baby")
elif age < 18:
print("you are young")
else:
print("you are adult")
建议:使用elif代替else
循环结构
for - in
range(101)
:可以用来产生0到100范围的整数,需要注意的是取不到101。range(1, 101)
:可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。range(1, 101, 2)
:可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。range(100, 0, -2)
:可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。
while
num = 1;
while num <= 5:
print(num)
num += 1
# 字符串while交互
prompt = '\nTell me someting, and I will repeat it back to you:'
prompt += "\nEnter 'quit' to end the program:"
message = ""
while message != 'quit':
message = input(prompt)
if message != 'quit':
print(message)
input - 输入
# input返回的结果是输入的内容,括号里的参数是字符串,可以显示在终端
age = input("请输入年龄:")
age = int(age)
print("你的年龄是:" + str(age))
print - 输出
# 占位符格式 %
a, b = 3, 4
print('a=%d, b=%d' % (a, b))
print('a=%d' % a) # 如果是一个参数,不需要括号
# 格式化输出
# %f 浮点,%s 字符串
print('%.1f华氏度 = %.1f摄氏度' % (a, b))
print(f'{f:.1f}华氏度 = {c:.1f}摄氏度') # 字符串前加f表示格式化字符串
# 输出字符串/数字
a, b = '5', '10'
print('{0} + {1} = {2}'.format(a, b, a+b))
print(f'{a} * {b} = {a * b}')
函数
函数名加括号就行执行,函数名不加括号就能传递
定义
# 如果不想在本文件导出时,执行本函数,则写成下面的形式
def main():
# Todo: Add your code here
pass
if __name__ == '__main__':
main()
# 如果代码在本文件中执行,则__name__的值为'__main__',否则为文件名
传递实参
# 位置实参:实参与形参位置需要对应
# 关键字实参
def func(par1, par2):
print(par1 + ' ' + par2)
func(par2 = 'name', par1 = 'my')
# 指定默认值
def func(par1, par2 = 'look'):
print(par1 + ' ' + par2)
func(par1 = 'let me') # 也可func('let me') 【仅限末尾的形参已有默认值】
# 切片可以创建列表副本
def function(cats[:]): # 则函数不会修改原来的cats列表
# 传递任意数量实参 - cat 变为元组,无论是一个参数,两个参数还是没有参数
def function(*cat):
print(cat)
function('a', 'aa', 'b')
# 创建一个传任意参数的字典
def build_profile(**info):
profile = {}
for key, val in info.items():
profile[key] = val
print(profile)
build_profile(name = 'liming', age = 24, edu = '兰大')
导入模块
# 导入module.py
import module
# 调用module中func函数
mode.func()
# 仅调入某函数
from module_name import function_name1, function_name2
# as 给函数指定别名
from module import old_name as new_name
# as 起模块起别名
import module as m
# 导入模块所有函数【不建议使用】
from module import * # 此时调用函数时无需使用句号表示法
python同名函数或变量会进行覆盖
异常
异常 - Error
try:
# 代码块
except errorType:
# 出现异常执行代码块
else:
# 未出现异常执