当前位置: 首页 > article >正文

函数练习python

01.计算车费

题目描述

小红打车,起步价8元(3公里), 每公里收费 2 元,她打车行驶了 n 公里,通过函数封装并计算车费

输入描述

输入一个公里数

输出描述

输出应付车费

示例

输入:

5

输出:

12

def fare(km: int) -> int:
  """计算车费"""
  if 0 < km <= 3:
    money = 8
  else:
    money = 8 + (km - 3) * 2
  return money

km = int(input("输入一个公里数:"))
print(fare(km))

02.整数叠加

题目描述

读取一个0到1000之间的整数,并计算它各位数字之和

输入输出描述

输入一个[0,1000]之间的整数

输出该数字的各位数字之和

提示

需要使用内置函数 len() 或者 for循环

示例1

输入:

999

输出:

27

解释:

999各位数之和为9 + 9 + 9 = 27

def add(num):
  """遍历字符串中的每一个字符并将其转换为整型后相加"""
  digit=0
  for char in num:
    digit+=int(char)
  return digit

n = input("输入0-1000间的整数:")
print(add(n))

03.时间拆分

题目描述

输入分钟数,然后将该分钟数转换为年数和天数,假定一年有365天

输入描述

输入一个分钟数

输出描述

输出两行,第一行为年数,第二行为天数

示例

输入:

1000000000

输出:

190202

214

def div_times(times):
  """ 换算时间"""
  day = times /(24 * 60)
  year = day /365
  return year, day

times = int(input("输入分钟数:"))
year, day = div_times(times)
print(f"{year}\n{day}")

04.回文素数

题目描述

回文素数是指一个数既是素数又是回文数,例如131既是素数也是回文数

输出显示前100个回文素数,每行显示10个

示例

2 3 5 7 11 101 131 151 181 191

def decide_ss(num):
    """判断是否是素数"""
    for i in range(2,int(num**0.5)+1):
        if num%i==0:
    return False
    return True
def decide_hw(num):
    """判断是否为回文数"""
    num_str=str(num)
    if num_str==num_str[::-1]:
        return True
    else:
        return False
index=2
count=0
while True:

    if decide_ss(index)and decide_hw(index)==True:
            print(index,end=" ")
            count+=1
            if count%10==0:
                print()
    index+=1
    if count==100:
        break

05.反素数

题目描述

反素数是指一个将其逆向拼写后也是一个素数的非回文数,例如17和71都是素数但不是回文数,且反转后依旧是素数

输出显示前100个反素数,每行显示10个

def decide_ss(num):
    """判断是否为素数"""
    for i in range(2,int(num**0.5)+1):
        if num%i==0:
           return False
    return True


def decide_hw_and_f_ss(num):
    num_f=int(str(num)[::-1])
    return decide_ss(num)and decide_ss(num_f)and str(num)!=str(num_f)
index=2
count=0
while True:

    if decide_hw_and_f_ss(index):
            print(index,end=" ")
            count+=1
            if count%10==0:
                print()
    index+=1
    if count==100:
        break

06.双素数

题目描述

双素数是指一对差值为2的素数,例如3和5就是一对双素数,5和7也是一对双素数

输出显示小于1000的双素数

def decide_ss(num):
    """判断是否为素数"""
    for i in range(2,int(num**0.5)+1):
        if num%i==0:
            return False
    return True

count=0
for i in range(3,1000,2):
    if decide_ss(i) and decide_ss(i+2):
        print(f"{i} {i+2}",end=" ")
        count+=1
        if count%5==0:
            print()

07.梅森素数

如果一个素数可以写成$2^p-1$的形式,其中p是某个正整数,那么这个素数就称作梅森素数

输出p≤31的所有梅森素数

ef decide_ss(num):
    """判断是否为素数"""
    for i in range(2,int(num**0.5)+1):
        if num%i==0:
            return False
    return num
for i in range(2,32):
    """判断是否为梅森素数"""
    ms_num=2**i-1
    if decide_ss(ms_num):
        print(ms_num,end=" ")

08.堆叠相加

题目描述

现有堆叠相加模式$a+aa+aaa+aaaa+aaaaa+......$

例如:$2+22+222+2222+22222$,其中a为2,且有5组数字

输入输出描述

输入两个数据分别为数字a和组数n

输出按照堆叠相加模式算出的和

示例

输入:

3 4

输出:

3702

解释:

3 + 33 + 333 + 3333 = 3702

def overlap_add(n1,n2):
    
    item=0
    result=0
    for i in range(n2):
        item=item*10+n1
        result+=item
    return result

#输入两个整数用空格分开
num1,num2=map(int,input("输入两个数分别为数字和组数:").split())
print(overlap_add(num1,num2))

09.检测密码

题目描述

一些网站会给密码强加一些规则:

(1)密码必须至少有8个字符

(2)密码只能包含英文字母和数字

(3)密码应该至少包含两个数字

(4)密码应该至少包含两个大写字母

如果密码符合规则,输出Yes;否则输出No

输入输出描述

输入一串密码

输出该密码是否符合规则

示例1

输入:

123456ab

输出:

No

示例2

输入:

123abcABC

输出:

Yes

def decide_number(num):
  """判断数字的个数"""
  item = 0
  for char in num:
    if 48 <= ord(char) <= 57:
      item += 1
  return item >= 2


def decide_ch(num):
  """判断大写字母的个数"""
  item = 0
  for char in num:
    if 65 <= ord(char) <= 91:
      item += 1
  return item >= 2


def decide_pw(pwd):
  count = 0
  if len(pwd) <= 8:
    return "No"
  """isalnum() 判断字符串中是否含数字和字母"""
  if pwd.isalnum() and decide_number(pwd) and decide_ch(pwd):
    return "Yes"
  else:
    return "No"


password = input()
print(decide_pw(password))

10.指定等级

题目描述

读入学生成绩,获取最高分best,然后根据下面的规则赋等级值:

(1)如果分数≥best-10,等级为A

(2)如果分数≥best-20,等级为B

(3)如果分数≥best-30,等级为C

(4)如果分数≥best-40,等级为D

(5)其他情况,等级为F

输入输出描述

输入两行,第一行输入学生人数n,第二行输入n个学生的成绩

输入n行,表示每个学生的成绩等级

示例

输入:

4

40 55 70 58

输出:

学生0分数为40,等级为C

学生1分数为55,等级为B

学生2分数为70,等级为A

学生3分数为58,等级为B

def level(list):
    best = max(list)
    list_level=[]
    #把每一位学生成绩的等级输入到list_level列表中
    for i in range(len(list)):
        if list[i] >= best-10:
            list_level.append("A")
        elif list[i] >= best-20:
            list_level.append("B")
        elif list[i] >= best-30:
            list_level.append("C")
        elif list[i] >= best-40:
            list_level.append("D")
        else:
            list_level.append("F")
    return list_level

students_number=int(input("输入学生人数:"))
grade=input("输入学生成绩(以空格分隔):")
#用列表推导式输入学生成绩到成绩列表中
list_grade=[int(item) for item in grade.split()]
list_level2=level(list_grade)

for i in range(len(list_grade)):
    print(f"学生{i}分数为{list_grade[i]},等级为{list_level2[i]}")


http://www.kler.cn/a/371825.html

相关文章:

  • 油猴脚本-GPT问题导航侧边栏增强版
  • MySQL 9从入门到性能优化-创建触发器
  • 【水下生物数据集】 水下生物识别 深度学习 目标检测 机器视觉 yolo(含数据集)
  • SD-WAN分布式组网:构建高效、灵活的企业网络架构
  • ERC论文阅读(03)--SPCL论文阅读笔记(2024-10-29)
  • RagFlow本地部署使用
  • BERT,RoBERTa,Ernie的理解
  • UI 组件的二次封装
  • 获取平台Redis各项性能指标
  • socket编程---UDP
  • Python应用指南:利用高德地图API实现路径规划
  • 代码随想录训练营Day11 | 226.翻转二叉树 - 101. 对称二叉树 - 104.二叉树的最大深度 - 111.二叉树的最小深度
  • 高级java每日一道面试题-2024年10月24日-JVM篇-说一下JVM有哪些垃圾回收器?
  • Javascript进阶
  • golang包导入注意事项
  • 基于SSM+小程序的垃圾分类管理系统(垃圾3)
  • Notion + Python + scholarly = 超强文献管理助手
  • 神经网络的常用layer
  • vue使用prototype
  • 【Java Maven框架】
  • 五个我经常使用的前端开发的库
  • 【机器学习】任务九:卷积神经网络(基于 Cifar-10 数据集的彩色图像识别分类、基于 CNN 的手写数字识别的实验)
  • 基于java的山区环境监督管理系统(源码+定制+开发)环境数据可视化、环境数据监测、 环境保护管理 、污染防治监测系统 大数据分析
  • 【C++】string 类深度解析:探秘字符串操作的核心
  • python如何完成金融领域的数据分析,思路以及常见的做法是什么?
  • 【Django】创建项目、启动及app过程及遇到的问题和解决方案