Python基础知识点与编程题实战练习

一、问答题

(1)什么是硬件?什么是软件?

答:硬件是计算机系统中各种物理设备的统称,是构成计算机的实体,看得见、摸得着,比如中央处理器(CPU)、内存条、硬盘、显卡、显示器、键盘、鼠标等 ,它们是计算机实现各种功能的物质基础。

软件是一系列按照特定顺序组织的计算机数据和指令的集合,是无形的。软件分为系统软件和应用软件,系统软件如操作系统(Windows、Linux 等)、语言处理程序等,负责管理和控制计算机系统的硬件资源,为用户和其他软件提供运行环境;应用软件如办公软件(Word、Excel)、游戏软件、图像处理软件(Photoshop)等,是为了满足用户不同领域、不同问题的应用需求而设计的 。

(2)比特是什么?字节是什么?

答:比特(bit,也写作 b )是计算机中表示信息的最小单位,它只有两种状态,即 0 和 1,这两种状态可以用来表示逻辑上的 “真” 与 “假”、电路的 “通” 与 “断” 等。

字节(Byte,也写作 B)是计算机信息技术用于计量存储容量的一种计量单位 ,1 字节由 8 个比特组成,即 1B = 8bit。字节是计算机处理数据的基本单元,在实际应用中,文件大小、内存容量等通常以字节为基础单位来计量和描述,并且衍生出了 KB(千字节)、MB(兆字节)、GB(吉字节)等更大的单位 ,换算关系为 1KB = 1024B,1MB = 1024KB,1GB = 1024MB 。

(3)内存和存储设备最主要的区别是什么?

答:

  • 数据存储的易失性:内存(如随机存取存储器 RAM)是易失性存储,即计算机断电后,内存中存储的数据会立即丢失。而存储设备(如硬盘、U 盘、固态硬盘等)属于非易失性存储,断电后数据依然可以长期保存 。
  • 读写速度:内存的读写速度极快,能快速响应 CPU 的数据读取和写入请求,使计算机快速处理数据。相比之下,存储设备的读写速度相对较慢,比如机械硬盘,受机械部件的限制,其读写速度远不及内存 。
  • 功能作用:内存主要用于计算机运行时,临时存储 CPU 正在处理的数据和程序,充当 CPU 与外部存储设备之间的桥梁,方便 CPU 快速访问数据,提高计算机运行效率。存储设备则主要用于长期存储大量的数据和程序,如操作系统、应用程序、用户文件等 。

(4)解释语言和编译语言之间的区别是什么?

答:解释语言和编译语言有以下主要区别:

  • 执行过程:编译语言(如 C、C++)在执行前,需通过编译器将源代码一次性全部翻译成目标机器语言(机器码),生成可执行文件,后续直接运行该文件。例如用 C 语言编写的程序,经过gcc编译器编译后产生可执行文件。解释语言(如 Python、JavaScript)则是在运行时,由解释器逐行读取并执行源代码,无需提前全部翻译成机器码 。
  • 运行效率:编译语言生成的可执行文件能直接在硬件上运行,运行效率相对较高。解释语言由于逐行解释执行,执行过程中存在额外开销,运行效率通常比编译语言低。
  • 可移植性:编译语言生成的可执行文件往往与特定的硬件和操作系统相关,若要在不同平台运行,需针对不同平台重新编译。解释语言只要在相应平台上安装了对应的解释器,源代码就可以运行,可移植性较好 。
  • 开发调试:编译语言在编译阶段就能发现大部分语法错误,修改后需重新编译才能运行,开发调试周期可能较长。解释语言可随时修改并立即运行查看效果,方便快速调试,开发效率相对较高 。

(5)操作系统的主要任务是什么?

答:操作系统的主要任务包括:

  • 进程管理:对计算机中的进程进行创建、调度、终止等操作,合理分配 CPU 资源,保证多个程序能有序运行。
  • 内存管理:负责内存的分配与回收,管理内存空间,使不同程序和数据在内存中合理存放,避免冲突。
  • 文件管理:组织、存储、检索和保护计算机中的文件资源,提供对文件的创建、删除、读取、写入等操作接口。
  • 设备管理:管理计算机的外部设备,如硬盘、打印机、网卡等,处理设备的驱动程序,实现设备的分配与回收,协调设备与 CPU 等部件的通信。
  • 用户接口:为用户提供操作计算机的界面,包括命令行界面和图形用户界面,方便用户与计算机交互,运行程序和管理系统资源。

(6)可以使用两种模式运行Python。解释这两种模式。

  • 交互式:在命令行输入 python 进入 Python 交互式环境,每输入一条语句回车后,解释器立即执行并返回结果。适合快速测试代码片段,如验证函数功能、进行简单运算等,方便即时查看效果。
  • 脚本式:将 Python 代码编写在扩展名为.py 的文件中,通过命令行执行该文件(如 python 文件名.py ),解释器会按顺序执行文件中的所有代码。

(7)找出下面代码中的错误

print("Hello World! This is "Python" ")

在符号串中引入了符号串,应对符号串中的引号进行转义

(8)列举代码当中四种异常错误,说明错误原因

  • 除零错误(ZeroDivisionError):原因:在代码中进行除法运算时,除数为 0,例如 result = 10 / 0,数学中除数不能为 0,程序运行到此处会报错。
  • 索引错误(IndexError):原因:访问列表、元组等序列类型数据时,使用了超出范围的索引值,比如 my_list = [1, 2, 3]; print(my_list[3]) ,列表索引从 0 开始,这里索引 3 超出了范围。
  • 名称错误(NameError):原因:使用了未定义的变量或函数,如 print(num),但之前没有定义 num 变量,解释器找不到对应名称会报错。
  • 类型错误(TypeError):原因:对不兼容的数据类型执行操作,例如 my_str = “hello”; result = my_str + 5 ,字符串和整数不能直接相加,会引发类型错误。

(9)下面哪些标识符是有效的?哪些是Python关键字?

miles	Test	a+b		b-a
4#R		$4		#44		apps
if		elif	x		y

有效标识符:miles 、Test、apps 、x 、y 。

关键字:if 、elif 。

(10)如何使用Python编写下面的算数表达式?
4 3 ( r + 34 ) − 9 ( a + b c ) + 3 + d ( 2 + a ) a + b d \frac{4}{3(r+34)}-9(a+bc)+\frac{3+d(2+a)}{a+bd} 3(r+34)49(a+bc)+a+bd3+d(2+a)

4 / (3 * (r + 34)) - 9 * (a + b * c) + (3 + d * (2 + a)) / (a + b * d)

(11)下面的语句都正确吗?如果是,给出他们的结果。

value = 4.6
print(int(value))
print(round(value))
print(eval("4 * 5 + 2"))
print(int("04"))
print(int("4.5"))
print(eval("04"))

value = 4.6:正确,结果为4.6。

print(int(value)):正确,int()函数会将浮点数4.6截断取整,结果为4。

print(round(value)):正确,round()函数会对4.6进行四舍五入,结果为5。

print(eval(“4 * 5 + 2”)):正确,eval()函数会计算字符串中的表达式,4 * 5 + 2的结果是22 ,所以输出22。

print(int(“04”)):正确 int()函数会将字符串 “04” 转换为整数,结果为4。

print(int(“4.5”)):错误,int()函数不能直接将包含小数点的字符串转换为整数,会抛出ValueError异常。

print(eval(“04”)):正确,eval()函数会将字符串 “04” 当作整数计算,结果为4。

(12)time .time() 返回的是什么?

在 Python 中,time.time()函数返回的是自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)到当前时刻的秒数,是一个浮点数类型的时间戳。

(13)变量的命名规则和规范是什么?

  • 命名规则:
    • 变量名由字母、数字和下划线组成。
    • 不能以数字开头。
    • 不能是 Python 的关键字,如 if、for、while等。
  • 命名规范:
    • 尽量使用有意义的名称,便于理解变量的用途,例如用student_name表示学生姓名,而不是无意义的a1。
    • 遵循下划线命名法(如user_name)或驼峰命名法(如userName) ,在一个项目中尽量保持一致。

(14)什么是UNIX时间点?

UNIX 时间点,也叫 UNIX 时间戳,是一种时间计量方式。它以协调世界时(UTC)1970 年 1 月 1 日 00:00:00 作为起始时间,通过记录从该起始时刻到当前时刻所经过的秒数来表示时间。UNIX 时间点在计算机系统中被广泛应用于时间记录、时间相关的计算和排序等场景,通常是一个整数或浮点数。

(15)下面的转换是允许的吗?如果允许,给出转换后的结果。

i = int(True)
j = int(False)
b1 = bool(4)
b2 = bool(0)
  • i = int(True):允许转换, i 的值为 1。
  • j = int(False):允许转换, j 的值为 0。
  • b1 = bool(4):允许转换, b1 的值为 True。
  • b2 = bool(0):允许转换, b2 的值为 False。

二、编程题

(16)将英尺数转换为米数

题目描述

输入英尺数然后将它转换为米数,并输出结果,一英尺等于0.305米

输入输出描述

输入一个数据表示英尺数

输出转换后的米数,结果保留四位小数点

示例

输入:

16.5

输出:

5.0325

#1.输入英尺数
foot = float(input())
#2.将英尺数转化为米数(一英尺等于0.305米)
meters = 0.305 * foot 
#3.输出米数
print(f'{meters:.4f}')

(17)计算小费

题目描述

读取小计和酬金率,然后计算小费以及合计金额。例如客户的小计为10元,酬金率为15%,那么小费是1.5元,合计金额为11.5元

输入输出描述

分别输入小计和酬金率,两个数据用之间用空格分隔

输出两行,第一行为小费,第二行为合计金额,结果保留两位小数

示例

输入:

15.69 15

输出:

2.35

18.04

#1.输入小计,酬金率,
xiaoji, choujinlv = map(float,input().split(" "))
#2.计算小费 计算合计金额
choujinlv /= 100 
xiaofei = choujinlv * xiaoji 
total = xiaoji + xiaofei  
#3.输出小费 合计金额
print(f'{xiaofei:.2f} ', end="\n")
print(f'{total:.2f} ', end="\n")

(18)计算年数和天数【录屏讲解】

讲解链接:
录制文件:https://meeting.tencent.com/crm/lReGdqGJ76

题目描述

输入分钟数,然后将该分钟数转换为年数和天数,假定一年有365天

输入输出描述

输入一个分钟数

输出两行,第一行为年数,第二行为天数

示例

输入:

1000000000

输出:

1902

214

#1.输入分钟数
mintues = int(input())
#2.分钟数转化年数和天数
years = mintues // (60 * 24 * 365)
mintues = mintues % (60 * 24 * 365)
days = mintues // (60 * 24)
#3.输出年数和天数
print(years)
print(days)

(19)计算能量

题目描述

水从初始温度加热到最终温度是需要能量的,请计算需要多少能量,公式如下:
Q = M ∗ ( f i n a l T e m p e r a t u r e − i n i t i a l T e m p e r a t u r e ) ∗ 4184 Q = M * (finalTemperature - initialTemperature) * 4184 Q=M(finalTemperatureinitialTemperature)4184
这里的M是按千克计的水量,初始温度和最终温度均为摄氏度,热量Q以焦耳计

输入输出描述

输入三行数据,第一行输入水量,第二行输入初始温度,第三行输入最终温度

输出所需的能量值,结果保留一位小数

示例

输入:

55.5

3.5

10.5

输出:

1625484.0

#1.输入水量 初始温度 最终温度
m = float(input())
initialtem = float(input())
finaltem = float(input())
#2.公式计算能量
q = m * (finaltem -initialtem) * 4184
#3.输出能量
print(f'{q:.1f}')

(20)分割数字【录屏讲解】

讲解链接:https://meeting.tencent.com/crm/234g5E6J97
题目描述

输入一个四位整数,并以反向顺序显示

输入输出描述

输入一个四位整数

输出四行,第一行为个位,第二行为十位,第三行为百位,第四行为千位

示例

输入:

5213

输出:

3

1

2

5

#1.输入四位整数
zhengshu = int(input())
#2.拆分成 个、十、百、千
qianwei = zhengshu // 1000
# bai
bai = zhengshu % 1000
baiwei = bai // 100
#shi
shi = bai % 100
shiwei= shi // 10
#ge
gewei = shi % 10
#3.输出 个、十、百、千
print(gewei)
print(shiwei)
print(baiwei)
print(qianwei)

(21)计算三角形的三个角【录屏讲解】

讲解链接:https://meeting.tencent.com/crm/l6BDeyDp51

题目描述

输入三角形的三个顶点坐标,并计算该三角形的三个角分别是多少(角度制)
A = a c o s ( ( a ∗ a − b ∗ b − c ∗ c ) / ( − 2 ∗ b ∗ c ) ) B = a c o s ( ( b ∗ b − a ∗ a − c ∗ c ) / ( − 2 ∗ a ∗ c ) ) C = a c o s ( ( c ∗ c − b ∗ b − a ∗ a ) / ( − 2 ∗ a ∗ b ) ) A=acos((a*a-b*b-c*c)/(-2*b*c)) \\ B=acos((b*b-a*a-c*c)/(-2*a*c)) \\ C=acos((c*c-b*b-a*a)/(-2*a*b)) \\ A=acos((aabbcc)/(2bc))B=acos((bbaacc)/(2ac))C=acos((ccbbaa)/(2ab))
其中a、b、c分别表示三条边,A、B、C分别表示三边对应的角

输入输出描述

输入六个数据,分别表示三角形三个顶点的坐标x1、y1、x2、y2、x3和y3,数据之间用空格分隔

输出三行,分别为A、B、C三个角的度数,结果保留两位小数

示例

输入:

1 1 6.5 1 6.5 2.5

输出:

15.26

90.00

74.74

import math
#1.输入三个顶点坐标x1、y1、x2、y2、x3、y3
x1, y1 ,x2 ,y2, x3, y3 = map(float, input().split(" "))
#2.根据坐标求出边长abc
c = ((x1 - x2) ** 2 +(y1 - y2) ** 2) ** 0.5
b = ((x1 - x3) ** 2 +(y1 - y3) ** 2) ** 0.5
a = ((x3 - x2) ** 2 +(y3 - y2) ** 2) ** 0.5
#3.根据边长计算三个角
A = math.acos((a * a - b * b - c * c) / (-2 * b * c))
B = math.acos((b * b - a * a - c * c) / (-2 * a * c))
C = math.acos((c * c - b * b - a * a) / (-2 * b * a))
#弧度转为角度
A =  math.degrees(A)
B =  math.degrees(B)
C =  math.degrees(C)
#4.输出三个角度数
print(f'{A:.2f}')
print(f'{B:.2f}')
print(f'{C:.2f}')

(22)正多边形的面积

题目描述

正多边形是边长相等的多边形,而且所有的角相等,计算正多边形的公式为:
a r e a = n ∗ s 2 4 ∗ t a n ( π n ) area = \frac{n*s^2}{4*tan(\frac{π}{n})} area=4tan(nπ)ns2
输入输出描述

输入两个数据分别表示边的个数n和边的长度s,数据之间用空格分隔

输出边长为s的正n多边形的面积,结果保留两位小数

示例

输入:

5 6.5

输出:

72.69

#1.输入边的个数n 边的长度s
import math
n,s = map(float,input().split(" "))
#2.计算面积
area = (n * s ** 2) / (4 * math.tan(math.pi / n))
#3.输出面积
print(f'{area:.2f}')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值