9道Python编程练习:巩固基础语法与库函数,助力初学者快速入门

本文共包含9道Python编程题目,分别涉及整数序列求和、计算阶乘、绘制图形、字典操作、文件读取等方面。文章提供了每道题的具体代码实现,以及对其背后的实现原理进行了详细解释。

目录

1.整数序列求和:用户输入一正整数N,计算从1到N(包含1和N)相加之后的结果

2.计算1+2!+3!+...+10!的结果

3.边长为200的正方形绘制

4.边长为100的六边形绘制

5.绘制一条50像素的直线

6.绘制一个半径为50像素的完整的圆

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())

猜你喜欢

转载自blog.csdn.net/m0_62338174/article/details/130881246
今日推荐