Python头歌实训之函数

1.定义判断质数的函数

def isprime(a):
    for i in range(2, a):
        if a%i == 0:
            return False
            break
    else:
        return True
#代码开始
#代码结束
n = eval(input("请输入一个数"))
if isprime(n):
    print(n,"是一个质数")
else:
    print(n,"不是一个质数")

2.绝对质数

from isprime import *
#代码开始
s = 0
for i in range(10,100):
    x = int(str(i)[::-1])
    if isprime(i) and isprime(x):
        print(i, end="")
        s += 1
        print('    ',end='')
        if s%3 == 0:
            print()
#代码结束

3.验证哥赫巴德猜想

from isprime import *
#代码开始
l = []
for i in range(2,100):
    if isprime(i):
        l.append(i)
a, b, s = 0, 0, 0
for i in range(4,100,2):
    s += 1
    for j in l:
        for k in l:
            if j+k == i:
                a = k
                b = j
    print('{:2}={:2}+{:2}'.format(i,a,b)+'\t', end='')
    if s%5 == 0:
        print()
#代码结束

4.判断三角形类型

def sjx(a, b, c):
    #代码开始
    if a+b <= c or b+c <= a or a+c <= b:
        return 0
    elif a == b == c:
        return 1
    elif a == b != c or b == c != a or a == c != b:
        return 2
    elif a*a == b*b + c*c or b*b == a*a + c*c or c*c == a*a + b*b:
        return 3
    else:
        return 4
    #代码结束
x = eval(input())
y = eval(input())
z = eval(input())
#代码开始
m = sjx(x, y, z)
#代码结束
if m == 0:
    print("不能构成三角形")
elif m == 1:
    print("等边三角形")
elif m == 2:
    print("等腰三角形")
elif m == 3:
    print("直角三角形")
else:
    print("一般三角形")

5.成语字典精确查询

def cyjl():
    d = {}
    f1=open("sy10//成语.txt","r",encoding="utf8")
    #代码开始
    for i in f1:
        i.strip()
        x = i.find(' ')
        d[i[:x]] = i[x+1:]
    #代码结束
    f1.close()
    return d


def jqcx(s,d):
#代码开始
    if s not in d.keys():
        print('没有此成语')
    else:
        print(d[s].strip())
#代码结束


cyzd = cyjl()
c = ''
while True:
    #代码开始
    c=input("1精确查询0退出")
    if c == '0':
        break
    x = input('请输入成语')
    jqcx(x, cyzd)
    #代码结束

6.成语字典模糊查询

def cyjl():
    f1 = open("sy10//成语.txt", "r", encoding="utf8")
    d = {}
    for line in f1:
        cy=line[:line.find("拼音")].strip()
        cyjx=line[line.find("拼音"):].strip()
        d[cy]=cyjx
    f1.close()
    return d


def mhcx():
    x = input('请输入词语')
    for i in x:
        for j in cyzd.keys():
            if i in j:
                print(j)

    
def jqcx(): 
    x = input("请输入成语")
    if x not in cyzd.keys():
        print("成语不存在")
    else:
        print(cyzd[x])


cyzd = cyjl()
while True:
    c=input("1精确查询2模糊查询0退出")
    if c == "0":
        break
    if c == '1':
        jqcx()
    if c == '2':
        mhcx()

7.成语接龙小游戏

def cyjl():
    f1 = open("sy10//成语.txt", "r", encoding="utf8")
    for line in f1:
        cy = line[:line.find("拼音")].strip()
        cyjx = line[line.find("拼音"):].strip()
        cyzd[cy] = cyjx
    f1.close()


def mhcx():
    x = input("请输入成语")
    for y in cyzd.keys():
        if x  in y:
            print(y)

    
def jqcx():
    x = input("请输入成语") 
    if x not in cyzd.keys():
        print("成语不存在")
    else:
        print(cyzd[x])

def yx():
    s, b = 0, 0
    a = ''
    while True:
        x = input('请输入成语')
        b += 1
        if b != 1 and x[0] != a[-1]:
            print('没有接龙,你输了')
            break
        if x not in cyzd.keys():
            print('非法成语,你输了')
            break
        for i in cyzd.keys():
            if x[-1] == i[0]:
                print(i)
                a = i
                break
        else:
            s = 1
        if s == 1:
            print('你赢了')
            break
        else:
            continue


cyzd={}
cyjl()
c=input("1精确查询2模糊查询3成语接龙0退出")
while c!="0":
        if  c=="1":
            jqcx()
        elif c=="2":
            mhcx()
        elif c=="3":
            yx()
        c=input("1精确查询2模糊查询3成语接龙0退出")

你可能感兴趣的:(头歌实训,python)