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)

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

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

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)
 

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=' ')

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

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

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)

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

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)

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

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

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)
 

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)

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

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

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)

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)
 

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)

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)
发布了61 篇原创文章 · 获赞 8 · 访问量 5154
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 黑客帝国 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览