自学内容网 自学内容网

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