本文已参与「新人创作礼」活动,一起开启掘金创作之路。
🌴 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行
- 定义函数。代码第2~5行
- 定义变量或常量。代码第7~9行
- 输入:代码第7~8行
- 处理:代码第9行
- 输出:代码第10行
- 注释:代码第2行和程序代码中其他以#开头的部分
__name__:代码第6行
1.4.3 程序编码规范
🚀 标识符
在Python中,用来给类、对象、方法、变量、接口和自定义数据类型等命名的名称
Python标识符由数字、字母、汉字和下画线_组成。遵循如下规则:
- 标识符必须以字母、汉字或下画线开头
- 标识符不能使用空格或标点符号(如括号、引号、逗号等)
- 不能使用Python关键字作为标识符,如关键字if不能作为标识符
- 不建议使用模块名、类型名或函数名等作为标识,以免影响程序的正常运行
- 标识符对英文字母大小写是区分的
🚀 保留字
查看保留字
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))
🚀 语句块
缩进相同的一组语句构成一个语句块,又称为语句组。如
if、while、def和class这样的复合语句
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 | 八进制整数 | %% | 字符% |