python笔记-2020/09/07上午-字符串练习(6)

比较两个数的大小
def pd_max():
    num1 = int(input("请输入第一个整数:"))
    num2 = int(input("请输入第二个整数:"))
    print(max(num1, num2))
pd_max()
判断是否为闰年
def runnian():
    year = int(input("请输入年:"))
    if(year%4)==0:
        if(year%100)==0:
         print("不是闰年")
        else:
          print("是闰年")
    else:
     print("不是闰年")
runnian()
定义函数,输入两个数,前者大输出1,后者大输出-1,一样大输出0
def max_min(num1,num2):
    if num1>num2:
        return 1
    elif num1<num2:
        return -1
    elif num1 == num2:
        return 0
print(max_min(num1=10,num2 =20))
定义函数,判断输入的正整数是否为质数
def prime():
    num1 = int(input("请输入一个正整数:"))
    if num1 < 2:
        print("%d不是质数!"%num1)
    else:
        for i in range(2,num1):
            if num1 % i == 0:
                print("%d不是质数!"%num1)
                break
        else:
            print("%d是质数!"%num1)
prime()
定义函数 计算斐波那契数列,5个月后有多少只兔子
def fib(n):
    if n==1 or n==2:
        return 1
    return fib(n-1)+fib(n-2)
print(fib(5))
一.将以下功能使用对应的代码表达
str0 = “akhmopwqecm”
1. 获取 m 第一次出现的位置
2. 获取 m 出现的所有位置
3. 获取 eqwpom 的子串 [提取原串反转]
str0 = "akhmopwqecm"
# 1
# print(str0.find("m"))
# 2
# def find_all(str0, s):
#     r_list = []
#     for r in range(len(str0)):
#         if str0[r] == s:
#             r_list.append(r)
#     print(r_list)
# find_all(str0, 'm')
# 3
# str0 = str0[::-1]
# print(str0[2:8])
二.统计字符串中字母和数字的个数,将总个数返回
比如传递 ‘abcdef$#& 123’ 返回9
str1 = input("请输入一个字符串:")
count = 0
for i in str1:
    if i.isdigit():
        count += 1
    elif i.isalnum():
        count += 1
print(count)
三.利用递归完成传入数字n,求出 11 + 22 + 33 + … nn 的和
def fn(x):
    if x==1:
        return 1
    def f(x):
        if x==1:
            return 1
        return x**2
    return fn(x-1)+f(x)
n = int(input("请输入值"))
print(fn(n))
四。传递一个列表,将列表中的字典通过冒泡法按照年龄进行升序排列
字典格式固定为 {‘name’: ‘王宝强’, ‘age’: 30}
比如传递 [{‘name’: ‘周杰伦’, ‘age’: 36}, {‘name’: ‘王俊凯’, ‘age’: 18}, {‘name’: ‘张国立’, ‘age’: 52}]
返回 [{‘name’: ‘王俊凯’, ‘age’: 18}, {‘name’: ‘周杰伦’, ‘age’: 36}, {‘name’: ‘张国立’, ‘age’: 52}]
参数data数据格式
data = [{'name': '周杰伦', 'age': 36}, {'name': '王俊凯', 'age': 18}, {'name': '张国立', 'age': 52}]
# key为要排序的键
def bubble_sort(data,key):
    length = len(data)
    for i in range(len(data) - 1):
        for j in range(len(data) - 1):
            if (data[j][key] < data[j + 1][key]):
                tmp = data[j]
                data[j] = data[j + 1]
                data[j + 1] = tmp
    return data
bubble_sort(data, 'age')

&

names = [{'name': '周杰伦', 'age': 36}, {'name': '王俊凯', 'age': 18}, {'name': '张国立', 'age': 52}]
def bubble_sort(name,key):
    length = len(name)
    for i in range(len(name)-1):
        for j in range(len(name)-1):
            if(name[j][key]<name[j+1][key]):
                tmp=name[j]
                name[j]=name[j+1]
                name[j+1]=tmp
    return name
bubble_sort(names,"name")

五, 设计一个函数,传入两个代表日期的字符串,如“2018-2-26”、“2017-12-12”,计算两个日期相差多少天
import time
import sys

def dateinput():
        date = input('请输入日期: ')
        return date

def datetrans(tdate):
        spdate = tdate.replace("/","-")
        try:
                datesec = time.strptime(spdate,'%Y-%m-%d')
        except ValueError:
                print("%s is not a rightful date!!" % tdate)
                sys.exit(1)
        return time.mktime(datesec)

def daysdiff(d1,d2):
        daysec = 24 * 60 * 60
        return int(( d1 - d2 )/daysec)

date1 = dateinput()
date2 = dateinput()
date1sec = datetrans(date1)
date2sec = datetrans(date2)
print("这两天相差: ",daysdiff(date2sec,date1sec))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值