[oeasy]python040_缩进几个字符好_输出所有键盘字符_循环遍历_indent

040_缩进几个字符好_输出所有键盘字符_indent

缩进几个字符好?

  • 上次 研究了range函数

    • 根据range函数的结果
    • 生成了for循环
  • 可以输出

    • 从start
    • 到end - 1
    • 所有的数字
  • 想要 循环输出

    • 必须得缩进吗?
复制代码
for num in range(ord('A'), ord('Z')+1):
    print(num,chr(num))
  • 不缩进会如何呢?🤔

编写程序

复制代码
vi indent.py
  • 我要看看所有的字符

    • range(0, 123)
    • 从 0 开始
    • 到 ord("z") 结束
复制代码
for num in range(0, 123):
    print(num)
  • 按"+P将代码粘贴
复制代码
:w|!python3 %
  • 保存并运行当前文件

再看代码

  • 第 1 行

    • 使用了for循环
    • 循环变量为num
    • 让 num 从 0 到 123
    • 挨个循环
复制代码
for num in range(0, 123):
    print(num)
  • 第 2 行

    • 是 第一句for循环的 循环体

      • 需要缩进到里面
      • 归for语句统领
    • 每次循环的过程中

      • 输出n这个数字
  • 第2行 非 缩进不可 吗?
  • 缩进 能怎么着??😠

缩进问题

  • 尝试把第二行的缩进去掉
复制代码
for num in range(0, 123):
print(num)
  • 运行结果
  • 程序出现了 IndentationError

    • 这是继 NameError、TypeError之后的
    • 又一种新的 Error类型

提问

  • 拿报错信息问问ai
  • 缩进必须得有!

  • 缩进说明

    • 本行是 for循环的 循环体
    • 归for语句管
  • 只 缩进个字符

    • 可以吗?🤔

缩进数量

  • 按i进入插入模式

    • 退格修改代码
    • 只 缩进个空格
复制代码
for num in range(0, 123):
 print(num)
  • 这个程序可以运行吗?🤔

运行

  • esc

    • 退出插入模式
  • :⬆️enter

    • 找到之前的底行命令
  • 可以运行

修改缩进数量

  • 按i进入插入模式

    • 缩进增加到 八个空格
复制代码
for num in range(0, 123):
        print(num)
  • 缩进一个和八个

    • 都可以正确运行
  • 缩进几个字符

    • 合适 呢?

问问ai

  • ai 说最好四个空格

    • 我想到了一个按键

移动位置

  • 先用u键

    • 把程序 恢复回来
  • 将 光标移动到 第二行第一个字符

    • 按i进入插入模式
  • 使用键盘中的Tab
  • 缩进刚好 4字符
  • 再按Tab

    • 又缩进4字符
  • Tab是什么意思呢?

TAB

  • TAB键来自于table

    • 意思是制表符
  • 具体写作\t

    • 来自table
  • 有文件明确要求

    • python 需要缩进 4个空格吗?

对齐

  • 明确要求

    • 4个字符进行缩进
    • 要保证对齐

书写风格

  • 我们按照这种书写风格

    • 写python
  • 四个字符

四个字符

  • 1个Tab

    • 对应 4个空格
    • 是 python缩进的 标准
  • Tab之后

    • 光标位于
    • 第2行,第5个字符
  • esc

    • 退出插入模式
    • 准备运行

运行结果

  • :w|!python3 %

    • 执行底行命令

      • 保存
      • 并 用python3 运行当前程序
  • 可以拖动侧面滚动条

    • 翻看输出结果
  • 从0到122都输出了一遍

    • 为什么range(0,123)
    • 只输出 到122 来着?

查询帮助

  • 从 底行命令模式

    • 直接!python3
    • 进入游乐场
  • 查询 range函数 的帮助

帮助内容

  • 起始位置 start

    • 默认值为 0
    • 可以省略
  • 结尾部分 stop

    • exclusive
    • 不包括
  • q

    • 退出帮助
  • quit()

    • 退出游乐场
  • Enter回车

    • 回到vim

修改代码

复制代码
for num in range(123):
    print(num)
  • 运行结果

    • 序号范围 已经ok
  • 可以把

    • 序号和对应字符
    • 都输出吗?

修改代码

复制代码
for num in range(123):
    print(num, chr(num),sep=":")
  • 运行结果
  • 大写和小写字母之间

    • 夹杂着 一些标点

编码规律

  • 键盘上能输入的字符

    • 除 大小写字母 之外
    • 还有 标点 和 数字
  • 这些字符应该

    • 有序号
    • ordinal

字符全排列

  • 统计数量

    • 大小写各26
    • 数字10
    • 各种符号 40个左右
  • 26 * 2 + 10 + 40

    • = 102
  • 找来找去也没有找到

    • 竖线符号(|)?

总结

  • 这次 输出了

    • 从0到122 序号 对应的所有字符
复制代码
for num in range(123):
    print(num, chr(num),sep=":")
  • 字符类型包括

    • 数字
    • 大小写字母
    • 符号
相关推荐
ZSYP-S29 分钟前
Day 15:Spring 框架基础
java·开发语言·数据结构·后端·spring
yuanbenshidiaos32 分钟前
c++------------------函数
开发语言·c++
程序员_三木44 分钟前
Three.js入门-Raycaster鼠标拾取详解与应用
开发语言·javascript·计算机外设·webgl·three.js
是小崔啊1 小时前
开源轮子 - EasyExcel01(核心api)
java·开发语言·开源·excel·阿里巴巴
tianmu_sama1 小时前
[Effective C++]条款38-39 复合和private继承
开发语言·c++
黄公子学安全1 小时前
Java的基础概念(一)
java·开发语言·python
liwulin05061 小时前
【JAVA】Tesseract-OCR截图屏幕指定区域识别0.4.2
java·开发语言·ocr
jackiendsc1 小时前
Java的垃圾回收机制介绍、工作原理、算法及分析调优
java·开发语言·算法
Oneforlove_twoforjob1 小时前
【Java基础面试题027】Java的StringBuilder是怎么实现的?
java·开发语言
羚羊角uou1 小时前
【C++】优先级队列以及仿函数
开发语言·c++