Python 五个案例代码

1.设计程序,判断一个字符串是否对称

P96 案例4.1.3

def reverse(s):
t = ""
for i in range(len(s)-1, -1, -1):
t = t + s[i]
return t
def isSymmetry(s):
t = reverse(s)
if s == t:
return 1
else:
return 0

s = input("Enter a string:")
if isSymmetry(s) == 1:
print("对称!")
else:
print("不对称!")

 

2.输入一个有效时间,并显示该时间

P78 案例 3.5.3

def myTime():
h = int(input("请输入一个时针数:"))
if h < 0 or h > 23:
raise Exception("无效的时!")
m = int(input("请输入一个分针数:"))
if m < 0 or m > 59:
raise Exception("无效的分!")
s = int(input("请输入一个秒针数:"))
if s < 0 or s > 59:
raise Exception("无效的秒!")
print("%02d: %02d: %02d" % (h, m, s))

try:
myTime()
except Exception as e:
print(e)

 

3.输入两个正整数,求出他们的最大公约数与最小公倍数

P62 案例3.1.1

def maxDivider(a, b):
c = a
if b < a:
c = b
for d in range(c, 0, -1):
if a%d == 0 and b%d == 0:
return d

def minMultiplier(a, b):
c = a
if b > a:
c = b
m = a*b
for d in range(c, m+1, 1):
if d%a == 0 and d%b == 0:
return d

a = int(input("a = "))
b = int(input("b = "))

print("最大公约数", maxDivider(a, b))
print("最小公倍数", minMultiplier(a, b))

 

4.验证歌德巴赫猜想

P69 案例3.3.3

def IsPrime(m):
for n in range(2, m):
if m%n == 0:
return 0
return 1

for n in range(6, 101, 2):
for p in range(3, n+1, 2):
q = n - p
if IsPrime(p) and IsPrime(q):
print(n, "=", p, "+", q)
break

 

5.对一个正整数分解质因数,例如输入90,打印出90=2*3*3*5

P45 案例2.7.5

n = int(input("Enter a integer:"))
first = True
print(n, end=" ")
i = 2
while i <= n:
while n%i == 0:
if first:
print("=", i, end=" ")
first = False
else:
print("*", i, end=" ")
n = n//i
i = i + 1


posted @ 2021-12-09 15:07  影子君  阅读(574)  评论(0编辑  收藏  举报