文章目录
Python课上的作业。
贴到这里,供大家参考哦~
欢迎交流指正,共同进步,欸嘿!
这次把全部练习题写完了
至于运行结果,大家可以自己去试试
program practice 5.1 更大的田字格
def tian(n): #为了让田字格看起来更像是田字也是没谁了
a = 5*n+1
for i in range(1,a+1):
if i % 5 == 1:
print("+—————"*n,end="") #确定单个田字格的横线
print("+")
else:
print("| "*n,end="") #确定单个田字格竖线的间隔
print("|")
def main():
n = eval(input("please enter n for width you want: "))
tian(n) # 可以输出任意个田字格,因为截图原因就输出的了3*3个
main()
program practice 5.2 实现isOdd() 函数
def isOdd():
try:
i = eval(input("please enter a N you want: "))
if i % 2 == 1 : # 判断是否为奇数
return True
else:
return False
except:
print("the format u entered is wrong")
isOdd()
program practice 5.3 实现isNum()函数
def isnum(n):
try:
n = eval(n)
if isinstance(n,float) or isinstance(n,complex) or isinstance(n,int):
return True
else:
return False
except:
print("the format u entered is wrong")
n = input("please enter a C: ")
isnum(n)
program practice 5.4 实现multi函数
def multi(*b):
a = 1
for i in b:
if isinstance(i,float) or isinstance(i,complex) or isinstance(i,int):
a *= i
else:
print("the variable {} is illegal".format(i))
return a
multi(2,87,"ss")
program practice 5.5 实现isprime()函数
def isprime(): # 判断一个输入是否为素数
n = input("please enter a number: ")
try:
n = eval(n) # 若输入不为数字则报错
if isinstance(n,int): # 判断为整数
if n > 1 :# 网络上找到判断素数的方法
for i in range(2,n):
if n % i == 0: #遍历除法,若能被整除即不为素数
return False # 第一次被整除后就跳出
break
else:
return True
else: # 小于1的必然不是素数
return False
else:
return False
except:
print("the format is wrong ")
isprime()
program practice 5.6 生日输出
import datetime as t
bir = t.datetime(2020,1,30,13,2,3)
print(bir.strftime("%Y-%m-%d %X"))
print(bir.strftime("%Y-%B-%d %X"))
print(bir.strftime("%Y-%b-%d %X"))
print(bir.strftime("%x %X"))
print(bir.strftime("%x %X"))
print(bir.strftime("%Y|%m|%d|%H|%M|%S")) # %i 中间的字符随便改即可
program practice 5.7 汉诺塔
直接解释一波
# program practice 5.7 汉诺塔 只需要确定n与n-1的关系即可
c = 0
def hanoi(n,src,dst,mid): # n为第几块圆盘
global c
if n == 1:
print("{}:{}->{}".format(1,src,dst)) # 第一块圆盘的移动
c += 1
else: # n与n-1的移动
hanoi(n-1,src,mid,dst) #把n-1个圆盘移动到中柱子,而右柱子成为中转站
print("{}:{}->{}".format(n,src,dst)) # 再把第n个圆盘移动到右柱子
c += 1
hanoi(n-1,mid,dst,src) # 再把左柱子作为中转站,把在中柱子的n-1个圆盘移动到右柱子
hanoi(3,"A","C","B")
print("Toally, it took {} steps".format(c))
print(c)