1.打招呼函数
name=input()
def say_hello(name):
n=name
print("你好,{},认识你很高兴!".format(n))
say_hello(name)
2.能否组成三角形
def is_triangle(a, b, c):
"""请实现函数"""
if a>0 and b>0 and c>0:
if (a+b)>c and (a+c)>b and (b+c)>a:
return 1
else:
return 0
else:
return -1
a=0
b=1
c=1
print(is_triangle(a, b, c))
3.转换秒为时间
def convert_from_seconds (seconds):
#day,h,m,s
int(seconds)
day=seconds//86400
h=(seconds-day*86400)//3600
m=(seconds-day*86400-h*3600)//60
s=(seconds-day*86400-h*3600-m*60)
return [day,h,m,s]
print(convert_from_seconds (610))
4.最大公约数
# 定义并实现函数 common_divisor
def common_divisor (num1, num2):
if num1>num2:
min=num2
else:
min=num1
for i in range(1,min+1):
if (num1%i)==0 and (num2%i)==0 :
result=i
return result
# 调用函数
result = common_divisor(24, 16)
print(result)
5.简单计算器实现
def addition (num1, num2):
return num1+num2
# 定义减法函数 subtraction
def subtraction (num1, num2):
return num1-num2
# 定义乘法函数 multiplication
def multiplication (num1, num2):
return num1*num2
# 定义除法函数 division
def division (num1, num2):
return num1/num2
6.杨辉三角
# 定义函数 pascal_triangle 接受参数 num,并返回杨辉三角第 num 行
def pascal_triangle (num):
l1 =[1]
l2 =[]
n=0
while n< num:
l2=l1
l1=[sum(t) for t in zip([0]+l1,l1+[0])]
n+=1
return l2
print(pascal_triangle(3))
7.7段数码管绘制
#七段数码管的绘制
import turtle as timport timedef drawgap(): t.pu() t.fd(5)def drawline(draw):#绘制单段数码管 t.pendown() if draw else t.penup() t.fd(40) drawgap() t.right(90)def drawdigit(digit):#根据数值绘制七段数码管 drawline(True) if digit in [2,3,4,5,6,8,9] else drawline(False) drawline(True) if digit in [0,1,3,4,5,6,7,8,9] else drawline(False) drawline(True) if digit in [0,2,3,5,6,8,9] else drawline(False) drawline(True) if digit in [0,2,6,8] else drawline(False) t.left(90) drawline(True) if digit in [0,4,5,6,8,9] else drawline(False) drawline(True) if digit in [0,2,3,5,6,7,8,9] else drawline(False) drawline(True) if digit in [0,1,2,3,4,7,8,9] else drawline(False) t.left(180) t.pu()#为绘制后续数字确定位置 t.fd(20)#为绘制后续数字确定位置def drawdate(date):#获取日期 t.pencolor("green") for i in date: if i == '年': t.write('年',font = ("Arial",18,"normal")) t.pencolor("blue") t.fd(40) elif i == "月": t.write('月',font = ("Arial",18,"normal")) t.pencolor("yellow") t.fd(40) elif i == "日": t.write('日',font = ("Arial",18,"normal")) t.pencolor("red") else: drawdigit(eval(i))#通过eval()将数字变成整数def main(date): t.setup(1500,650,20,20) t.pu() t.fd(-600) t.pensize(5) drawdate(time.strftime("%Y年%m月%d日",time.gmtime())) t.fd(40) t.color("red") drawdate(date) t.hideturtle() t.done()main(input("请输入一个年月日:\n"))
8.斐波那契数列计算
# 定义一个 fbi 函数,参数 num,返回斐波那契数列第 num 项的值。
def fbi (num):
F=[1,1,""]
for i in range (2,num):
F[i]=F[i-1]+F[i-2]
F.append(F[i])
return F[num]
print(fbi (4))
9.汉诺塔实践
# 请在...补充一行或多行代码
count = 0
def hanoi (n, src, dst, mid):
global count
if n == 1:
print("{}: {}->{}".format(1, src, dst))
count += 1
else:
hanoi (n-1, src, mid,dst)
print("{}: {}->{}".format(n, src, dst))
count+=1
hanoi(n-1, mid, dst, src)
hanoi(3, "src", "dst", "mid")
print(count)
10.科赫雪花小包裹
import turtledef koch(size, n): if n==0: turtle.fd(size) else: for angle in [0,60,-120,60]: turtle.left(angle) koch(size/3,n-1)def main(level): turtle.setup(600, 600) turtle.penup() turtle.goto(-200, 100) turtle.pendown() turtle.pensize(2) #level=2 koch(400,level) turtle.right(120) koch(400,level) turtle.right(120) koch(400,level) turtle.hideturtle()try: level = eval(input("请输入科赫曲线的阶: ")) main(level)except: print("输入错误")
11.合法的用户名
"""
实现 check_username 函数,检查 username 是否有效
username 长度在 6-18 位之间,返回 True,否则返回 False
"""
def check_username(username):
if 6<=len(str(username))<=18:
return True
else:
return False
username=input()
print(check_username(username))
12.密码的强度
"""实现密码强度计算函数:1. 实现函数 passworld_strength 返回 0-10 的数值,表示强度,数值越高,密码强度越强2. 密码长度在 6 位及以上,强度 +1, 在 8 位及以上,强度 +2, 在 12 位及以上,强度 +43. 有大写字母,强度 +24. 除字母外,还包含数字,强度 +25. 有除字母、数字以外字符,强度 +2"""
def password_strength(pwd): intensity=0 if len(pwd)>=12: intensity+=4 elif 8<=len(pwd)<12: intensity+=2 elif 6<=len(pwd)<8: intensity+=1 pwdlist=list(pwd) for i in range(len(pwd)): if 'A'<=pwdlist[i]<='Z': intensity+=2 break for i in range(len(pwd)): if 'A'<=pwdlist[i]<='Z' or 'a'<=pwdlist[i]<='z': for j in range(len(pwd)): if '0'<=pwdlist[j]<='9': intensity+=2 break break for i in range(len(pwd)): if ('null'<=pwdlist[i]<'0') or ('9'<pwdlist[i]<='@') or ('Z'<pwdlist[i]<='`') or ('z'<pwdlist[i]<='~'): intensity+=2 break return intensitypwd1=str(input())print(password_strength(pwd1))
13.藏头诗
poem1 = [
"芦花丛中一扁舟",
"俊杰俄从此地游",
"义士若能知此理",
"反躬难逃可无忧"
]
poem2 = [
"我画蓝江水",
"爱晚亭上枫",
"秋月溶溶照",
"香烟袅袅绕"
]
def acrostic(poem):
newstr=[]
for i in range(len(poem)):
str1=poem[i]
rstr=list(str1)
newstr.append(rstr[0])
str1=""
newstr1=''.join(newstr)
return newstr1
print(acrostic(poem1))
print(acrostic(poem2))
14.统计字符出现次数
"""
统计字符串 string 中出现字符 char 的次数,并返回;
char 是长度为 1 的字符串。
"""
def sum_char(string, char):
str1=list(string)
count=0
for i in range(len(string)):
if str1[i]==char:
count+=1
return count
str2=str(input())
char1=str(input())
print(sum_char(str2, char1))
15.文件名扩展
"""
获取文件扩展名
说明:实现 file_ext 函数,该函数接受一个表示文件名的字符串参数 filename,返回它的扩展名
"""
def file_ext(filename):
str1=list(filename)
for i in range(len(filename)):
if str1[i]!=".":
continue
elif str1[i]==".":
str2=str1[i+1:]
str3=''.join(str2)
return str3
break
else:
return "error"
filename1=input()
print(file_ext(filename1))