Python小白基础实验练习题三题目

配套实验完成的内容已经置顶。

1.写出程序的运行结果。

a=[50,75,53, 92,77,64,79,21]
S=[0]*10
for i in range (len(a)):
    k=a[i]//10
    s[k]=s[k]+1
M=s[0]
k=1
while k<10:
    if s[k] >m:
        m=s[k]
    k+=1
print('m=',m)

2.下面的程序是希望从键盘输入10个数,并用它们建立元组p,但程序运行时出现错误:AttributeError: 'tuple' object has no attribute 'append'

请修改程序,使程序能达到要求。

p=()
for i in range (10):
    ×=int(input())
    p.append(x)
print (p)

3.筛选法求[2, n]范围内全部素数的基本思路是:在2~n中消去2的倍数(不包括2),再消去3的倍数(不包括3),由于4已被消去,再找5的倍数,……,直到消去不超过n的倍数,剩下的数都是素数。下面是用筛选法求[2,n]范围内的全部素数的程序,请补充程序。

from math import *
n=int(input("请输入n:"))
m=int(sqrt(n))
p=[i for i in range(n+1)]
for i in range(2,m+1):
    if p[i]:
for j in range(2*i,n+1,____(1)____): #去掉i的倍数//
    for j in range(2 * i, n + 1, i):
        p[j]=0
    for i in range (2,n+1):    #输出全部素数
        If_____(2)_____:// 
            if p[i]:
                print(p[i])

4.将列表的元素按逆序重新存放。

def reverse_list(input_list):
    input_list.reverse()
    return input_list

# 示例输入列表
input_list = [1, 2, 3, 4, 5]
result = reverse_list(input_list)
print("逆序后的列表:", result)

5.将列表s中的偶数变成它的平方,奇数保持不变。

s = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 使用列表推导式对列表s进行处理
s = [x**2 if x % 2 == 0 else x for x in s]

print(s)

6.生成包含100个2位随机整数的元组,统计每个数出现的次数。

import random

# 生成包含100个2位随机整数的元组
random_numbers = tuple(random.randint(10, 99) for _ in range(100))

# 统计每个数出现的次数
count_dict = {}
for num in random_numbers:
    if num in count_dict:
        count_dict[num] += 1
    else:
        count_dict[num] = 1

# 输出结果
for num, count in count_dict.items():
    print(f"{num} 出现 {count} 次")

7.生成包含20个随机整数的元组,将前10个数按升序排列,后10个数按降序排列。

import random

# 生成包含20个随机整数的元组
numbers = tuple(random.sample(range(100), 20))

# 对前10个数进行升序排列
sorted_numbers = sorted(numbers[:10])

# 对后10个数进行降序排列
sorted_numbers += sorted(numbers[10:], reverse=True)

# 输出结果
print("原始元组:", numbers)
print("排序后的元组:", sorted_numbers)

8.输入5×5矩阵a,完成下列要求:

(1)输出矩阵a。

(2)将第2行和第5行元素对调后,输出新的矩阵a。

(3)用对角线上的各元素分别去除各元素所在行,输出新的矩阵a。

import numpy as np

# 创建一个5x5的矩阵a
a = np.array([[1, 2, 3, 4, 5],
              [6, 7, 8, 9, 10],
              [11, 12, 13, 14, 15],
              [16, 17, 18, 19, 20],
              [21, 22, 23, 24, 25]])

# 输出矩阵a
print("矩阵a:")
print(a)

# 将第2行和第5行元素对调
a[[1, 4]] = a[[4, 1]]

# 输出新的矩阵a
print("交换后的矩阵a:")
print(a)

# 用对角线上的各元素分别去除各元素所在行
for i in range(len(a)):
    a[i] = a[i] / a[i][i]

# 输出新的矩阵a
print("对角线除法后的矩阵a:")
print(a)

9.写出程序的运行结果。

d=('Jack': 'jack@mail.com' , 'Tom': 'Tomemail.com'}
d[ 'Jim']='Jime@sin.com'
del d[ 'Tom']
s=list(d.keys())
s=sorted(s)
print (s)

10.写出程序的运行结果。

numbers={}
numbers[(1,2,3)]=1
numbers[(2,1)]=2
numbers[(1,2)]=3
sum=0
for k in numbers:
sum+=numbers[k]
print (len(numbers), sum, numbers)

11.写出程序的运行结果。

a=set('ababcdabca')
x={x for x in a if x not in 'ab'}
print(a-x)
print(a|x)
print (a^x)
print (a&x)

12.从键盘输入整数x,判断它是否集合a, b,c的元素,若是分别输出1,2,3,若都不是输出4,要求集合a从键盘输入。请补充程序。

x=int (input())
a=_____(1)_____
for i in range(5):
a.____(2)_____(int(input())
b={12,43,56,2}
C={3,2,67]
if x in a:
y=1
elif x in b:
y=2
elif x in c:
y=3
else:
y=4
print('y=',y)

13.创建由Monday~Sunday(代表星期一到星期日)的7个值组成的字典,输出键列表、值列表及键值列表。

# 创建星期字典
week_dict = {
    "Monday": 1,
    "Tuesday": 2,
    "Wednesday": 3,
    "Thursday": 4,
    "Friday": 5,
    "Saturday": 6,
    "Sunday": 7
}

# 输出键列表
keys_list = list(week_dict.keys())
print("键列表:", keys_list)

# 输出值列表
values_list = list(week_dict.values())
print("值列表:", values_list)

# 输出键值列表
items_list = list(week_dict.items())
print("键值列表:", items_list)

14.从键盘输入若干个数据建立一个字典,然后读取其键和值,并分别存入两个列表中。

# 初始化空字典和两个空列表

my_dict = {}
keys_list = []
values_list = []

# 输入数据建立字典
while True:
    key = input("请输入键(输入q退出):")
    if key == "q":
        break
    value = input("请输入值:")
    my_dict[key] = value

# 将键和值分别存入列表
for key, value in my_dict.items():
    keys_list.append(key)
    values_list.append(value)

# 输出结果
print("字典键列表:", keys_list)
print("字典值列表:", values_list)

15.输入全班30名学生的姓名和成绩,输出其中最高分和最低分,并求全班同学的平均分。要求利用字典实现。

你可以使用字典来实现这个需求。下面是一个示例代码,演示如何输入全班30名学生的姓名和成绩,并输出其中最高分和最低分,以及求全班同学的平均分:

16.随机生成10个[0,10]范围的整数,分别组成集合A和集合B,输出A和B的内容、长度、最大值、最小值以及它们的并集、交集和差集。

你可以使用Python中的random模块来生成随机整数,并使用集合操作来计算集合的内容、长度、最大值、最小值以及并集、交集和差集。以下是一个示例代码,演示如何生成10个[0,10]范围的整数,分别组成集合A和集合B,并输出它们的内容、长度、最大值、最小值以及并集、交集和差集

17.写出程序的运行结果。

c='123'+'456'+'789'
c+=c[-3:]*2
print(c)

18.写出下列程序的功能。

for k in range(1,11):
    w=input ()
    if 'AEIOUaeiou'.find(w[0])>=0:
        print(w)

19.下面是打印如图实验6-1所示的金字塔图案的程序,请补充程序。

for i in range (1,6):
    print(' '*(15-i) ,end=' ')
    print('*'*___(1)_____)// print('*' * (2*i - 1))

20.从键盘输入一个语句,判断它是否为循环语句。

判断一句话是否为循环语句是一个复杂的任务,需要进行语义分析和语法解析。对于一个通用的AI机器人,它的能力可能有限,可能无法准确判断一句话是否为循环语句。

然而,如果你想判断一句话中是否包含某些特定的关键词或模式,可以通过Python的字符串方法来实现。以下是一个示例代码,演示如何判断输入的语句是否包含某些常见的循环语句关键词:

def is_loop_statement(sentence):
    loop_keywords = ['for', 'while']
    for keyword in loop_keywords:
        if keyword in sentence.lower():
            return True
    return False

# 示例输入语句
input_sentence = input("请输入一句话:")
result = is_loop_statement(input_sentence)
if result:
    print("这是一个循环语句。")
else:
    print("这不是一个循环语句。")

21.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

你可以使用Python的 isalpha()isspace() 和 isdigit() 方法来判断字符的类型,并统计各个类型字符的个数。以下是一个示例代码,演示如何统计输入一行字符中的英文字母、空格、数字和其他字符的个数:

def count_characters(input_string):
    letter_count = 0
    space_count = 0
    digit_count = 0
    other_count = 0

    for char in input_string:
        if char.isalpha():
            letter_count += 1
        elif char.isspace():
            space_count += 1
        elif char.isdigit():
            digit_count += 1
        else:
            other_count += 1

    return letter_count, space_count, digit_count, other_count

# 示例输入一行字符
input_string = input("请输入一行字符:")
result = count_characters(input_string)
print("英文字母个数:", result[0])
print("空格个数:", result[1])
print("数字个数:", result[2])
print("其他字符个数:", result[3])

22.输入一个英文句子,将其中的小写字母转换成大写字母后并输出。

你可以使用Python的内置方法 upper() 来将一个字符串中的小写字母转换成大写字母。以下是一个示例代码,演示如何将输入的英文句子中的小写字母转换成大写字母并输出:

def convert_lowercase_to_uppercase(sentence):
    converted_sentence = sentence.upper()
    return converted_sentence

# 示例输入英文句子
input_sentence = input("请输入一个英文句子:")
result = convert_lowercase_to_uppercase(input_sentence)
print("转换后的句子:", result)

23.输入一个字母标识符,计算标识符中各个字母的数值之和,其中A=a=1,B=b=2,…,Z=z=26例如“Lucy”的数值为12+21+3+25=61。

你可以使用Python的内置函数 ord() 来获取字母的ASCII值,并结合一些简单的数学运算来计算标识符中各个字母的数值之和。以下是一个示例代码,演示如何计算输入的字母标识符中各个字母的数值之和:

def calculate_identifier_value(identifier):
    total_value = 0
    for char in identifier:
        char = char.lower()  # 将字符统一转换为小写
        value = ord(char) - ord('a') + 1  # 计算字母的数值
        total_value += value
    return total_value

# 示例输入字母标识符
input_identifier = input("请输入一个字母标识符:")
result = calculate_identifier_value(input_identifier)
print("标识符的数值之和:", result)

24.利用正则表达式判断字符串是否只有小写字母或数字。

你可以使用Python的re模块来进行正则表达式匹配判断。以下是一个示例代码,演示如何利用正则表达式判断字符串是否只包含小写字母或数字:

import re

def check_lowercase_or_digit(input_string):
    pattern = r'^[a-z0-9]+$'
    match = re.match(pattern, input_string)
    return match is not None

# 示例输入字符串
input_string = input("请输入一个字符串:")
result = check_lowercase_or_digit(input_string)
if result:
    print("字符串只包含小写字母或数字")
else:
    print("字符串不只包含小写字母或数字")

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值