Python编程题

1、输入直角三角形的两个直角边的长度a、b,求斜边c的长度

from math import sqrt   # 从math库中导入sqrt方法
a = eval(input('输入直角边a的长度:'))
b = eval(input('输入直角边b的长度:'))
c = sqrt(a*a+b*b)
print('斜边c的长度为:%d'%c)

# 运行结果
'''
输入直角边a的长度:6
输入直角边b的长度:8
斜边c的长度为:10
'''

补充:eval()函数用来执行一个字符串的表达式。eval()括号里面带有单引号、双引号或三引号。例如:

          

2、编写一个程序,用于实现两个数的交换。(两个数可以是任何类型)

x = input('输入x的值:')
y = input('输入y的值:')
x,y = y,x
print("x = ", x)
print("y = ", y)

# 运行结果
'''
输入x的值:99
输入y的值:ab
x =  ab
y =  99
'''

3、人机比赛猜拳游戏

import random   # from random import randint
player_input = input("请输入(0剪刀、1石头、2布:)")
player = int(player_input)
computer = random.randint(0, 2)    #电脑在(0,2)之间随机产生一个数
if((player==0 and computer==2) or (player==1 and computer==0) or (player==2 and computer==0)):
    print("电脑出的是%s,恭喜,你赢了!"%computer)
elif((player==0 and computer==0) or (player==1 and computer==1) or (player==2 and computer==2)):
    print("电脑出的是%s,平局"%computer)
else:
    print("电脑出的是%s,你输了,再接再厉!"%computer)

# 运行结果(多种)
'''
请输入(0剪刀、1石头、2布:)2
电脑出的是0,恭喜,你赢了!
'''
        

4、九九乘法表(while循环)

i = 1
while i < 10:
    j = 1
    while j <= i:
        print("%d×%d=%-2d"%(j, i, i*j), end='  ')
        j += 1
    print("\n")
    i += 1

# 运行结果
'''
1×1=1   

1×2=2   2×2=4   

1×3=3   2×3=6   3×3=9   

1×4=4   2×4=8   3×4=12  4×4=16  

1×5=5   2×5=10  3×5=15  4×5=20  5×5=25  

1×6=6   2×6=12  3×6=18  4×6=24  5×6=30  6×6=36  

1×7=7   2×7=14  3×7=21  4×7=28  5×7=35  6×7=42  7×7=49  

1×8=8   2×8=16  3×8=24  4×8=32  5×8=40  6×8=48  7×8=56  8×8=64  

1×9=9   2×9=18  3×9=27  4×9=36  5×9=45  6×9=54  7×9=63  8×9=72  9×9=81
'''

5、用for循环输出0~10之间的整数

for i in range(11):    
    print(i, end=' ')

# 运行结果
'''
0 1 2 3 4 5 6 7 8 9 10 
'''

6、接收输入的一行字符,统计出字符串中包含数字的个数

str = input('输入一行字符:')
num = 0
for i in str:
    if i.isdigit():
        num += 1
print(num)

# 运行结果
'''
输入一行字符:123abcd-xyz
3
'''

补充:isdigit()方法检测字符串是否只由数字组成。

     语法:str.isdigit()                # 字符串中包含数字返回True,否则返回False

7、编写一个函数,用于判断用户输入的字符串是否由小写字母和数字组成

# 自己写的:
str = input('用户输入字符串:')
print(str.isalnum())      

# 答案:
def message():     # def 定义一个函数
    myStr = input("请输入密码,只能为字母和数字:")
    if myStr.isalnum():
        print("符合要求")
    else:
        print("不符合要求")

8、用户输入一个字符串,将下标为偶数的字符合并成一个新的字符串A,再将下标为奇数的字符提出合并成一个新的字符串B,再将字符串A和B连接起来并输出

str = input("输入一个字符串:")
A = ""
B = ""
for i in str[::2]:   # 从前往后,取步长为2的字符
    A += i
for j in str[1::2]:  # 其中[1::]表示下标1开始到最后1个之间的字符
    B += j
C = A + B
print(C)

# 运行结果
'''
输入一个字符串:abcdefg
acegbdf
'''

9、请编写一个程序,用于统计字符串中每个字母出现的次数(字母忽略大小写,a和A看做是一个字母),统计出的结果,请按照[‘a’:3,’b’:2]的格式输出。

str = []
def count():
    mystr = input("请输入只包含字母的字符串:")
    if mystr.isalpha():
        newstr = mystr.lower()  # 字母全部变成小写,统一字符
        for s in newstr:
            str.append(s)  # 将统一后的字符串中的字符逐一添加到str数组中
        ss = {}  # 定义一个字典
        for i in str:
            if str.count(i) >= 1:
                ss[i] = str.count(i)
        print(ss)
    else:
        print("输入的内容错误")
count()


# 运行结果
'''
请输入只包含字母的字符串:ahihiSaSs
{'a': 2, 'h': 2, 'i': 2, 's': 3}

请输入只包含字母的字符串:00
输入的内容错误
'''

10、用户输入一个字符串,请将字符串中所有字母全部后移动一位,最后一个字母放到字符串的开头,最后将新的字符串输出。

str = []
result = ""
mystr = input("输入一个字符串:")
for s in mystr:
    str.append(s)
last = str[-1]
str.remove(last)
str.insert(0, last)
for i in str:
    result += i
print(result)


# 运行结果
'''
输入一个字符串:zxcvbnm
mzxcvbn
'''

11、假设有个列表存储奇数个数字,请编写程序,输出中间位置的数字。

arr = []
str = input("输入一串数字:")
for i in str:
    arr.append(i)
arr.sort()
length = len(arr)
n = int(length/2)
print("中间位置的数字为:", arr[n])


# 运行结果
'''
输入一串数字:123456789
中间位置的数字为: 5
'''

12、已知info=[1,2,3,4,5],请通过两种编程方法,将列表变成info=[5,4,3,2,1]。

# 方法一
info = [1,2,3,4,5]
info.reverse()
print(info)

# 方法二
info = [1,2,3,4,5]
info.sort(reverse = True)
print(info)


# 运行结果
'''
[5, 4, 3, 2, 1]
'''

13、用户输入n,然后输入n个整数到列表中,列表中的n个整数需要使用冒泡进行排序,并将排序后的结果输出。

arr = []
n = int(input("输入整数n="))
i = 0
while i < n:
    a = int(input("输入第%d个数:"%(i+1)))
    arr.append(a)
    i += 1
print("排序前:", arr)
for i in range(n):
    for j in range(1, n):
        if arr[j-1] > arr[j]:
            arr[j-1],arr[j] = arr[j],arr[j-1]   # 两者交换位置
print("使用冒泡排序:", arr)


# 运行结果
'''
输入整数n=5
输入第1个数:8
输入第2个数:6
输入第3个数:7
输入第4个数:1
输入第5个数:9
排序前: [8, 6, 7, 1, 9]
使用冒泡排序: [1, 6, 7, 8, 9]
'''

14、请编写一个程序,实现删除列表中重复元素的功能。

arr = []
str = input("输入一个字符串:")
for i in str:
    arr.append(i)
list = set(arr)   # 列表转为集合
print(list)


# 运行代码
'''
输入一个字符串:qrqtrtwe
{'w', 'r', 'q', 'e', 't'}
'''

15、假设有两个3×3的矩阵,请编写一个程序,计算这两个矩阵的和并输出。

def add(a, b):   # 定义add函数
    i, j = len(a), len(a[0])  # i是行数,j是列数
    c = [[0]*j]*i   # 初始化c矩阵,等于0
    for m in range(i):
        for n in range(j):
            c[m][n] = a[m][n] + b[m][n]
    return c
a = [[1,2,3],[4,5,6],[7,8,9]]
b = [[9,8,7],[6,5,4],[3,2,1]]
c = add(a, b)
print(c)


# 运行结果
'''
[[10, 10, 10], [10, 10, 10], [10, 10, 10]]
'''

16、请编写一个程序,使用字典存储学生信息,学生信息包括学号和姓名,请根据学生学号从小到大输出学生的信息。

d = {}
i = 0
while i < 3:
    id = input("输入学号:")
    name = input("输入名字:")
    d.__setitem__(id, name)
    i += 1
print("排序前:%s"%d)
def dictTolist(d:dict):   # 将字典转化为列表,因为字典是无序的,列表有序
    key = d.keys()
    value = d.values()
    list = [(K,V) for K,V in zip(key, value)]
    return list
new = sorted(dictTolist(d), key=lambda x:x[0], reverse=False)   # lambda匿名函数
print("排序后:%s"%new)


# 运行结果
'''
输入学号:89
输入名字:zz
输入学号:65
输入名字:aa
输入学号:963
输入名字:ff
排序前:{'89': 'zz', '65': 'aa', '963': 'ff'}
排序后:[('65', 'aa'), ('89', 'zz'), ('963', 'ff')]
'''

17、已知一个字典包含若干员工信息(姓名和性别),请编写一个函数,删除性别为男的员工信息。

def delMale(dict):
    keys = []
    values = []
    for (key, value) in dict.items():
        keys.append(key)
        values.append(value)
    for value in values:
        if value == 0:   # 0表示男生
            index = values.index(value)   # index()方法检测字符串中是否包含子字符串
            arrkey = keys[index]   # arrkey存放男生的名字
            del dict[arrkey]
            values[index] = 3
            keys[index] = "占位"
d = {"小明":0, "小红":1, "小兰":1, "小白":0}
print("删除前:%s"%d)
delMale(d)
print("删除后:%s"%d)
            

# 运行结果
'''
删除前:{'小明': 0, '小红': 1, '小兰': 1, '小白': 0}
删除后:{'小红': 1, '小兰': 1}
'''

18、已知一个列表存储了多个整数,请编写函数,删除列表中的素数。

arr = [12,45,78,96,30,75,92,15,21]  
b=[] # 用来存储非素数
for element in arr:
    if element > 1:   # 素数大于1
        for i in range (2,element):
            if (element % i) == 0:
                b.append(element)
                break
            else:
                break
print(b)


# 运行结果
'''
[12, 78, 96, 30, 92]
'''

 

  • 11
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值