编写 py 文件

回忆上次内容

次在解释器里玩耍

  • 了解到字符串就是给一堆字符两边加引号

    • 可以是单引号
    • 也可以是双引号
    • 这样游乐场就知道

      • 这个不是一个名字
      • 而是一个字符串
  • 字符串可以用print函数进行输出

    • 但是print千万不要打错
    • 就连大小写都不能错

编辑

  • 我们在游乐场玩了这么久

    • 能否写一个真正的python文件啊?

编辑 py 文件

  • 我想要编辑一个完整的 python
  • 文件保存好之后再执行
  • 那就要先退出解释器
#退出解释器
quit()
  • 回到 shell 环境

编辑

新建 py 文件

  • 退出 python3 的 游乐场 环境
  • 回到 shell 之后

编辑

  • vi 新建一个叫 oeasy.py 的文件

    • vi 是编辑神器

      • 是我们主要的编辑工具
      • 也是我们的练武场

编辑

命令分析

#用vi打开并编辑oeasy.py
vi oeasy.py
  • vi 的目标是 oeasy.py

    • vi 来编辑 oeasy.py
  • oeasy.py

    • oeasy 是文件名
    • 后面的扩展名 py 代表 python
    • 扩展名可以让用户知道
    • 这个文件可以用python3执行

编辑

  • vioeasy.py 之间有个空格

    • 表示用 vi 这个命令打开 oeasy.py

进入 vi

  • 然后进入了 vi 的界面了

    • 左下角如下图

编辑

  • 注意写的是 "oeasy.py" [新文件]

    • 特别要时刻注意终端左下角这个位置
    • 就像小地图一样重要

编辑 py 文件

  • 按 i 键进入编辑模式

    • 再观察左下角
    • 如下图所示
    • 变成显示 --插入(粘贴)--
  • 可以进行插入文字了

    • 在上面输入 print("oeasy")

编辑

  • 时刻注意左下角

    • vi始终处于插入状态

回到正常模式

  • 输入 print("hello") 之后

    • 按 esc 键回到正常模式
    • 再观察左下角
    • --插入(粘贴)-- 不显示了
  • 如下图

编辑

  • oeasy.py 后面有个[+]
  • [+]意味着没保存
  • 那怎么保存呢?

进入底行命令模式

  • 按 : 键进入命令行模式

    • 注意用的是左手小指和右手小指配合

      • 左手小指shift
      • 右手小指;
  • 按下就从正常模式切换到了命令行模式

    • 再观察左下角

编辑

  • 出现:
  • 可执行命令了
  • 具体执行什么命令呢?

保存文件

  • 执行的是写命令
  • 输入w

    • w的意思是write写文件
    • 就是保存

编辑

  • 然后回车确认

回车确认

  • 然后按 回车 键

    • 执行:w
    • oeasy.py后面的[+]消失

编辑

  • 这个新文件已经存储了

    • 总共1行,15个字符
  • 我可以运行这个程序么?

    • 得要先回到zsh环境

运行程序

  • 按下 : 键

    • 再次进入底行命令模式
  • 输入q

    • q的意思是
    • quit
    • 退出 vi

编辑

  • 回车之后退出vi
  • 这样就回到了shell

vim教程的推荐

  • 如果想要对于 vim 深入了解

  • 现在我们还是继续玩python

    • 和vim相关内容在python这边也会详细说明

编辑

  • 编写好了python文件我们可以查看么?

查看 py 文件

  • cat oeasy.py

    • cat 对应着 concatenate

      • 本意是连接字符串
      • 这里用于输出文本内容
      • oeasy.py 指的是要被输出的文件

编辑

  • 这样就可以查看已经编写的 oeasy.py 的内容

    • oeasy.py 是编写好的 python 程序
    • 虽然 oeasy.py 只有一句
    • 但也是一个程序
  • vi oeasy.py

    • 用vi编辑了oeasy.py
  • cat oeasy.py

    • 用cat查看了oeasy.py
  • 前面都是命令

    • 后面参数都是目标文件
  • 用什么来运行oeasy.py呢?
  • 真的可以运行么?
  • 等待见证奇迹的时刻!!!

运行 py 文件

  • python3 oeasy.py

    • 运行 python3 程序
    • python3 既是我们的游乐场
    • 也是解释执行 py文件 的程序
  • oeasy.pypython3 的参数

    • 意思是用 python3 来执行 oeasy.py

编辑

  • 真的成功了!!!
  • 可以截图记录下这伟大的一天!!!

编辑

  • 恭喜你的最初用的

    • linux系统
    • vim编辑器
  • 都是非常经典的

优秀的起点

  • 若干年后

    • 当已经成为编程大师的你

编辑

  • 翻看自己当年发的状态

    • 第一个程序就是在linux上用vim编写的python!

编程的快乐

  • 只要你正确地书写了程序

    • 百分之百可以得到正确结果
    • 这就是千真万确的编程
    • 这就是扎扎实实代码
    • 这就是百分之一千的快乐

编辑

  • 然而我们是有可能犯错的

    • 比如大小写的细节
    • 如果要把 print 故意写错

      • 写成pront会如何?
      • 就像游乐场里那样

运行错误程序

  • 先vi oeasy.py开始编辑
  • 进入程序之后

    • 用i进入插入模式
    • 用方向键进行移动
    • oeasy.py修改成下图的样子

编辑

  • :w

    • 保存
  • :q

    • 退出
  • 在shell中运行 python3 oeasy.py

运行结果

  • 不出所料

编辑

  • 程序出错了

    • 运行不出来了
    • 这确实会让我们感觉到痛苦
    • 但痛苦让我们感觉到自己是存在的

编辑

  • 这个结果和游乐场一样吗?

结果对比

  • 按↑可以重复上一条命令
  • 和游乐场一样

    • 还是NameError
    • 不认识pront这个name
    • 说明python程序和python游乐场是相通的
    • 本来就是一个程序
  • 不过还是有一点小区别的

编辑

  • 游乐场中的程序来自标准(standard)输入(in)流
  • oeasy.py的程序来自oeasy.py这个文件
  • 如果单词是print

    • 但是大小写不同可以么?

大写 Print

  • 函数首字母大写 会如何?

    • vi oeasy.py
    • print 改成 Print

编辑

  • :wq

    • w保存
    • q退出
    • 两个命令一起做
    • 一次完成
  • python3 oeasy.py

编辑

  • python 还是那样固执

    • 大写就是大写
    • 小写就是小写
    • 一点错误都不能有

挑剔

  • 这种特性叫做

    • 大小写敏感的 (case-sensitive)
  • shell中的命令也是大小写敏感吗?

编辑

  • shell也是非常挑剔、吹毛求疵的

    • 一点错误都不能有
  • 可以发现 python 文件中的代码是大小写敏感的

    • 而且系统命令的执行也是大小写敏感的
    • 大写 PYTHON 系统就不认
  • 总之都是大小写敏感的 (case-sensitive)

    • 我们都改好
  • 再运行

成功!!!

  • 不出意料地成功了

编辑

  • 虽然仿佛一切回到了原点
  • 当你把所有错误都根据提示修改好后
  • 程序能够按照你的设想运行起来的时候
  • 你能否感到那种百分之百的确定感、幸福感

编辑

  • 以及战胜错误之后获得的百分之一万的快乐

    • 哈哈<h1 style="font-size:200px"></h1>
  • 编程语言很多
  • 我们为什么选python作为初练呢?

与其他语言比较

编辑

  • python 确实写起来比较简洁

    • 简洁胜于复杂
    • Simple is better than complex
  • 我认为今天入门编程最好的语言就是python

编辑

  • 恭喜您凑齐三大顶级法宝

    • linux 系统
    • vim 编辑器
    • python 语言
  • 我觉得这个套装非常经典!

总结

  • 我们编写了python文件

    • vi oeasy.py
    • cat oeasy.py
    • python3 oeasy.py
    • 操作的都是oeasy.py
  • python文件里面的程序和游乐场差不多

    • 都是认死理儿的
    • 程序员也多多少少沾染这种气息

      • 一就是一
      • 二就是二
      • 斩钉截铁
    • 不过还是很可爱的

      • 要关心身边的程序员啊
  • 可以让我们的程序更复杂一点吗?
  • 我们下次再说!

蓝桥云课:oeasy 教您玩转 python_Python - 蓝桥云课

github:https://github.com/overmind1980/oeasy-python-tutorial

gitee:oeasy教您玩转python教程: 面向零基础初学者的简明易懂的 Python3 入门课程,对没有编程经验的同学也非常友好。在vim下从浅入深,逐步学习。从基础入门学习到爬虫。 作者:oeasy

[oeasy]教您玩转python - 0003 - 编写 py 文件的更多相关文章

  1. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  2. 转载:【学习之家】Python中__init__.py文件的作用

    Python中__init__.py文件的作用详解 Python中__init__.py文件的作用详解 来源:学习之家 作者:xuexi110 人气:357 发布时间:2016-09-29 摘要:__ ...

  3. python如何编译py文件生成pyc、pyo、pyd以及如何和C语言结合使用

    python执行py文件的流程 当我们执行一个py文件的时候,直接python xx.py即可,那么这个流程是怎么样的呢.先说明一下,python执行代码实际上是先打开文件然后执行里面的代码,所以文件 ...

  4. python中__init__.py文件的作用

    问题 在执行models.py时,报ImportError:No module named transwarp.db的错误,但明明transwarp下就有db.py文件,路径也没有错误.真是想不通.后 ...

  5. Python中__init__.py文件的作用详解

    转自http://www.jb51.net/article/92863.htm Python中__init__.py文件的作用详解 http://www.jb51.net/article/86580. ...

  6. python进阶之py文件内置属性

    前言 对于任何一个python文件来说,当python解释器运行一个py文件,会自动将一些内容加载到内置的属性中:一个模块我们可以看做是一个比类更大的对象. 查看模块的内置属性 我们先创建一个典型的p ...

  7. python批量运行py文件

    import os path="E:\\python" #批量的py文件路径 for root,dirs,files in os.walk(path): #进入文件夹目录 for ...

  8. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  9. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  10. python使用外部PY文件的变量

    在用python和selenium编写登录等脚本时,一直都是给用户名和密码直接赋值.但是考虑到这样不便于管理,而且可能多个地方用到同一个变量,所以想把变量放在一个单独的文件中进行管理. 以登录脚本为例 ...

随机推荐

  1. springboot 整合 recketMQ 详细步骤

    前提 RocketMQ的部署环境可用 1 依赖包 <dependency> <groupId>org.apache.rocketmq</groupId> <a ...

  2. 七年之痒!一个 PHP 程序员职业生涯的自述

    大家好,我是码农先森. 今年刚好是我毕业的第七个年头,在婚姻感情当中都有一种「七年之痒」的说法,这次我把这个词「七年之痒」用一次在我的职业生涯复盘上.七年前我从告别校园,踏入互联网编程行业,七年后我依 ...

  3. 深入理解 Swoole 的底层加载原理

    首发原文链接:深入理解 Swoole 的底层加载原理 PHP 扩展加载 我们从 php-src/sapi/cli/php_cli.c:1159 文件的入口函数 int main(int argc, c ...

  4. navicat premium 15 下载和激活

    Navicat Premium 15 下载地址 链接:https://pan.baidu.com/s/1bL-M3-hkEa4M-547giVjYQ?pwd=1107 推荐安装参考地址:https:/ ...

  5. 神经网络常见参数解释:epoch、batch、batch size、step、iteration

      本文介绍在机器学习.深度学习的神经网络模型中,epoch.batch.batch size.step与iteration等名词的具体含义.   epoch:表示将训练数据集中的所有样本都过一遍(且 ...

  6. Anaconda安装Python的seaborn库

      本文介绍在Anaconda的环境中,安装Python语言中,常用的一个绘图库seaborn模块的方法.   seaborn模块是基于Matplotlib的数据可视化库,它提供了一种更简单.更漂亮的 ...

  7. 震惊!docker镜像还有这些知识,你都知道吗?----镜像(一)

    镜像操作命令表格 docker image 子命令 docker子命令 功能 docker image build docker build 从Dockerfile开始构建镜像 docker imag ...

  8. C语言打印数字前补0

    1.要求说明 例如有个数据为a = 0x10,要求打印输出为0x000010. 2.实现 1 #include <stdio.h> 2 3 4 int main() 5 { 6 int a ...

  9. proteus 器件名称被软件篡改bug的解决方案

    proteus v7.8 器件名称被软件篡改bug 的解决方案 BUG描述 在做单片机实验时,发现从某一个时间保存的设计图文件开始,在添加新的电子元件时会出现部分旧元件的名称被捆绑替换为新元件的名称, ...

  10. 在AngularJS中,控制器没有生命周期方法

    在AngularJS中,控制器没有生命周期方法,但是$scope对象有一些事件,可以模拟生命周期方法的行为.例如,$scope.$on('$destroy', function() {...})可以在 ...