Python头歌编程练习
Python编程练习题—头歌实践平台
1. 小明是一名小学老师,某次考试后,他遇到了这样的问题:读入 n 名学生的成绩,将获得某一给定分数的学生人数输出。你能帮助他解决吗?
输入格式
第一行包含一个整数 n(1≤n≤10 ^3)),表示学生的人数。接下来一行输入 n 个整数 f(0≤f≤10^2 ),表示各学生的成绩,整数间以空格间隔。最后一行输入给定的分数 g(0≤g≤10^2 )。
输出格式
针对输入,打印出获得给定分数的学生人数。
n = int(input())
N = list(map(int, input().split()))
g = int(input())
count = 0
for i in N:
if g == i:
count +=1
print(count)
2. 有一只小鱼,它平日每天游泳250公里,周末休息(实行双休日),假设从周 x(1≤x≤7) 开始算起,过了 n(n≤10^6 ) 天以后,小鱼一共累计游泳了多少公里呢?
输入格式
输入两个整数x,n (表示从周 x 算起,经过 n 天)。
输出格式
输出一个整数,表示小鱼累计游泳了多少公里。
x, n = map(int, (input().split()))
KM = 0
while n:
if x % 7 == 6:
x += 1
n -= 1
elif x % 7 == 0:
x = 1
n -= 1
else:
x += 1
n -= 1
KM += 250
print(KM)
3. 猴子第一天摘下若干个桃子,当天吃了一半,后面又多吃一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。后面每天猴子都吃了前一天剩下的一半零一个。到第十天想再吃时,只剩下一个桃子。求第一天共摘了多少桃子。
输入格式
无。
输出格式
一个整数。
sum = 1
for i in range(1,10):
sum = (sum+1)*2
print(sum)
#或直接输出结果
print(1534)
4. 编写一个程序,生成并输出10个两位数的随机数,并且这10个随机数都是素数。
import random
def is_prime(num):
"""检查一个数是否是素数"""
if num < 2:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True
def generate_primes(count):
"""生成指定数量的随机素数"""
primes = []
while len(primes) < count:
num = random.randint(10, 99) # 生成两位数
if is_prime(num):
primes.append(num)
return primes
# 生成并输出10个两位数的随机素数
primes = generate_primes(10)
print(' '.join(map(str, primes)))
5. 给你一个整数数组 nums 。数组中唯一元素是那些只出现恰好一次的元素。请你返回 nums 中唯一元素的和。
输入格式
第一行,一个正整数 N,表示数组的大小
第二行, N 个整数,每两个数字之间用一个空格隔开
输出格式
一个整数
# 读取数组的大小
N = int(input())
# 读取数组元素
nums = list(map(int, input().split()))
# 创建一个字典来统计每个元素出现的次数
count_dict = {}
for num in nums:
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
# 计算所有只出现一次的元素的和
unique_sum = sum(num for num in nums if count_dict[num] == 1)
# 输出结果
print(unique_sum)
6. 输入一行整数,使用空格隔开,寻找这行整数中最大值的位置并输出。最低位从 1 开始计数,如果最大值相同,则输出第一次出现的最大值的位置。
输入格式
一行整数,用空格隔开。
输出格式
一个整数。
num = list(map(int, input().split()))
max = num[0]
count = 0
for i in num:
if max < i:
max = i
for i in num:
count += 1
if max == i:
break
print(count)
7. 输入两个整数 a,b,计算并输出大于 a 的 b个质数,所有符合条件的质数里,输出最小的 b 个质数,按照从小到大输出,使用空格隔开。
输入格式
两个整数,用空格隔开。
输出格式
一行整数,用空格隔开,最后一个整数附带空格。
def is_prime(num):
"""检查一个数是否是质数"""
if num <= 1:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True
def find_primes(a, b):
"""找到大于a的b个质数"""
primes = []
num = a + 1
while len(primes) < b:
if is_prime(num):
primes.append(num)
num += 1
return primes
# 读取输入
a, b = map(int, input().split())
# 找到质数并输出
primes = find_primes(a, b)
print(' '.join(map(str, primes)) + ' ')
8. 输入一个数 N ,请你判断其是否为质数。若为质数,输出Yes,否则输出No。
输入格式
输入一个正整数 N。
输出格式
输出 Yes 或者 No
N = int(input())
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True
if is_prime(N): print("Yes")
else: print("No")
9. 小明正在参加一个数学竞赛,现在,他遇到了这样一道题:
一个有 n 个元素的整数数组,如果数组所有两个连续元素之间差的绝对值包括了 [1,n-1] 之间的所有整数,则称之符合“欢乐的跳”,如数组 [1,4,2,3] 符合“欢乐的跳”,因为差的绝对值分别为:3,2,1。
给定一个数组,请聪明的你判断该数组是否符合“欢乐的跳”。
输入格式
第一行有一个整数 n,表示数组的大小;
第二行有 n 个整数 m,表示数组的所有元素,每个整数用一个空格隔开。
输出格式
针对输入,如果该数组符合“欢乐的跳”则输出 happy,否则输出 no。
def is_happy_jump(n, arr):
# 检查数组长度是否小于2,如果是,则无法形成任何差值
if n < 2:
return "no"
# 存储所有差的绝对值
diffs = set()
for i in range(1, n):
diffs.add(abs(arr[i] - arr[i - 1]))
# 检查差的绝对值是否包含了从1到n-1的所有整数
for i in range(1, n):
if i not in diffs:
return "no"
return "happy"
# 读取输入
n = int(input())
arr = list(map(int, input().split()))
# 判断并输出结果
print(is_happy_jump(n, arr))
原文地址:https://blog.csdn.net/weixin_62473134/article/details/144326064
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!