本文共包含9道Python编程题目,分别涉及整数序列求和、计算阶乘、绘制图形、字典操作、文件读取等方面。文章提供了每道题的具体代码实现,以及对其背后的实现原理进行了详细解释。
目录
1.整数序列求和:用户输入一正整数N,计算从1到N(包含1和N)相加之后的结果
7.ls=[2,5,7,1,6],请对列表按照升序和降序的方式进行排列,要求 使用python内置函数sort
8. 针对字典D={'张三':88,'李四':90,'王五':73,'赵六':82}写出一下操作
9.打开当前路径下“作业.txt”,分别打出文件中前30个字符和前3行内容
1.整数序列求和:用户输入一正整数N,计算从1到N(包含1和N)相加之后的结果
n = int(input("请输入一个正整数:")) # 获取用户输入
sum = 0 # 定义求和变量
for i in range(1, n+1): # 计算1到n的和,注意要包含n本身,所以这里需要n+1
sum += i
print("从1到{}的和为:{}".format(n, sum)) # 输出结果
用户输入一个正整数后,程序会根据用户输入的值计算出从1到该数的所有整数相加的和,并输出结果。
2.计算1+2!+3!+...+10!的结果
# 定义一个用于计算阶乘的函数
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)
# 计算从1到10的阶乘之和
sum = 0
for i in range(1, 11):
sum += factorial(i)
print("1+2!+3!+...+10!的结果为:{}".format(sum))
首先定义了一个函数factorial
,用于计算输入数的阶乘。然后使用for循环从1到10依次计算每个数字的阶乘,并将它们相加得出总和。最后输出结果即可。
注意,在此题中,第一项是1,第二项是2!(即2的阶乘),因此累加器sum
的初始值为0。
3.边长为200的正方形绘制
import turtle
# 创建画布和画笔
canvas = turtle.Screen()
pen = turtle.Turtle()
# 绘制正方形
pen.fd(200)
pen.left(90)
pen.fd(200)
pen.left(90)
pen.fd(200)
pen.left(90)
pen.fd(200)
# 关闭画布
canvas.bye()
首先导入turtle库,然后使用Screen()
函数创建一个画布对象,并使用Turtle()
函数创建一个画笔对象。接着,使用fd()
函数和left()
函数移动画笔,绘制边长为200的正方形。最后使用bye()
函数关闭画布即可。
运行程序后,程序将在画布上绘制出一个边长为200的正方形。
4.边长为100的六边形绘制
import turtle
# 创建画布和画笔
canvas = turtle.Screen()
pen = turtle.Turtle()
# 绘制六边形
for i in range(6):
pen.fd(100)
pen.left(60)
# 关闭画布
canvas.bye()
-
这道题目需要使用turtle库绘制一个边长为100的六边形,与绘制正方形的代码类似,只需要修改顶点个数和顶点角度即可。
5.绘制一条50像素的直线
import turtle
# 创建画布和画笔
canvas = turtle.Screen()
pen = turtle.Turtle()
# 绘制直线
pen.fd(50)
# 关闭画布
canvas.bye()
-
这道题目同样需要使用turtle库绘制,只需要使用fd()函数来绘制直线即可。
6.绘制一个半径为50像素的完整的圆
import turtle
# 创建画布和画笔
canvas = turtle.Screen()
pen = turtle.Turtle()
# 绘制圆形
pen.circle(50)
# 关闭画布
canvas.bye()
-
这道题目同样需要使用turtle库绘制,只需要使用circle()函数来绘制圆即可
7.ls=[2,5,7,1,6],请对列表按照升序和降序的方式进行排列,要求 使用python内置函数sort
ls = [2, 5, 7, 1, 6]
# 升序排列
ls.sort()
print("升序排列后的列表:", ls)
# 降序排列
ls.sort(reverse=True)
print("降序排列后的列表:", ls)
这道题目需要使用Python内置函数sort来按升序或降序对给定列表进行排序。可以使用sort()函数默认按升序排列,也可以加入参数reverse=True实现降序排列。
8. 针对字典D={'张三':88,'李四':90,'王五':73,'赵六':82}写出一下操作
(1) 向字典中添加键值对'钱七':90
(2) 修改'王五'对应值为93
(3) 删除'赵六'对应的键值对
针对字典D={'张三':88,'李四':90,'王五':73,'赵六':82},可以使用Python的字典方法来进行操作。
首先,向字典中添加键值对'钱七':90,可以使用字典的update()方法:
D = {'张三':88,'李四':90,'王五':73,'赵六':82}
D.update({'钱七':90})
print(D)
输出结果为:{'张三': 88, '李四': 90, '王五': 73, '赵六': 82, '钱七': 90}
其次,修改'王五'对应值为93,可以直接通过索引方式进行:
D['王五'] = 93
print(D)
输出结果为:{'张三': 88, '李四': 90, '王五': 93, '赵六': 82, '钱七': 90}
最后,删除'赵六'对应的键值对,可以使用字典的pop()方法:
D.pop('赵六')
print(D)
输出结果为:{'张三': 88, '李四': 90, '王五': 93, '钱七': 90}
9.打开当前路径下“作业.txt”,分别打出文件中前30个字符和前3行内容
with open("作业.txt", "r") as f:
# 打印前30个字符
print(f.read(30))
# 重新将文件指针移到文件头部
f.seek(0)
# 打印前3行内容
for i in range(3):
print(f.readline().strip())
本文所用的主要包为Python自带的turtle库和内置函数sort,以及操作文件所用的open函数。turtle库是Python中的一个绘图库,可以用它在屏幕上绘制各种形状;sort是Python中的内置排序函数,可以对列表进行排序;open函数则是Python中一个文件操作函数,可以读取、写入和关闭文件等。
总体来说,本文的编程题目涉及了Python语言的基本概念和常用函数,例如循环、函数、列表、字典等,对于初学者来说是一份不错的练习材料。同时,文章提供了每道题目的具体实现代码,并对其背后的原理进行了详细讲解,有助于读者深入理解和掌握Python编程技能。
总结
- 整数序列求和
这题主要考察了对Python基本语法的掌握能力,如变量定义、用户输入和for循环等。需要明确理解累加器的概念,即不断将新的数字加入到之前求和的结果中。
- 计算1+2!+3!+...+10!的结果
这一题需要用到Python的函数编程能力,如定义自己的函数和递归调用等。需要注意遍历范围,以及阶乘公式的正确使用。
- 绘制边长为200的正方形
这是第一个与图形绘制有关的问题,需要使用turtle库来实现。需要了解基本的turtle库函数,如Screen(), Turtle() 和 fd()等,同时还需要掌握角度转向和画笔状态等概念。
- 绘制边长为100的六边形
与上一题类似,这个题目同样需要使用turtle库来绘制,只不过需要绘制一个边长为100的六边形。需要掌握循环和角度旋转的应用,用for循环来控制绘制的顶点数量,并使用left()函数旋转到下一个点的位置。
- 绘制一条50像素的直线
这个题目非常简单,只需使用fd()函数来绘制直线即可。需要掌握turtle库的基础函数,如Screen(), Turtle() 和 fd()等。
- 绘制一个半径为50像素的完整的圆
这个题目同样需要使用turtle库进行绘制,只需要使用circle()函数来绘制一个半径为50像素的圆即可。需要理解turtle中的函数细节,如绘制圆形时的角度、相对位置等。
- 对列表按照升序和降序的方式进行排列
这是一道关于Python列表的问题,需要使用sort()函数来进行排序。要注意sort()函数的用法和参数设置,如如何指定降序排序。
- 字典操作
这一题主要考察了对Python字典的操作。需要知道如何向字典中添加、修改或删除键值对,以及如何遍历字典。
- 文件读取
这最后一道题目涉及到了Python中文件的读取操作。需要了解Python中open()函数和with语句的使用方法,并且掌握read(), seek() 和 readline()等方法的用法。
总的来说,这9道题目涉及到了Python编程的基本应用和常见库函数的使用。通过完成这些题目,可以加深对Python编程语言的理解和掌握,提高编程能力。
代码集合
- 整数序列求和
num = int(input("请输入一个数字: "))
sum = 0
for i in range(1, num+1):
sum += i
print(f"从1到{num}的所有整数之和为:{sum}")
- 计算1+2!+3!+...+10!的结果
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
sum = 0
for i in range(1, 11):
sum += factorial(i)
print(f"1+2!+3!+...+10!的结果为:{sum}")
- 绘制边长为200的正方形
import turtle
turtle.setup(800, 600)
wdw = turtle.Screen()
wdw.title("绘制正方形")
t = turtle.Turtle()
for _ in range(4):
t.fd(200)
t.left(90)
wdw.mainloop()
- 绘制边长为100的六边形
import turtle
turtle.setup(800, 600)
wdw = turtle.Screen()
wdw.title("绘制六边形")
t = turtle.Turtle()
for _ in range(6):
t.fd(100)
t.left(60)
wdw.mainloop()
- 绘制一条50像素的直线
import turtle
turtle.setup(800, 600)
wdw = turtle.Screen()
wdw.title("绘制直线")
t = turtle.Turtle()
t.fd(50)
wdw.mainloop()
- 绘制一个半径为50像素的完整的圆
import turtle
turtle.setup(800, 600)
wdw = turtle.Screen()
wdw.title("绘制圆形")
t = turtle.Turtle()
t.circle(50)
wdw.mainloop()
- 对列表按照升序和降序的方式进行排列
lst = [3, 5, 2, 8, 1]
# 升序排列
lst.sort()
print(f"升序排列:{lst}")
# 降序排列
lst.sort(reverse=True)
print(f"降序排列:{lst}")
- 字典操作
dct = {"name": "Lucy", "age": 24, "gender": "Female"}
# 添加一个键值对
dct["hometown"] = "Shanghai"
print(dct)
# 修改键值对
dct["age"] = 25
print(dct)
# 删除键值对
del dct["gender"]
print(dct)
# 遍历字典
for key, value in dct.items():
print(f"{key}: {value}")
- 文件读取
with open("example.txt", "r") as f:
# 读取整个文件内容
contents = f.read()
print(contents)
# 读取一行内容
line = f.readline()
print(line)
# 将文件指针移动到文件开头
f.seek(0)
# 逐行读取文件内容并打印
for line in f:
print(line.strip())