Python随堂笔记 编码规范,input()、print()函数

431 阅读9分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

🌴 2022.3.5 下午

前言

🎬本文章是 【Python语言基础】 专栏的文章,主要是上课的随堂笔记与练习
🔗Python专栏 传送门
💻提示:本文的环境配置是Python3的开发环境。目录顺序以当堂内容(教材)为准,所以并非“1、2、3”
📽本节内容:编码规范,input()、print()函数

1.4 程序结构和编码规范

1.4.1 文件类型

在Python中,常用的文件类型有3种:源代码文件、字节代码文件、优化代码文件

🚀 源代码文件

  • 源代码文件
  • 扩展名为.py
  • 使用文本编辑器编辑

🚀 字节代码文件

  • 扩展名为.pyc
  • 由Python源代码文件编译而成的二进制文件
  • 由Python加速执行,速度快,能够隐藏源代码
  • 可以通过python.exe或脚本方式将Python源文件编译成Python字节代码文件

🚀 优化代码文件

  • 优化编译后的文件
  • 无法用文本编辑器进行编辑
  • 一般用于嵌入式系统

1.4.2 代码结构

import math               		
#定义函数
def func(x,y):
    z = math.sqrt(x ** 2 + y ** 2 )
    return z
if __name__ == "__main__":
	a = int(input("请输入一个整数:"))     	
	b = int(input("请输入一个整数:"))     	
	c = func(a,b)             		
print("c =",c)          

一个完整的Python程序一般包括如下部分:

  1. 导入模块。代码第1行
  2. 定义函数。代码第2~5行
  3. 定义变量或常量。代码第7~9行
  4. 输入:代码第7~8行
  5. 处理:代码第9行
  6. 输出:代码第10行
  7. 注释:代码第2行和程序代码中其他以#开头的部分
  8. __name__:代码第6行

1.4.3 程序编码规范

🚀 标识符

在Python中,用来给类、对象、方法、变量、接口和自定义数据类型等命名的名称

Python标识符由数字、字母、汉字和下画线_组成。遵循如下规则:

  1. 标识符必须以字母、汉字或下画线开头
  2. 标识符不能使用空格或标点符号(如括号、引号、逗号等)
  3. 不能使用Python关键字作为标识符,如关键字if不能作为标识符
  4. 不建议使用模块名、类型名或函数名等作为标识,以免影响程序的正常运行
  5. 标识符对英文字母大小写是区分的

🚀 保留字

查看保留字

import keyword
print("Python中的保留字:",keyword.kwlist)

输出

  • Python中的保留字:['False', 'None', 'True', 'and', 'as', 'assert', '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中的注释有单行注释多行注释批量注释单行注释: 将要注释的一行代码以#开头。 多行注释: 将要注释的多行代码以#开头,或将要注释的多行代码放在成对'''(3个单引号)和"""(3个双引号)之间

# 这是一个注释

"""
Author:张时贰
Date:2022年03月02
CSDN:张时贰
"""

'''
这是一个注释
'''

# import
# 程序主体

🚀 代码缩进

python采用严格的“缩进”来表明程序的格式框架,用来表示代码直接的包含和层次关系

  • 和其它程序设计语言(如 Java、C 语言)采用大括号“{}”分隔代码块不同,Python 采用代码缩进和冒号( : )来区分代码块之间的层次
  • 在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束
score = 88
if score >= 60:
    print("合格!")
else:
    print("不合格!")

🚀 多行书写一条语句

Python通常是一行书写一条语句。如果语句很长,也可以多行书写一条语句。可以使用反斜杠\来实现

\

a=5
b=6
# 两行书写一条
c=a+\
    b
print("c = ",c)

多行书写[]中的语句

list1 = [1, 2,         3,4,5]
print("list1:",list1)

🚀 一行书写多条语句

Python可以在一行中书写多条语句,语句之间使用分号;隔开

a = 1.2; b = 2.3; c = a + b         		
print("c =",c)

🚀 空行

  • 编码格式声明、模块导入、常量和全局变量声明、顶级定义和执行代码之间空两行
  • 顶级定义之间空两行,方法定义之间空一行
  • 在函数或方法内部,可以在必要的地方空一行以增强节奏感,但应避免连续空行

使用必要的空行可以增加代码的可读性,通常在顶级定义(如函数或类的定义)之间空两行,而方法定义之间空一行,另外在用于分隔某些功能的位置也可以空一行

import math

a = 2
b = 3
print("幂运算结果:",math.pow(2,3))

🚀 语句块

缩进相同的一组语句构成一个语句块,又称为语句组。如ifwhiledefclass这样的复合语句

if True:
    print("Hi!")
    print("Jack, Mary, ...")
    print("welcome!")

🚀 模块及模块对象导入

Python默认安装仅包含基本的核心模块,启动时只加载了基本模块。在Python中使用import导入模块或模块对象,有如下几种方式:

  • 导入整个模块。格式为:import 模块名 [as 别名]
  • 导入模块的单个对象。格式为:from 模块名 import 对象 [as 别名]
  • 导入模块的多个对象。格式为:from 模块名 import对象1,对象2, …
  • 导入模块的全部对象。格式为:from 模块名 import *

import 模块名

import math
math.log2(8)

from模块名 import对象 [as 别名]

import math as m
m.log2(8)

from模块名 import对象1,对象2, …

from math import fabs,sqrt
fabs(-100)
sqrt(9)

每个 import 语句只导入一个模块,尽量避免一次导入多个模块

# 推荐
import os
import sys

# 不推荐
import os,sys

🚀 字符编码及转换

在计算机中常见的几种字符编码如下:

ASCII: 占1个字节8位,采用二进制进行编码。例如,'A'的ASCII为65,'0'的ASCII为48

Unicode: 又称为万国码或统一码,占2个字节16位,包含了世界上大多数国家的字符编码。例如,汉字'严'的Unicode是十六进制数4E25

UTF-8: 变长编码方式,使用1~4个字节表示一个符号,根据不同的符号而改变字节长度。例如,汉字'严'的UTF-8是十六进制数E4B8A5

GBK: 专门用来解决中文编码,是在国家标准GB2312基础上扩容后兼容GB2312的标准,中英文都是双字节的

在Python 2.X中默认的字符编码为ASCII。如果要处理中文字符,则需要在源文件的开头添加"#-coding=UTF-8-"

Python 3.X默认的字符编码是Unicode编码,支持大多数不同国家的语言。因此,Python 3.X程序可以直接使用包括汉字的各种字符

如果需要对字符进行不同编码格式的转换,可以使用str.encode()函数和str.decode()函数

str_unicode = "工业"      	#Unicode格式.
print("str_unicode:",type(str_unicode),",",str_unicode)
str_utf8 = str_unicode.encode("utf8")    	
print("str_utf8:",type(str_utf8),",",str_utf8)
str_unicode = str_utf8.decode("utf8")     	
print("str_unicode:",type(str_unicode),",",str_unicode)
str_gbk = str_unicode.encode("gbk")       	
print("str_gbk:",type(str_gbk),",",str_gbk)
str_unicode = str_gbk.decode("gbk")       	
print("str_unicode:",type(str_unicode),",",str_unicode)

输出

  • str_unicode: <class 'str'> , 工业 str_utf8: <class 'bytes'> , b'\xe5\xb7\xa5\xe4\xb8\x9a' str_unicode: <class 'str'> , 工业 str_gbk: <class 'bytes'> , b'\xb9\xa4\xd2\xb5' str_unicode: <class 'str'> , 工业

1.5 输入、输出函数

🚀 input()函数

Python提供input()函数由标准输入读入一行文本,默认标准输入是键盘,其一般格式为:

变量 = input(['提示字符串'])

用户按Enter完成输入,在按Enter之前,所有内容作为输入字符串赋给变量

姓名 = input("请输入您的姓名: ")                
性别,职业 = input("请输入您的性别和职业: ").split()
print("您的姓名: %s, 性别: %s, 职业: %s."%( 姓名,性别,职业))

输出

  • 请输入您的姓名: 张时贰 请输入您的性别和职业: 男 学生 您的姓名: 张时贰, 性别: 男, 职业: 学生.
op1 = int(input("请输入一个数: "))  
op2 = int(input("请输入一个数: "))  
print("%d + %d = %d."%(op1,op2,op1 + op2))

输出

  • 请输入一个数: 1 请输入一个数: 2 1 + 2 = 3.

🚀 print()函数

🚁 使用print()函数输出

使用print()函数输出的一般格式为:

print(obj1,obj2,...,sep=' ',end='\n',file=sys.stdout)

obj1, obj2, …: 输出对象

sep: 分隔符,即参数obj1,obj2,...之间的分隔符,默认没有间隔

end: 终止符,默认为'\n'

file: 输出位置,即输出到文件还是命令行,默认为sys.stdout,即命令行(终端)

print()函数默认会换行

print(1)  #数值类型可以直接输出 
print("Hello World")  #字符串类型可以直接输出

a=1
b="Hello World"
print(a, b)  #可以一次输出多个对象,对象之间用逗号分隔
 
#如果直接输出字符串,而不是用对象表示的话,可以不使用逗号
print("Zhang""Shier")
print("Zhang","Shier")
 
print("www", "csdn", "net", sep=".")  # 设置间隔符

#修改end不换行
print("ZhangShier",end=' ')
print("ZhangShier",end=' ')

输出

  • 1 Hello World 1 Hello World ZhangShier Zhang Shier www.csdn.net ZhangShier ZhangShier
🚁 使用print()函数格式化输出

在C语言中,我们可以使用printf("%-.4f",a)之类的形式,实现数据的的格式化输出。和C语言的区别在于,Python中格式控制符和转换说明符用%分隔,C语言中用逗号

print()函数格式化输出的一般格式为:print("格式化字符串"%(变量、常量或表达式))

其中,格式化字符串中包含一个或多个格式指定格式参数,与后面括号中的变量、常量或表达式在个数和类型上一一对应。当有多个变量、常量或表达式时,中间用逗号隔开

a = 100
print("a = %d (十进制)."%a)                       

print("a = %o (八进制)."%a)

print("a = %x (十六进制)."%a)

f = 123.4567
print("f = %8.2f"%f)                                   

f =   123.46
print("f = %e"%f)                                       

print("字符串: %s"%"Tiger")
                                 
print("字符: %c"%"T")

print("她是航天员 %s,飞天年龄 %d 岁."%("刘洋",34))            

输出

  • a = 100 (十进制). a = 144 (八进制). a = 64 (十六进制). f = 123.46 f = 1.234600e+02 字符串: Tiger 字符: T 她是航天员 刘洋,飞天年龄 34 岁.
🚁 格式字符归纳
格式字符说明格式字符说明
%s字符串采用str()的显示%x十六进制整数
%r字符串(repr())的显示%e指数(基底写e)
%c单个字符%E指数(基底写E)
%b二进制整数%f,%F浮点数
%d十进制整数%g指数(e)或浮点数(根据显示长度)
%i十进制整数%G指数(E)或浮点数(根据显示长度)
%o八进制整数%%字符%