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]
'''