5.1 程序3.5输出了一个简单的田字格,用函数简化代码,输入超大田字格。示例如下:
def top():
t = ('+' + '--'*4)
return t*4 + '+'
def body():
b = ('|' + ' '*8 )
return b*5
#拼接起来即可
for i in range(4):
print(top())
for i in range(4):
print(body())
print(top())
5.2 实现isOdd()函数,参数为整数,如果整数为奇数,返回True,否则返回False。代码:
#实现isOdd函数
def isOdd(num):
num = int(num)#转换为整型作为参数
if num%2 != 0:
return True
else:
return False
result = isOdd(3)
print(result)
5.3 实现isNum()函数,参数为一个字符串,如果这个字符串属于整数、浮点数或复数的表示,则返回True,否则返回False。代码如下:
#实现isNum函数
def isNum(str1):
if type(str1) in [complex,int,float]:
return True
else:
return False
result = isNum(22)
print(result)
5.4 实现multi()函数,参数个数不限。返回所有参数的乘积。代码:
#实现mulit()函数
def multi(a,*b):
for n in b:
a *= n
return a
s = multi(1,9,9)#1*任何数都为任何数
print(s)
5.5 实现isPrime()函数,参数为整数,要有异常处理。如果整数是质数,返回True,否则返回False。代码:
def isPrime(num):
if num <= 1:
return False
num1 = 2
while num1 * num1 <= num:
if num % num1 == 0:#如果输入的数字可以被其他数字整除,也不是素数
return False
num1 += 1
return True
while True:
try:
result = eval(input("请输入整数:"))
print(isPrime(result))
except:
print("输入格式有误!")
5.6 使用datetime库,对时间输出不少于10种日期格式。代码:
#对自己生日输出十钟格式
from datetime import datetime
today = datetime.now()#返回当前日期
print(today)
print("今天是{0:%Y}年{0:%m}月{0:%d}日".format(today))#运用format的格式化字符串方法
today = datetime.utcnow()#返回当前日期的UTC表示
print(today)
today = datetime(2020,4,14,12,00,00)#返回一个datetime类型的对象,时间可以自己模拟
print(today)
print(today.isoformat())#采用ISO 8601标准时间显示
print(today.weekday())#返回一个整数代表星期几,星期一为 0,星期天为 6。
print(today.isoweekday())#根据日期计算周几
print(today.isocalendar())#返回一个 3 元组 (ISO 年份, ISO 周序号, ISO 周日期)
print(today.strftime('%Y.%m.%d %H:%M:%S'))#此方法是格式化字符串的最好方法,支持任意通用格式
print(today.strftime('%Y.%m.%d'))
print(today.strftime('%A, %d. %B %Y %I:%M%p'))
5.7 汉诺塔问题。汉诺塔问题是一个数学难题,其问题秒速为如何将所有圆盘编写一个汉诺塔的移动函数,采用递归方法解决这个难题,要求输入汉诺塔的层数,输出整个移动流程。(这道题还是无法去吃透代码)代码示例:
# 汉诺塔问题
def hanoi(n,x,y,z):
if n == 1:
print(x,'-->',z)
else:
hanoi(n-1,x,z,y)#将前n-1的盘子从x移动到y
print(x,'-->',z)
hanoi(n-1,y,x,z)#将后n-1的盘子从y移动到z
n = int(input('请输入汉诺塔层数:'))
hanoi(n,'1','2','3')
# 疑问:为什么 第二个参数 不会显示。
分享结束,这次做题还是相对进步许多,但是花的时间有点多。
如有代码出现错误,留下宝贵意见。
bye。