跳到正文
TranquilYu's Blog
返回

Python学习笔记其二

约 5 分钟 · 594 字
笔记
文章目录17 节
  1. 写在最前
  2. 输入与输出
  3. str.format占位符
  4. print分开字符串与变量
  5. input输入
  6. open函数
  7. os模块
  8. 函数
  9. name
  10. 类
  11. 模块
  12. 推导式
  13. 迭代器与生成器
  14. with 关键字
  15. 错误和异常
  16. 标准库概览
  17. 实例
文章目录17 节

写在最前

先看完教程链接,再看相关实例!

几个容易遇到的坑:

输入与输出

Python3 输入和输出 | 菜鸟教程

Python两种输出值的方式: 表达式语句和 print() 函数。

第三种方式是使用文件对象的 write() 方法,标准输出文件可以用 sys.stdout 引用。

如果你希望输出的形式更加多样,可以使用 str.format() 函数来格式化输出值。

如果你希望将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现。

str.format占位符

name = "Bob"
age = 20
score = 88.456

print("姓名:{}, 年龄:{}, 成绩:{:.1f}".format(name, age, score))
# 输出:姓名:Bob, 年龄:20, 成绩:88.5

print("姓名:{0}, 年龄:{1}, 成绩:{2:.2f}".format(name, age, score))
# 输出:姓名:Bob, 年龄:20, 成绩:88.46

print分开字符串与变量

print(f"The value of test is: {test}")	##引号前加一“f”,在想要显示变量值的地方加一个大括号{},其中写入变量名

% 占位符

这是最早的字符串格式化方法。与C语言基本一致。常用的占位符包括:

%s:字符串

%d:整数

%f:浮点数

print("姓名:%s, 年龄:%d, 成绩:%.2f" % (name, age, score))

input输入

input("提示的文本")

一般直接赋给变量值

age = int(input("年龄"))		##由于年龄是个整型,这里使用int对其进行格式化

例子

name = input("姓名:")
age = int(input("年龄:"))
love_programming_language = input("喜欢的编程语言(以逗号分隔):")
age_after_3years = int(age + 3)

print("个人信息")
print(f"姓名:{name}")
print("年龄:%d", age)
print(f"喜欢的编程语言:{love_programming_language}")
print(f"三年后年龄:{age_after_3years}")

open函数

Python3 File 方法 | 菜鸟教程

os模块

Python3 OS 文件/目录方法 | 菜鸟教程

问题2:文件处理 编写一个程序,使用 os 模块和文件方法完成以下操作:1.创建一个名为”test files”的目录(如果不存在) 2.在该目录下创建一个文本文件”notes.txt 3.向文件中写入 3 行内容已创建目录: test files已向文件 notes.txt 写入内容 文件内容如下: 第1行: 这是第一行内容

第2行: Python文件操作练习

第3行: 使用os模块和文件方法

import os	##导入os模块

status1 = os.listdir()	##获取当前目录下文件,为下面看看有没有"test_files"做准备
if "test_files" in status1:	##判断"test_files"在不在当前工作目录下
    os.chdir("test_files")	##如果存在就切换工作目录到"test_files"中
else:
    os.mkdir("test_files")	##如果不存在就创建目录
    os.chdir("test_files")	##并进入"test_files"
status2 = os.listdir()	##获取"test_files"目录下文件,为下面看看有没有做准备
if "notes.txt" in status2:	##判断"notes.txt"在不在当前工作目录下
    os.remove("notes.txt")	##如果在就删除
with open("notes.txt", mode='x', encoding="utf-8") as f:	##创建并打开notes.txt,以写入方式打开(mode='x'),编解码方式为"utf-8"(使用utf-8以避免中文报错)
	f.write("这是第一行内容\nPython文件操作练习\n使用os模块和文件方法")	##写入内容至notes.txt
	f.flush()	##刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
	f.close()	##关闭文件。关闭后文件不能再进行读写操作。
print("已向文件notes.txt中写入内容")		##进行提示

函数

Python3 函数 | 菜鸟教程

name

Python name 与 main | 菜鸟教程

if __name__ == "__main__":
    main() 

命名为主函数。Python中,总是从主函数开始运行。

例如:

def greet():
    print("来自 example 模块的问候!")

if __name__ == "__main__":	##模块将从此处开始运行
    print("该脚本正在直接运行。")
    greet()
else:
    print("该脚本作为模块被导入。")

问题3:编写def函数

编写一个名为sum_and_average的函数

要求:函数接收一个包含数字的列表作为参数函数返回两个值:列表中所有数字的总和,以及这些数字的平均值

如果传入的列表为空,总和返回 0,平均值返回 0.0

编写代码测试这个函数,至少测试两种情况:包含数字的列表和空列表

例如:

def sum_and_average(list):	##定义sum_and_average(list)
    total = sum(list)	##求和
    count = len(list)	##统计传入列表中的值的数量
    average = total / count if count > 0 else 0	##判断,因为求平均要求分母不为零,有传入为空的要求,故进行判断,当传入为空时使average为0,传入不为空时用总和除以值的数量求平均
    print("求和:%d" %total)	##打印求和量,类型是整数
    print("平均:%.1f" %average)	##打印求平均量,类型是浮点型,保留小数点后一位
    return None	##返回None,此行代码可不写

if __name__ == "__main__":	##main
    before_list = input("输入一些数字,使用英文逗号间隔:")	##对传入数据在before_list变量中进行预存储,方便后续校验非空
    if not before_list:	##如果传入内容为空
        list = before_list	##则让list列表为空
    else:	##如果传入内容不为空
        list = [int(x) for x in before_list.split(',')]	##将输入before_list中值传入list中,英文逗号为分隔符
    sum_and_average(list)	##运行自定义函数

类

高难度内容,Python最难的内容,最抽象的内容,最绕的内容

Python3 面向对象 | 菜鸟教程

模块

Python3 模块 | 菜鸟教程

例如:

问题4:设计book类 设计一个Book类,要求如下 属性:书名(title)、作者(author)页数(pages) 方法:构造方法初始化所有属性 is_long()方法:如果页数超过 300 页,返回True,否则返回False

get_info()方法:返回包含书名、作者和页数的字符串,格式如”《Python 编程》- 张三 (280 页)”

最后创建 1个Book对象,分别调用上述方法并打印结果。

class Book:		##定义一个Book类
    def __init__(self,title,author,pages):  	##详情请见教程__init__类,必须要有self,否则无法传入主函数输入的变量值
        self.title = title
        self.author = author
        self.pages = pages
    def is_long(self):		##定义一个is_long函数
        if self.pages > 300:		##判断页数是否大于300
            return True		##如果大于300返回True
        else:
            return False		##如果小于300返回False

    def get_info(self):		##定义一个get_info函数
        info = f"{self.title} - {self.author} ({self.pages} 页)"		##配置一个info函数,方便后续显示
        return info		##返回info变量,方便后续调用


if __name__ == "__main__":		##主函数
    title = str(input("请输入书名(带书名号):"))		##获取书名
    author = str(input("请输入作者名:"))		##获取作者名
    pages = int(input("请输入页数:"))		##获取书页数
    x = Book(title,author,pages)		##将获取到的三个变量传入Book类对应的变量中
    print(f"是长书吗:{x.is_long()}")		##打印判断结果
    print(f"本书信息:{x.get_info()}")		##打印本书信息

推导式

Python 推导式 | 菜鸟教程

迭代器与生成器

Python3 迭代器与生成器 | 菜鸟教程

with 关键字

Python with 关键字 | 菜鸟教程

错误和异常

Python3 错误和异常 | 菜鸟教程

标准库概览

Python3 标准库概览 | 菜鸟教程

实例

Python3 实例 | 菜鸟教程


分享文章:

  1. Python学习笔记其三笔记 · PyTorch教程
  2. Python学习笔记其一笔记 · for与while的实战
  3. Python学习笔记其四笔记 · Pytorch教程
上一篇
将Windows中文用户主文件夹修改为英文
下一篇
Python学习笔记其一