零、HelloWorld
1、输入下文内容:
print("Hello World")
上文中的print(),是python内置的打印函数,在这里是指向屏幕上输出指定的文字。可以打印一个或多个字符,或者设置以某个字符作为多个值之间的分隔符号。
2、在第一行输入上述内容后运行文件
(运行文件和运行代码并不一致,但目前入门阶段我们暂不进行详细区分),运行方法有很多种,举例如下,后续所有位置不再强调文件的运行
| 方法1 | 同时按下【ctrl】+【enter】 |
|---|---|
| 方法2 | 按下F5(由于不同人电脑上F区对应的功能开关状态不一致,有的电脑可能需要同时按下【Fn】+【F5】而不是单击F5) |
| 方法3 | 点击下图按钮![]() |
一、从会计恒等式开始
让我们从会计恒等式开始python的学习。
# 下面我们来计算一个资产=负债+权益# 1、先定义负债和权益各自的变量并赋值debt = 700equity = 300asset = debt + equityprint(asset)
按上文输入完成并运行后理论上会出现下图结果:下图右下角的绿框内,电脑输出了1000。即我们计算出了“资产=负债+所有者权益”
二、上文中出现的基础概念详解
1、注释
# 单行注释# 就像这样了# 以#开头,#右边的所有东西当做说明,而不是真正要执行的程序,起辅助说明作用"""多行注释可以这样写其实就是字符串, 只是没有进行操作"""
2、行和缩进
学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。
python 最具特色的就是用缩进来写模块。缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 ,但一旦确定缩进的写法,请在所有口径保持一致 切记不能混用!!!
建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 ,但一旦确定缩进的写法,请在所有口径保持一致 切记不能混用!!!
建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 ,但一旦确定缩进的写法,请在所有口径保持一致 切记不能混用!!!
3、多行语句
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现手动换行,例如:
char01 = '我是'char02 = '天健会计师事务所'char03 = 'XX分所'char04 = '的小明'total_char = char01 + \char02 + \char03 + \char04print(total_char)
4、字符串
- Python 中单引号 ‘ 和双引号 “ 使用完全相同。
- 使用三引号(‘’’ 或 “””)可以指定一个多行字符串。
- 转义符 \。
- 反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。 如 r”this is a line with \n” 则 \n 会显示,并不是换行。
- 按字面意义级联字符串,如 “this “ “is “ “string” 会被自动转换为 this is string。
- 字符串可以用 + 运算符连接在一起,用 * 运算符重复。
- Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
- Python 中的字符串不能改变。
- Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
5、空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,代码缩进是语法的一部分,是行程代码块的基础,但空行并不是 Python 语法的一部分。书写时不插入空行,Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。3、代码块
- Python 利用缩进来划分代码块。
- 这种语法形式的优点是看起来整洁,美观,没有大量的括号,更便于阅读,看起来更像人类的自然语言。
- 可以强迫你写出格式化的代码,通常我们使用Tab键或者四个空格来完成缩进。
- 坏处是复制粘贴之后,代码的缩进会不一样,这时候必须手动重新调整。
a = 100if a >=0:print(a)else:print(-a)
3、输入和输出
**input()**方法用于获取键盘输入的内容: ```python print(“请输入负债金额”) debt = input() print(“您输入的负债金额为:” + debt)
`**print()**`方法用于打印输出,是最常见的一个函数。```pythonprint(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)"""sep参数代表分隔符,它与print()函数一起使用以指定参数之间的分隔符。The default value is space i.e. if we don't use sep parameter – then the value of the arguments is separated by the space. With the "sep", we can use any character, an integer or a string.默认值为空格,即,如果我们不使用sep参数 ,则参数的值由空格分隔。 使用“ sep” ,我们可以使用任何字符,整数或字符串。"""
当然对我们而言上面的语法还有些复杂,暂时忽略,使用最简单的print()即可。
(1)print()的用法详解
1)打印分隔符
print("这是第1行")print("\n") # 这里是用换行符分割出来的第2行print("这是第3行")
2)打印N个相同值
print("-"*50)
3)不区分单引号与双引号,但在有多重引号时要注意交叉使用避免冲突
print('╔'+"═"*57)print('║ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ║')print('║ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ║')print('║ │春│滟│江│空│江│江│人│不│白│谁│可│玉│此│鸿│昨│江│斜│不│ ║')print('║ │江│滟│流│里│天│畔│生│知│云│家│怜│户│时│雁│夜│水│月│知│ ║')print('║ │潮│随│宛│流│一│何│代│江│一│今│楼│帘│相│长│闲│流│沉│乘│ ║')print('║ │水│波│转│霜│色│人│代│月│片│夜│上│中│望│飞│潭│春│沉│月│ ║')print('║ │连│千│绕│不│无│初│无│待│去│扁│月│卷│不│光│梦│去│藏│几│ ║')print('║春│海│万│芳│觉│纤│见│穷│何│悠│舟│徘│不│相│不│落│欲│海│人│ ║')print('║江│平│里│甸│飞│尘│月│已│人│悠│子│徊│去│闻│度│花│尽│雾│归│ ║')print('║花│,│,│,│,│,│,│,│,│,│,│,│,│,│,│,│,│,│,│ ║')print('║月│海│何│月│汀│皎│江│江│但│青│何│应│捣│愿│鱼│可│江│碣│落│ ║')print('║夜│上│处│照│上│皎│月│月│见│枫│处│照│衣│逐│龙│怜│潭│石│月│ ║')print('║ │明│春│花│白│空│何│年│长│浦│相│离│砧│月│潜│春│落│潇│摇│ ║')print('║ │月│江│林│沙│中│年│年│江│上│思│人│上│华│跃│半│月│湘│情│ ║')print('║ │共│无│皆│看│孤│初│望│送│不│明│妆│拂│流│水│不│复│无│满│ ║')print('║ │潮│月│似│不│月│照│相│流│胜│月│镜│还│照│成│还│西│限│江│ ║')print('║ │生│明│霰│见│轮│人│似│水│愁│楼│台│来│君│文│家│斜│路│树│ ║')print('║ │。│。│。│。│。│?│。│。│。│?│。│。│。│。│。│。│。│。│ ║')print('║ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ║')print('║ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ║')print('╔'+"═"*57)
4)辟邪图与python之禅
print(" _ooOoo_ ")print(" o8888888o ")print(" 88 . 88 ")print(" (| -_- |) ")print(" O\\ = /O ")print(" ____/`---'\\____ ")print(" . ' \\| |// `. ")print(" / \\||| : |||// \\ ")print(" / _||||| -:- |||||- \\ ")print(" | | \\\\\\ - /// | | ")print(" | \\_| ''\\---/'' | | ")print(" \\ .-\\__ `-` ___/-. / ")print(" ___`. .' /--.--\\ `. . __ ")print(" ."" '< `.___\\_<|>_/___.' >'"". ")print(" | | : `- \\`.;`\\ _ /`;.`/ - ` : | | ")print(" \\ \\ `-. \\_ __\\ /__ _/ .-` / / ")print(" ======`-.____`-.___\\_____/___.-`____.-'====== ")print(" `=---=' ")print(" ")print(" ............................................. ")print(" 佛祖镇楼 BUG辟邪 ")print(" Zen of python: ")print(" Beautiful is better than ugly.; ")print(" Explicit is better than implicit. ")print(" Simple is better than complex. ")print(" Complex is better than complicated. ")print(" Flat is better than nested. ")print(" Sparse is better than dense. ")print(" Readability counts. ")print(" Now is better than never. ")
4、变量与变量赋值
(1)变量与变量赋值的概念
我们在上文举例中的有一个一般称为定义的动作即debt = 700,这里的debt我们称为变量,这里的debt = 700我们成为变量赋值。
变量是什么?变量只是一个对在内存中储存的某一地址的指引。——当然用我们审计行业人员可以理解的方式解释是:变量类似于名字标签“贴”在值上面,通过名字找到它代表的值。
| 定义一个变量a = 1 | ![]() |
|---|---|
| 给变量重新赋值2 | ![]() |
| 把变量a赋值给另外一个变量b, b = a | ![]() |
小结:
- python是动态数据类型——这一条以后再解释
- python中的变量不需要声明类型, 直接赋值就可以使用——这一条以后再解释
- 变量在使用之前必须进行赋值——以后错得多了就记住了
- Python会根据你赋给的值自动判断变量的数据类型
- 其实变量并没有什么类型
- 变量只是指向了一个内存地址, 内存地址中储存了我们的数据, 这个数据是具有数据类型的
- 变量可以重复赋值, 后面的值会覆盖前边的值
- 改变变量的值, 其实就是改变了变量指向的内存地址!
(2)变量的命名规则
- Python区分大小写。
- 变量名的长度不受限制,但其中的字符必须是字母、数字、或者下划线_,而不能使用空格、连字符、标点符号、引号或其他字符。
- 变量名的第一个字符不能是数字,而必须是字母或下划线。
- 不能将Python关键字用作变量名——简单理解为【关键字被Python环境自己占了,别人不许用】,关键字涉及十几个单词,详细列示如下:
上述第4点提到的关键字,用下述方法检查:
import keywordprint(keyword.kwlist)"""举例:在Python3.9.7版本中的关键字列示如下['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', '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']"""
三、代码规范

如上图举例,右侧代码明显比左侧代码更加规整、直观、便于维护,这是因为右侧代码遵循了某种通用的代码规范,Python采用PEP 8 (Python Enhancement Proposal(Python 增强建议书))作为编码规范。
PEP8 的官方标准见:https://peps.python.org/pep-0008/
代码规范的主要方面包括:




