Python学习笔记其二
写在最前
先看完教程链接,再看相关实例!
几个容易遇到的坑:
- 编程语言中的符号一定不要打成中文符号!!!经常容易打错的有:括号(),逗号,,引号""
- 中文乱码考虑一下有没有把编码形式改成utf-8
- 注意观察参数需不需要加引号,如open函数的encoding=“utf-8”就要加引号
- 有问题把报错和源码复制给Ai进行询问
输入与输出
Python两种输出值的方式: 表达式语句和 print() 函数。
第三种方式是使用文件对象的 write() 方法,标准输出文件可以用 sys.stdout 引用。
如果你希望输出的形式更加多样,可以使用 str.format() 函数来格式化输出值。
如果你希望将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现。
- str(): 函数返回一个用户易读的表达形式。
- repr(): 产生一个解释器易读的表达形式。
str.format占位符
name = "Bob"age = 20score = 88.456
print("姓名:{}, 年龄:{}, 成绩:{:.1f}".format(name, age, score))# 输出:姓名:Bob, 年龄:20, 成绩:88.5
print("姓名:{0}, 年龄:{1}, 成绩:{2:.2f}".format(name, age, score))# 输出:姓名:Bob, 年龄:20, 成绩:88.46print分开字符串与变量
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函数
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中写入内容") ##进行提示函数
name
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最难的内容,最抽象的内容,最绕的内容
模块
例如:
问题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()}") ##打印本书信息推导式
迭代器与生成器
with 关键字
错误和异常
标准库概览
实例
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!