大家好,小编来为大家解答以下问题,python期末题库和答案,python期末怎么考,今天让我们一起来看看吧!
1、math.ceil(num)什么意思?(看第4点)
print(math.ceil(num))
math.ceil(num)
是一个数学函数,它的作用是返回不小于参数num
的最小整数值。换句话说,它会向上取整并返回一个大于或等于num
的整数python皮卡丘代码复制粘贴。
例如,如果 num
是 5.3,那么 math.ceil(5.3)
将返回 6。如果 num
是 -2.7,那么 math.ceil(-2.7)
将返回 -2(因为向上取整后的整数必须大于或等于原始的负数)。
这个函数在处理需要返回大于或等于给定值的整数时非常有用,比如计算货币金额、调整图像大小等。
2、oct(num)和hex(num)函数
oct(num)
是一个内置函数,在Python中用于将整数转换为八进制(Octal)表示的字符串。
当你调用 oct()
并传入一个整数 num
时,它会返回一个以前缀'0o'
开头的八进制字符串。
例如,如果 num
是 10,那么 oct(10)
将返回字符串 '0o12'
,其中 '12'
是十进制数 10 的八进制表示。
num = 10
oct_num = oct(num)
print(oct_num) # 输出: 0o12
这个函数可以在需要进行八进制数操作或输出时使用。
hex(num)
是一个内置函数,在Python中用于将整数转换为十六进制(Hexadecimal)表示的字符串。当你调用 hex()
并传入一个整数 num
时,它会返回一个以前缀'0x'
开头的十六进制字符串。
任务描述
输入一个十进制整数,输出其对应的八进制数和十六进制数。要求输出的八进制数要加前缀0o,输出的十六进制数要加前缀0x。
输入格式
输入一个整数
输出格式
对应的八进制或十六进制数
# 补充你的代码
num=int(input())
print(oct(num))
print(hex(num))
3、幂函数(看第4点)
在Python中,可以使用 **
运算符或 pow()
函数来进行幂运算。
-
使用
**
运算符: 可以使用**
运算符来计算一个数的幂。它的语法是base ** exponent
,其中base
是底数,exponent
是指数。result = base ** exponent
例如,计算 2 的 3 次幂:
result = 2 ** 3 print(result) # 输出: 8
-
使用
pow()
函数:pow()
函数用于计算一个数的幂。它的语法是pow(base, exponent[, modulus])
,其中base
是底数,exponent
是指数,modulus
是可选参数,表示取模运算的结果。result = pow(base, exponent)
例如,计算 2 的 3 次幂:
result = pow(2, 3) print(result) # 输出: 8
这些幂函数可以用于执行数学运算,计算数值的乘方、指数等操作。
4、常用的math函数
math
模块提供了许多常用的数学函数,以下是一些常见的 math
函数:
math.ceil(x)
: 向上取整,返回不小于 x 的最小整数。math.floor(x)
: 向下取整,返回不大于 x 的最大整数。math.sqrt(x)
: 计算 x 的平方根,返回一个浮点数。math.pow(x, y)
: 计算 x 的 y 次幂,返回一个浮点数。math.exp(x)
: 计算 e(自然对数的底)的 x 次幂,返回一个浮点数。math.log(x, base)
: 计算以 base 为底的 x 的对数,如果不指定 base,则默认为 e。返回一个浮点数。math.sin(x)
,math.cos(x)
,math.tan(x)
: 计算 x 的正弦、余弦和正切值,其中 x 是弧度值。math.radians(x)
: 将角度 x 转换为弧度。math.degrees(x)
: 将弧度 x 转换为角度。math.pi
: π 的近似值,约为 3.141592653589793。math.e
: 自然对数的底 e 的近似值,约为 2.718281828459045。
5、round函数(四舍五入或控制小数位数)
round()
函数是Python内置的一个函数,用于对浮点数进行四舍五入或控制小数位数。
round()
函数的语法如下:
rounded_num = round(number, ndigits)
其中:
number
是要进行四舍五入操作的数字。ndigits
是可选参数,表示要保留的小数位数,默认为0。如果指定了ndigits
,则会将number
四舍五入到给定的小数位数。
以下是一些示例:
num1 = 3.14159
rounded_num1 = round(num1) # 结果: 3
num2 = 3.14159
rounded_num2 = round(num2, 2) # 结果: 3.14
num3 = 4.6789
rounded_num3 = round(num3, 3) # 结果: 4.679
6、例题:今天是第几天(闰年)
任务描述
输入年/月/日(用斜杠分隔),输出该日期是这一年的第几天?(本题目保证测试使用的年、月、日都是合法输入)
tips:
-
map()函数可以将多个数据转换成指定数据类型
-
split()函数可以将字符串按照指定分隔符进行间隔并生成数据列表
-
a, b, c = map(int, input().split(":"))
-
#上述语句可以将输入格式为 "12:30:05" 的字符串分解成["12", "30", "05"]
-
#并将列表中每个数据转换成整型数据并分别赋值给a,b,c三个变量
输入格式
年/月/日
输出格式
某年某月某日是某年第多少天
示例 1
输入: 2018/2/1 输出: 2018年2月1日是2018年第32天
year, month, day = map(int, input().split('/'))
if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
leap_year = True
else:
leap_year = False
# 每个月的天数,索引从1开始
days_in_month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# 如果是闰年,将2月的天数修改为29
if leap_year:
days_in_month[2] = 29
# 计算日期是这一年的第几天
day_count = sum(days_in_month[:month]) + day
output = f"{year}年{month}月{day}日是{year}年第{day_count}天"
print(output)
7、例题:正负交错数列前n项和(正负号)
任务描述
1-1/2+2/3-3/5+4/8-5/13+...的前n项和,n由用户输入(n>0),结果用str.format()方法保留小数点后6位数字输出。
输入格式
一个正整数
输出格式
前n项的和
示例 1
输入: 12
输出: 0.828448
s=eval(input())
sum=0
def f(s):
if s==1:
return 2
elif s==2:
return 3
else:
return f(s-2)+f(s-1)
for i in range(1,s):
if i%2==0:
fenzi=i
else:
fenzi=-i
sum=sum+fenzi/f(i)
sum=sum+1
print('{:.6f}'.format(sum))
8、例题:中国古代数学问题——物不知数(计数)
任务描述
“物不知数”出自《孙子算经》。题目为:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”。
意思是说有一些物品,不知道有多少个,3个3个数的话,还多出2个;5个5个数则多出3个;7个7个数也会多出2个。
现假设物品总数不超过n (n<=1000),请编程计算满足条件的物品个数并输出。
输入格式
输入为一个正整数n,题目保证 0 < n <= 1000 。
输出格式
输出不超过n且满足条件的物品个数m,如果有多个解,则分行输出,如果无解则输出"No solution!"。
示例 1
输入:10 输出:No solution!
示例2
输入:200 输出:
23 128
n = int(input())
flag = 0
for i in range(n + 1):
if i % 3 == 2 and i % 5 == 3 and i % 7 == 2:
print(i)
flag += 1
if flag == 0:
print('No solution!')
9、例题:中国古代数学问题——百钱买百鸡A
我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,如果要求鸡翁、鸡母、鸡雏都不为零,问鸡翁、鸡母、鸡雏各几何?
for i in range(1,20):
for j in range(1,33):
for n in range(3,300,3):
if 5 * i + 3 * j + n * (1/3) == 100 and i + j + n == 100:
print(f'{i} {j} {n}')
break
10、例题:中国古代数学问题——鸡兔同笼
任务描述
大约在1500年前,《孙子算经》中记载一个有趣的问题:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何? 大概的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚,问笼中各有多少只鸡和兔? 请编一个程序,用户在同一行内输入两个整数,代表头和脚的数量,编程计算笼中各有多少只鸡和兔(假设鸡和兔都正常,无残疾)。如无解则输出“Data Error! 参考下面的示例代码,从同一行读入两个数 a, b = input().split() # 将输入的以空格分隔的两个数命名为a和b a, b = map(int,input().split(',')) # 将输入的以逗号分隔的两个值,转换为整数后命名为a和b
输入格式
输入为一行,以空格分隔的两个整数h f,分别代表鸡兔的总头数和总脚数。
输出格式
使用输入值进行计算,如有解,则输出: 有m只鸡,n只兔; 如无解则输出: Data Error!
a, b = input().split()
def print_num(a, b):
if a < 0 or b < 0:
print("Data Error!")
return
rabbits = b/2 - a #兔子
chi = a - rabbits
if chi - int(chi) != 0 or chi < 0 or rabbits < 0:
print("Data Error!")
return
print(f"有{int(chi)}只鸡,{int(rabbits)}只兔")
return
print_num(int(a),int(b))
11、例题:中国古代数学问题——兔子繁殖问题
任务描述
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,用户输入一个月份数,计算并在一行内输出该月的兔子总对数以及前一个月与该月兔子数量的比值(计算并观察一下这个比值的数值是多少),比值结果保留小数点后3位,数字间用空格分隔。
输入格式
一个大于2的正整数
输出格式
在一行内输出两个数,数之间用空格隔开。第一个是整数,表示本月的兔子的对数,第二个是浮点数(严格保留小数点后三位),表示前一个月兔子数与本月兔子数的比值。
n = eval(input())
last = 1 # 上一个月的兔子数量
today= 1 # 本月的兔子数量
temp=1
if n == 1:
print("{} {:.3f}".format(last,0))
elif n == 2:
print("{} {:.3f}".format(last,1))
else:
for i in range(3,n+1):
today = temp + last
last = temp
temp = today
print("{} {:.3f}".format(today,last/today))
12、m.isalpha()字符串方法(用于检测字符串是否只包含字母字符)
m.isalpha()
是一个字符串方法,用于检测字符串是否只包含字母字符。
具体地说,isalpha()
方法会遍历字符串中的每个字符,如果所有字符都是字母,则返回 True
;否则,返回 False
。
以下是一些示例:
text1 = "Hello"
result1 = text1.isalpha() # 结果: True
text2 = "123"
result2 = text2.isalpha() # 结果: False
text3 = "abc123"
result3 = text3.isalpha() # 结果: False
在上面的示例中,text1
只包含字母字符,所以 isalpha()
返回 True
;text2
包含数字字符,所以返回 False
;text3
同时包含字母和数字字符,所以也返回 False
。
这个方法对于判断字符串中是否只包含字母字符很有用,可以用来进行输入验证或数据处理。
13、例题:汽车迷(传入参数)
任务描述
小明是一个汽车迷,看到什么汽车马上就可以说出汽车的生产年份、型号和品牌。定义一个函数,可以输出汽车的介绍。
例如输入:
2020 AMG_S65 奔驰
可以输出:
这是一辆2020年生产,型号是AMG_S65的奔驰牌汽车。
要求函数具有以下功能:当用户只输入生产年份、型号时,品牌按“宝马”输出。
输入格式
输入用空格分隔的年、型号和品牌(品牌可能没有)
输出格式
这是一辆年生产,型号是的牌汽车。( 根据用户输入进行替换)
示例
输入:2020 AMG_S65 奔驰
输出:这是一辆2020年生产,型号是AMG_S65的奔驰牌汽车。
def Car(y,s,b='宝马'): # 括号里补充你的代码
return f'这是一辆{y}年生产,型号是{s}的{b}牌汽车。'
# 以下内容不要修改
ls = input().split() # 根据空格切分输入字符串为列表
print(Car(*ls)) # 调用函数,取列表中的全部数据做参数
14、例题:字母查找2.0(replace的使用)
text = "Hello, World!"
new_text = text.replace("World", "Python")
print(new_text) # 输出: Hello, Python!
任务描述
定义一个函数来判断单词m是否可以由字符串n中出现的字母来组成。
本题保证字符串中出现的字母均为小写字母,n中的字母只能使用一次。
在两行中分别输入两个字符串m,n
如果m,n 满足条件,则输出’FOUND‘ ,否则输出'NOT FOUND'
如果输入的m包含有除字母外的其他字符,输出’ERROR‘结束
示例 1
输入: word world 输出:
FOUND
示例 2
输入: 1a3e 输出:
ERROR
示例 3
输入: at bcda 输出:
NOT FOUND
示例 4
输入: hello heol 输出:
NOT FOUND
def f(m,n):
for i in m:
if n.count(i)>0:
n=n.replace(i,'',1)
# 将 n 字符串中第一次出现的字符 i 替换为空字符串
else:
return 'NOT FOUND'
return 'FOUND'
m = input()
if m.isalpha(): ####: #完成该条件分支,输入字符串n判断单词m是否可以由n中的某些字符组成
####
n = input()
print(f(m,n))
else:
print('ERROR')
15、编写函数输出自除数
任务描述
一个不含0的数,如果它能被它的每一位除尽,则它是一个自除数。例如128是一个自除数,因为128能被1、2、8整除。编写函数selfDivisor(num)判断num是否为自除数,使用该函数输出不大于N的所有自除数。
(注意,含有数字0的数不是自除数)
输入格式
输入为一行,一个正整数N(N>=1)。
输出格式
输出为一行,是不大于N的所有自除数,每个数后面有一个空格。
示例 1
输入:1
输出:1
示例 2
输入:22
输出:1 2 3 4 5 6 7 8 9 11 12 15 22
def selfDivisor(num):
if '0' in str(num):
return False # 包含数字0的不是自除数
for c in str(num): # 对数字num中的每位数字进行遍历
if num % int(c) != 0: # 测试num的每一位是否是num的因子
return False # 如果存在不能整除的数,则不是自除数
else: # 如果for遍历顺利结束,未遇到return,则执行else子句,True
return True
n=int(input())
for num in range(1,n+1): # 注意不大于包括等于n
if selfDivisor(num): # 调用函数,当返回值为True时,该数为自除数,输出这个数
print(num,end=' ') # 输出以空格结尾
over~