程序的格式框架

代码高亮

编程的色彩辅助体系,不是语法要求。找出颜色相同的部分,并分类列举出来。

  1. #!/usr/bin/env python
  2. #encoding: utf-8
  3. #TempConvert.py
  4. TempStr = input("请输入带有符号的温度值: ")
  5. if TempStr[-1] in ['F', 'f']:
  6. C = (eval(TempStr[0:-1]) - 32) / 1.8
  7. print("转换后的温度是{:.2f}C".format(C))
  8. elif TempStr[-1] in ['C', 'c']:
  9. F = 1.8 * eval(TempStr[0:-1]) + 32
  10. print("转换后的温度是{:.2f}F".format(F))
  11. else:
  12. print("输入格式错误")

不同的编辑器有不同的代码高亮风格,也可以自定义个人喜爱的风格。
image.png

缩进

一行代码开始前的空白区域,表达程序的格式框架。

  • 严格明确:缩进是语法的一部分,缩进不正确程序运行错误
  • 所属关系:表达代码间包含和层次关系的唯一手段
  • 长度一致:程序内一致即可,一般用4个空格或1个TAB

注释

用于提高代码可读性的辅助性文字,不被执行。

单行注释

# 开头,其后内容为注释

  1. # 这里是单行注释

多行注释

''' 开头和结尾

  1. '''
  2. 这是多行注释第一行
  3. 这是多行注释第二行
  4. '''

命名与保留字

变量

程序中用于保存和表示数据的占位符号。

  • 变量采用标识符(名字)来表示,关联标识符的过程叫命名。
    • TempStr 是变量名字
    • 找找看还有哪些变量名?
    • 超市或者服装店中,商品的标签。标签找商品 vs. 商品找标签
  • 可以使用等号(=)向变量赋值或修改值,= 被称为赋值符号。
    1. TempStr = "82F" #向变量TempStr赋值"82F"

命名

关联标识符的过程。

  • 命名规则:大小写字母、数字、下划线和中文等字符及组合。如:
    • TempStr, Python_Great, 这是门Python好课
  • 注意事项:大小写敏感、首字符不能是数字、不与保留字相同
    • Python和python是不同变量
    • 123Python是不合法的

保留字

被编程语言内部定义并保留使用的标识符。

  • Python语言有33个保留字(也叫关键字)
    • if, elif, else, in
  • 保留字是编程语言的基本单词
    • 大小写敏感 if 是保留字,If 是变量 | and | as | assert | break | class | continue | | —- | —- | —- | —- | —- | —- | | def | del | elif | else | except | finally | | for | from | False | global | if | import | | in | is | lambda | nonlocal | not | None | | or | pass | raise | return | try | True | | while | with | yield | | | |

数据类型

10,011,101 该如何解释呢?

  • 这是一个二进制数字
    • 作为二进制数字,10,011,101 的值相当于十进制的 157
  • 或者十进制数字
    • 那么这个数字的转化为二进制是多少呢?
  • 这是一段文本
    • 作为一段文本,逗号是文本中的一部分,一共包含10个字符
  • 或者是用逗号(,)分隔的3个数字
    • 分别为:10 011 101

供计算机程序理解的数据形式

  • 程序设计语言不允许存在语法歧义,需要定义数据的形式
    • 必须给 10,011,101 关联一种计算机可以理解的形式
    • 商品中价格的标签,都会有一个货币单位,人民币/美元/英镑等
  • 程序设计语言通过一定方式向计算机表达数据的形式
    • "123"表示文本字符串123
    • 123则表示数字123

      字符串

      定义:由0个或多个字符组成的有序字符序列。
      10,011,101 如果为字符串,则表示为:"10,011,101"

有序字符序列

  • 字符串由一对单引号或一对双引号表示
    • “请输入带有符号的温度值: “
    • ‘C’
  • 字符串是字符的有序序列,可以对其中的字符进行索引

    • "请""请输入带有符号的温度值: " 的第0个字符
    • 为什么是第 0 个字符?
    • 公元一世纪是从哪一年开始,21世纪为什么不是从2100年开始?

      序号

      image.png

      索引

      使用 [ ] 获取字符串中一个或多个字符
  • 索引:返回字符串中单个字符,字符串[M]

    • "请输入带有符号的温度值:"[0] -> "请"
    • "请输入带有符号的温度值:"[-] -> ":"
    • TempStr[-1] -> ?
  • 切片:返回字符串中一段字符子串,字符串[M: N]

    • "请输入带有符号的温度值: "[1: 3] -> "输入"
    • TempStr[0: -1] -> ?

      整数

      定义:数学中的整数。32 或者 -89
      10,011,101 如果为整数,则表示为:10011101

      浮点数

      定义:数学中的实数,带有小数部分。1.8 或者 -1.8 或者 -1.0

      列表

      定义:由0个或多个数据组成的有序序列。
      10,011,101 如果为列表,则表示为:[10, 011, 101]
  • 列表使用 [ ] 表示,采用逗号(,)分隔各元素

    • ['F', 'f'] 表示两个元素 'F''f'
  • 使用保留字 in 判断一个元素是否在列表中
    • TempStr[-1] in ['C','c'] 判断前者是否与列表中某个元素相同

语句与函数

赋值语句

由赋值符号构成的一行代码。

  • 赋值语句用来给变量赋予新的数据值
    • C = (eval(TempStr[0:-1]) - 32) / 1.8 #右侧运算结果赋给变量C
  • 赋值语句右侧的数据类型同时作用于变量
    • TempStr = input("") #input()返回一个字符串,TempStr就是字符串

分支语句

由判断条件决定程序运行方向的语句。

  • 使用保留字 if elif else 构成条件判断的分支结构
    • if TempStr[-1] in ['F','f']: #如果条件为True则执行冒号后语句
  • 每个保留字所在行最后存在一个冒号(:),语法的一部分
    • 冒号及后续缩进用来表示后续语句与条件的所属关系

函数

根据输入参数产生不同输出的功能过程。

  • 类似数学中的函数,y = f(x)
    • print("输入格式错误") #打印输出 "输入格式错误"
  • 函数采用 函数名(参数) 方式使用
    • eval(TempStr[0:-1]) #TempStr[0:-1]是参数

Python程序的输入输出

input()

从控制台获得用户输入的函数。

  • input()函数的使用格式:
    • 变量 = input(提示信息字符串)
  • 用户输入的信息以字符串类型保存在 变量
    • TempStr = input("请输入:") # TempStr保存用户输入的信息

print()

以字符形式向控制台输出结果的函数。

  • print()函数的基本使用格式:
    • print(拟输出字符串)
    • print(字符串变量)
  • 字符串类型的一对引号仅在程序内部使用,输出无引号
    • print("输入格式错误") # 向控制台输出 输入格式错误

格式化

  • print("转换后的温度是{:.2f}C".format(C))
  • { }表示槽,后续变量填充到槽中
  • { :.2f }表示将变量 C 填充到这个位置时取小数点后2位
  • 如果C的值是 123.456789,则输出结果为:转换后的温度是123.45C
  • 那么 print("转换后的温度是{}C".format(C)) 会输出什么呢?

eval()

去掉参数最外侧引号并执行余下语句的函数。
eval()函数的基本使用格式:eval(字符串或字符串变量)

  1. >>> eval("1")
  2. 1
  3. >>> eval("1+2")
  4. 3
  5. >>> eval('"1+2"')
  6. '1+2'
  7. >>> eval('print("Hello")')
  8. Hello
  9. >>> TempStr = 12.3C
  10. >>> eval(TempStr[0:-1])
  11. 12.3

“温度转换”代码分析

  1. #!/usr/bin/env python
  2. #encoding: utf-8
  3. #TempConvert.py
  4. TempStr = input("请输入带有符号的温度值: ")
  5. if TempStr[-1] in ['F', 'f']:
  6. C = (eval(TempStr[0:-1]) - 32) / 1.8
  7. print("转换后的温度是{:.2f}C".format(C))
  8. elif TempStr[-1] in ['C', 'c']:
  9. F = 1.8 * eval(TempStr[0:-1]) + 32
  10. print("转换后的温度是{:.2f}F".format(F))
  11. else:
  12. print("输入格式错误")