(1)定义函数 max(x, y, z),返回三个整数的输⼊的最⼤值。
def max(x, y, z):
if x>=y>=z or x>=z>=y:
return x
elif y>=x>=z or y>=z>=x:
return y
elif z>=x>=y or z>=y>=x:
return z
a = max(4, 5, 7)
print(f"这三个数字中的最大值为{a}")
(2)定义函数 count( ) ,统计⼀个字符串中大写字母、⼩写字母、数字的个数,并以字典为结果返回给调用者。
def count(s):
smallCount=0
bigCount=0
numberCount=0
for i in s:
if i>='a' and i<='z':
smallCount=smallCount+1
elif i>='A'and i<='Z':
bigCount=bigCount+1
elif i>='0'and i<='9':
numberCount=numberCount+1
print(f"这个字符串中的大写字母有{bigCount}个,小写字母有{smallCount}个,字母有{numberCount}个")
aaa=input("请输入你的字符串:")
count(aaa)
(3)编写程序判断点是否在正方形内。有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断一个给定的点是否在这个正方形内(包括正方形边界)。如果点在正方形内,则输出yes,否则输出no。(点的坐标(m,n)由外部输入)
point = input("请输入一个点的坐标,用空格分开").split()
m = float(point[0])
n = float(point[1])
if -1<=m<=1 and -1<=n<=1:
print("yes")
else:
print("no")
(4)编写一个函数,计算输出三角形的面积。要求外部输入三边的边长,其为浮点数类型。已知三角的面积公式为:A=(s*(s-a)*(s-b)*(s-c)) ** 0.5,其中a,b,c为三角形三边的边长,并且s=(a+b+c)/2。
s = input("请输入三角形的三边长,用空格分开").split()
a = float(s[0])
b = float(s[1])
c = float(s[2])
def sjxmj(sa, sb, sc):
ss = (sa+sb+sc)/2
A =(ss*(ss-sa)*(ss-sb)*(ss-sc))**0.5 # **是幂运算
return A
B=sjxmj(a,b,c)
print(f"该三角形的面积为{B}")
(5)编写程序模拟轮盘抽奖游戏:
轮盘分为三部分: 一等奖, 二等奖和三等奖;轮盘转的时候是随机的。如果范围在[0,0.08)之间,代表一等奖,如果范围在[0.08,0.3)之间,代表2等奖,如果范围在[0.3, 1.0)之间,代表3等奖。
import random
def fun(num):
if num >= 0 and num < 0.08:
return 1
elif num >= 0.08 and num < 0.3:
return 2
else:
return 3
A= random.uniform(0,1)
B=fun(A)
print(f'该玩家获得了{B}等奖励')
(6)定义一个函数is_prime(n),判断输入的n是不是素数,是的话返回True,否则返回False。通过键盘输入两个整数X和Y,调用此函数输出两数范围之内素数的个数(包括X和Y)。
def is_prime(n):
import math
k = int(math.sqrt(n))
for i in range(2, k + 2):
if n % i == 0:
break
if i == k + 1:
return True
else:
return False
def num(a,b):
count=0
for i in range(a,b+1):
if is_prime(i):
count = count+1
print(f'共有{count}个素数')
X = int(input("请输入X的值:"))
Y = int(input("请输入Y的值:"))
num(X,Y)
(7)已知一个数如果从左往右读和从右往左读数字是相同的,则称这个数是回文数,如121,1221,15651都是回文数。现在请写出一个函数h(n),判断n是否为回文数,是的话返回True,否则返回False。利用上面的判断素数函数,找出所有既是回文数又是素数的3位十进制数。
def h(a):
b = len(str(a))
n=str(a)
for i in range(b):
if n==n[::-1]:
return True
else:
return False
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def main():
print("既是回文数又是素数的3位十进制数")
for j in range(100,1000):
if is_prime(j) and h(j):
print(j)
main()