脚本编写
将学习:
- Python 安装和环境设置
- 运行和修改 Python 脚本
- 与用户输入交互
- 处理异常
- 读写文件
- 导入本地、标准和第三方模块
- 在解释器中进行实验
方法 1:安装 Anaconda
安装教程:https://www.zhihu.com/question/58033789
方法2:安装python
1.创建工作目录:多级
import os
#创建多级目录
os.makedirs('D:\\培训课程\\python\\ke')
#import os
#获取当前工作目录
>>>os.getcwd()
#更改当前工作目录
>>>os.chdir('D:\\培训课程\\python\\ke')
>>>os.getcwd()
改变或者获取工作目录
有时候执行文件需要在适当的目录下运行,这时候就需要改变或者获取工作目录了。
import os
os.chdir("/home/xx/projects/LSTM_Qi_v27/py") #修改当前工作目录
os.getcwd() #获取当前工作目录
写一个完成以下操作的脚本:
- 请求用户输入三次。一次是名字列表,一次是未交作业数量列表,一次是分数列表。使用该输入创建
names
、assignments
和grades
列表。 - 使用循环为每个学生输出一条信息并包含正确的值。潜在分数是 2 乘以未交作业数加上当前分数。
下面是在终端内成功运行该脚本的示例。
names = input("Enter names separated by commas: ").title().split(",")
assignments = input("Enter assignment counts separated by commas: ").split(",")
grades = input("Enter grades separated by commas: ").split(",")
message = "Hi {},\n\nThis is a reminder that you have {} assignments left to \
submit before you can graduate. You're current grade is {} and can increase \
to {} if you submit all assignments before the due date.\n\n"
for name, assignment, grade in zip(names, assignments, grades):
print(message.format(name, assignment, grade, int(grade) + int(assignment)*2))
在脚本中接受原始输入
我们可以使用内置函数 input
获取用户的原始输入,该函数接受一个可选字符串参数,用于指定在要求用户输入时向用户显示的消息。
name = input("Enter your name: ")
print("Hello there, {}!".format(name.title()))
这段代码提示用户输入姓名,然后在问候语中使用该输入。input
函数获取用户输入的任何内容并将其存储为字符串。如果你想将输入解析为字符串之外的其他类型,例如整数(如以下示例所示),需要用新的类型封装结果并从字符串转换为该类型。
num = int(input("Enter an integer"))
print("hello" * num)
我们还可以使用内置函数 eval
将用户输入解析为 Python 表达式。该函数会将字符串评估为一行 Python 代码。
result = eval(input("Enter an expression: "))
print(result)
如果用户输入 2 * 3
,输出为 6
。
错误、异常
Try 语句
我们可以使用 try 语句处理异常。你可以使用 4 个子句(除了视频中显示的子句之外还有一个子句)。
try
:这是try
语句中的唯一必需子句。该块中的代码是 Python 在try
语句中首先运行的代码。except
:如果 Python 在运行try
块时遇到异常,它将跳到处理该异常的except
块。else
:如果 Python 在运行try
块时没有遇到异常,它将在运行try
块后运行该块中的代码。finally
:在 Python 离开此try
语句之前,在任何情形下它都将运行此finally
块中的代码,即使要结束程序,例如:如果 Python 在运行except
或else
块中的代码时遇到错误,在停止程序之前,依然会执行此finally
块。
指定异常
我们实际上可以指定要在 except
块中处理哪个错误,如下所示:
try:
# some code
except ValueError:
# some code
现在它会捕获 ValueError 异常,但是不会捕获其他异常。如果我们希望该处理程序处理多种异常,我们可以在 except
后面添加异常元组。
try:
# some code
except (ValueError, KeyboardInterrupt):
# some code
或者,如果我们希望根据异常执行不同的代码块,可以添加多个