Python第八天练习

一.习题解析

1、定义函数,完成两个数加减乘除的计算 提示:def cal(num1,num2,opr): return result

代码如下:

def cal(num1,num2):
    add = num1 + num2
    minus = num1 - num2
    multiply = num1 * num2
    divide = num1 / num2
    return '两数相加结果为:'+str(add),'两数相减结果为:'+str(minus),'两数相乘结果为:'+str(multiply),'两数相除结果为:'+str(divide)
result = cal(50,100)
for i in result:
    print(i)

运行结果为:

两数相加结果为:150
两数相减结果为:-50
两数相乘结果为:5000
两数相除结果为:0.5

2、定义函数,计算矩形的周长和面积

代码如下:

def rectangle(weight,height):
    perimeter = (weight + height) * 2
    area = weight * height
    return f'矩形周长为:{perimeter},面积为:{area}'

result = rectangle(10,20)
print(result)

运行结果为:

矩形周长为:60,面积为:200

3、定义函数,从文件名中获取后缀,如e:/project/demo/homework.py获取的后缀.py

代码如下:

def obtain(file):
    result = file.split(".")[-1]
    return result

suffix = obtain('C:\Angel\Desktop\千与千寻.mkv')
print(f'该文件后缀名为:.{suffix}')

运行结果为:

该文件后缀名为:.mkv

4、定义函数,从请求地址中提取出域名 如http://www.qqzone.com?qqid=1503938233&pwd=111111,域名为www.qqzone.com

代码如下:

from urllib.parse import urlparse
def url(internet):
    result = urlparse(internet)
    return result

domain = url('https://space.bilibili.com/32806487?spm_id_from=333.1007.0.0')
print((f'该网址域名为:{domain.netloc}'))

运行结果为:

该网址域名为:space.bilibili.com

5、定义函数,判断邮箱格式是否正确,校验规则:邮箱中必须包含@符号

代码如下:

def mail(email):
    if '@' in email:
        return True
    else:
        return False

email = input('请输入您的邮箱:')
print(mail(email))

运行结果为:

请输入您的邮箱:>? 1503938233@qq.com
True

6、定义函数,判断一个字符串中是否既有数字又有字母

代码如下:

def judge(str):
    if str.isalnum(): #判断是否全是字母或数字
        if str.isalpha() or str.isdecimal():  #判断是否全是字母或是否全部都是数字
            return False
        else:
            return True
 
 result = input('请输入一个字符:')
print(judge(result))

运行结果为:

请输入一个字符:>? aa22
True

7、定义函数,统计一个列表中各个字符出现的次数

代码如下:

def statistics(lst):
    dict = {}
    for key in lst:
        dict[key] = dict.get(key, 0) + 1
    return dict

lst = [1,2,5,4,2,6,8,9,9,9,9,1]
result = statistics(lst)
print(result)

运行结果为:

{1: 2, 2: 2, 5: 1, 4: 1, 6: 1, 8: 1, 9: 4}

8、定义函数,判断一个列表中是否有4个连续相同的数

代码如下:

def check(lst):
    for i in range(0,len(lst) - 3):
        if lst[i] == lst[i + 3]:
            for j in range(i + 1 , i + 3):
                if lst[i] == lst[j]:
                    return True
    else:
        return False

lst = [1,1,1,1,5,6,2,5,5,5,5,1,9]
result = check(lst)
print(result)

运行结果为:

True

9、定义函数,对整数列表数据按奇偶排序,偶数在前,奇数在后 示例: 输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。

代码如下:

def sorts(lst):
    odd = []
    even = []
    for i in range(len(lst)):
        if lst[i] % 2 == 0:
            even.append(lst[i])
        else:
            odd.append(lst[i])
    result = even + odd
    return result
lst = [1,5,6,2,3,7,9,8]
print(sorts(lst))

运行结果为:

[6, 2, 8, 1, 5, 3, 7, 9]

10、输出前100个回文素数,且每10个换行 提示:定义函数,判断一个数是否是回文数 定义函数,判断一个数是否是素数

代码如下:

def palindrome(str):
    result = str[ : : -1]
    if str == result:
        return True
    else:
        return False

def prime(num):
    a = 0
    for i in range(2,num):
        if num % i == 0:
            a += 1
    if a >= 1:
        return False
    else:
        return True

b = 0
for i in range(0,99999999999999999):
    if palindrome(str(i)) and prime(i):
        print(i,end=' ')
        b += 1
        if b % 10 == 0:
            print()
    if b == 100:
        break

运行结果为:

0 1 2 3 5 7 11 101 131 151 
181 191 313 353 373 383 727 757 787 797 
919 929 10301 10501 10601 11311 11411 12421 12721 12821 
13331 13831 13931 14341 14741 15451 15551 16061 16361 16561 
16661 17471 17971 18181 18481 19391 19891 19991 30103 30203 
30403 30703 30803 31013 31513 32323 32423 33533 34543 34843 
35053 35153 35353 35753 36263 36563 37273 37573 38083 38183 
38783 39293 70207 70507 70607 71317 71917 72227 72727 73037 
73237 73637 74047 74747 75557 76367 76667 77377 77477 77977 
78487 78787 78887 79397 79697 79997 90709 91019 93139 93239 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值