学python的第四天---基础(2)

news2024/11/15 13:31:38

  • 一、三角形类型
    • 读入数组并排序的方法
      • n=list(map(float,input().split())) c,b,a=sorted(n)
      • list_1 = list(map(float, input().split())) list_1.sort() list_1.reverse()
      • lengths=sorted(map(float,input().split(" ")),reverse=True)
  • 二、动物
    • 写法一:
      • d={" ":{" "}," ":{" "}}
    • 写法二:嵌套的if
    • 写法三:index()
  • 三、菱形
  • 四、质数
  • 五、完全数
  • 六、数字序列和它的和
    • 写法一:
    • 写法二:
  • 七、连续奇数的和2
    • 写法一:我写复杂了,直接暴力就可以了
    • 写法二:
      • for j in range(a[i*2]+1,a[i*2+1],1):
    • 写法三:暴力法
  • 八、实验
      • 字典
  • 九、蛇形矩阵

一、三角形类型

在这里插入图片描述

n=list(map(float,input().split()))
c,b,a=sorted(n)
if a>=b+c:
    print("NAO FORMA TRIANGULO")
    exit()
if a**2==b**2+c**2:
    print("TRIANGULO RETANGULO")
elif a**2>b**2+c**2:
    print("TRIANGULO OBTUSANGULO")
elif a**2<b**2+c**2:
    print("TRIANGULO ACUTANGULO")
if a==b==c:
    print("TRIANGULO EQUILATERO")
elif a==b or a==c or b==c:
    print("TRIANGULO ISOSCELES")

读入数组并排序的方法

n=list(map(float,input().split())) c,b,a=sorted(n)

list_1 = list(map(float, input().split())) list_1.sort() list_1.reverse()

lengths=sorted(map(float,input().split(" ")),reverse=True)

二、动物

在这里插入图片描述

写法一:

d={" “:{” “},” “:{” "}}

这是一个嵌套的字典数据结构,包含了动物分类以及不同分类的动物名称。可以通过字典的嵌套结构来获取动物名称。

d = {"vertebrado":{"ave":{"carnivoro":"aguia","onivoro":"pomba"},"mamifero":{"onivoro":"homem","herbivoro":"vaca"}},"invertebrado":{"inseto":{"hematofago":"pulga","herbivoro":"lagarta"},"anelideo":{"hematofago":"sanguessuga","onivoro":"minhoca"}}}
a,b,c = input(),input(),input()
print(d[a][b][c])

写法二:嵌套的if

s1 = input()
s2 = input()
s3 = input()

if s1 == "vertebrado":
    if s2 == "ave":
        if s3 == "carnivoro":
            print("aguia")
        else:
            print("pomba")
    else:
        if s3 == "onivoro":
            print("homem")
        else:
            print("vaca")
else:
    if s2 == "inseto":
        if s3 == "herbivoro":
            print("lagarta")
        else:
            print("pulga")
    else:
        if s3 == "onivoro":
            print("minhoca")
        else:
            print("sanguessuga")

写法三:index()

one = ["vertebrado","invertebrado"]
two = ["ave","mamifero","inseto","anelideo"]
three = ["carnivoro","onivoro","herbivoro","hematofago"]
a = one.index(input())
b = two.index(input())
c = three.index(input())
d = {"000":"aguia","001":"pomba","011":"homem","012":"vaca","123":"pulga",
"122":"lagarta","133":"sanguessuga","131":"minhoca"}
# print(a,b,c)
print(d[str(a)+str(b)+str(c)])

三、菱形

在这里插入图片描述

n = int(input())
c = n // 2
for i in range(n):
    for j in range(n):
        if abs(i - c) + abs(j - c) <= c:
            print('*', end = '')
        else:
            print(' ', end = '')
    print()

四、质数

在这里插入图片描述

n=int(input())
for i in range(n):
    x=int(input())
    flag=True
    for i in range(2,int(x**0.5)+1):
        if x%i==0:
            flag=False
            break
    if flag:
        print("%d is prime"%x)
    else:
        print("%d is not prime"%x)

五、完全数

在这里插入图片描述

n=int(input())
for i in range(n):
    ans=0
    x=int(input())
    for j in range(1,x):
        if j**2>x:#剪枝,我一开始没有这句话tle了
            break
        if x%j==0:
            if j<x:
                ans+=j
            if j!=x/j and x/j<x:#如果i**2不等于x
                ans+=int(x/j)
    if ans==x:
        print("%d is perfect"%x)#print("{} is perfect".format(x))
    else: print("%d is not perfect"%x)

六、数字序列和它的和

在这里插入图片描述

写法一:

while True:
    a, b = map(int, input().split())
    if a<=0 or b<=0:
        exit()
    if a>b:
     a,b=b,a
    sum=0
    for i in range(a,b+1):
        print(i,end=' ')
        sum+=i
    print("Sum={}".format(sum))

写法二:

while True:
    a,b=map(int,input().split(' '))
    if a<=0 or b <= 0:
        break
    y=max(a,b)
    x=min(a,b)
    sum=0
    for i in range(x,y+1):
        print(i,end=' ')
        sum+=i
        pass
    print("Sum=%d"%sum)

七、连续奇数的和2

在这里插入图片描述

写法一:我写复杂了,直接暴力就可以了

然后要注意的就是数组要开大一点,数组的创建和读入的方法。

a=[0]*1005
a[0]=0
for i in range(1,1005):
    if (i-1)&1:
        a[i]=a[i-1]+i-1
    else:
        a[i]=a[i-1]
n=int(input())
for _ in range(n):
    d,b=map(int,input().split())
    if d>b:
        d,b=b,d
    if d==b:
        print(0)
    elif d>0 and b>0:
        print(a[b]-a[d+1])
    elif d<0 and b<0:
        print(-a[-d]+a[-b+1])
    elif d<0 and b>0:
        print(-a[-d]+a[b])

写法二:

for j in range(a[i2]+1,a[i2+1],1):

这里的 range() 函数使用三个参数的形式,其中第一个参数是循环起始值,第二个参数是循环结束值(不包含),第三个参数是循环步长。因此,range(a[i2]+1, a[i2+1], 1) 表示从 a[i2]+1 开始,每次增加 1,直到 a[i2+1],循环结束。
举个例子:

a = [[0, 5], [10, 15], [20, 25]]

for i in range(len(a)):
    for j in range(a[i][0] + 1, a[i][1], 1):
        # 在这里写需要执行的操作,例如打印 j 的值
        print(j)

这段代码会依次打印出 1 到 4 和 11 到 14 和 21 到 24 这些数字,因为它们分别属于 a 中的三个区间。

n = int(input())
a = []
for i in range(n):
    b = [int(x) for x in input().split()]
    a = a + b#把他一个个存入到a中
for i in range(n):
    count = 0
    if a[i*2] > a[i*2+1]:
        p = a[i*2]
        a[i*2] = a[i*2+1]
        a[i*2+1] = p
    for j in range(a[i*2]+1,a[i*2+1],1):
        if j % 2 == 1:
           count += j
    print(count)

感觉这个写法的思想很巧妙!

写法三:暴力法

n=int(input())
for i in range(n):
    s=0
    x,y=map(int,input().split())
    if x>y:x,y=y,x
    for j in range(x+1,y):
        if j%2==1:
            s+=j
    print(s)

八、实验

字典

这里使用了字典!!!

n = int(input())
res = 0
data = {}
for i in range(n):
    a,b = input().split(" ")
    # print(a,b)
    a = int(a)
    if data.get(b,False):
        data[b] = data[b] + a
    else:
        data[b] = a
    res+=a

print("Total: {} animals".format(res))
print("Total coneys: {}".format(data["C"]))
print("Total rats: {}".format(data["R"]))
print("Total frogs: {}".format(data["F"]))
print("Percentage of coneys: {:.2f} %".format(data["C"]/res*100))
print("Percentage of rats: {:.2f} %".format(data["R"]/res*100))
print("Percentage of frogs: {:.2f} %".format(data["F"]/res*100))

九、蛇形矩阵

在这里插入图片描述
在学C++的时候经常写,有点生了,写了好一会

n,m=map(int,input().split())
dx=[0,1,0,-1]
dy=[1,0,-1,0]
a=[[0 for j in range(m)] for i in range(n)]
x,y,t=0,0,0
for i in range(1,n*m+1):
    a[x][y]=i
    x1,y1=x+dx[t],y+dy[t]
    if x1<0 or x1>=n or y1>=m or y1<0 or a[x1][y1]:
        t=(t+1)%4
        x1,y1=x+dx[t],y+dy[t]
    x,y=x1,y1

for i in range(n):
    for j in range(m):
        print(a[i][j],end=' ')
    print()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/391971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css系统化学习

元素的语义化 SEO:搜索引擎优化 根据搜索引擎展示的规律,语义化的元素更容易被展示获得更多浏览量 字符编码 css历史 内联样式(inline) style"内容全写在等号后面,双引号里面,多个之间用;隔开" 内部样式(internal) style写在head里面,在title下面,不是在body内, …

Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决

Hadoop集群搭建&#xff0c;基于3.3.4hadoop和centos8【小白图文教程-从零开始搭建Hadoop集群】&#xff0c;常见问题解决Hadoop集群搭建&#xff0c;基于3.3.4hadoop1.虚拟机的创建1.1 第一台虚拟机的创建1.2 第一台虚拟机的安装1.3 第一台虚拟机的网络配置1.3.1 主机名和IP映…

10.单点登录原理及JWT实现

单点登录原理及JWT实现 一、单点登录效果 首先我们看通过一个具体的案例来加深对单点登录的理解。案例地址&#xff1a;https://gitee.com/xuxueli0323/xxl-sso?_fromgitee_search 把案例代码直接导入到IDEA中 然后分别修改下server和samples中的配置信息 在host文件中配置 …

Python实现多键字典

实现背景 在许多场景中&#xff0c;有时需要通过多种信息来获取某个特定的值&#xff0c;而各种编程语言&#xff08;包括Python&#xff09;使用的字典&#xff08;Dict&#xff09;数据结构通常只支持单个键值寻值key-val对&#xff0c;即“一对一”&#xff08;一个键对应一…

哈工大服务科学与工程第一章作业

服务的概念服务是个非常广义的概念——涉及到经济、管理、业务、IT领域以下是一些各方对服务的定义&#xff1a;服务是一方向另一方提供的任意活动和好处。它是不可触知的&#xff0c;不形成任何所有权问题&#xff0c;其生产可能与物质产品有关&#xff0c;也可能无关。服务是…

数据挖掘(2.1)--数据预处理

一、基础知识 1.数据的基本概念 1.1基础知识 数据是数据对象(Data Objects)及其属性(Attributes)的集合。 数据对象(一条记录、一个实体、一个案例、一个样本等)是对一个事物或者物理对象的描述。 数据对象的属性则是这个对象的性质或特征&#xff0c;例如一个人的肤色、眼球…

28个案例问题分析---027---单表的11个Update接口--MyBatis

一&#xff1a;背景介绍 项目开发中。我们使用的是MyBatis&#xff0c;在MyBatis的xml文件里&#xff0c;两个表的更新功能&#xff0c;写了足足11个更新接口&#xff0c;毫无复用的思想 这种方式可以正常的实现功能&#xff0c;但是没有复用&#xff0c;无论是从时间上还是维…

推荐系统与推荐算法

文章目录第一章1.1推荐系统意义与价值1.2推荐系统历史与框架1.3推荐算法分类第二章2.1协同过滤的基本思想与分类2.2基于用户的协同过滤2.3基于项目的协同过滤2.4基于邻域的评分预测2.5基于二部图的协同过滤第三章3.1基于关联规则的推荐3.2基于矩阵分解的评分预测3.3概率矩阵分解…

基于jdk8的HashMap源码解析

hashMap常见面试题总览 为什么重写Equals还要重写HashCode方法&#xff1f;HashMap如何避免内存泄漏问题&#xff1f;HashMap1.7底层是如何实现的&#xff1f;HashMapKey为null存放在什么位置&#xff1f;HashMap如何解决Hash冲突问题&#xff1f;HashMap底层采用单链表还是双…

【java基础】泛型程序设计基础

文章目录泛型是什么自定义泛型类自定义泛型方法类型变量的限定总结泛型是什么 泛型类和泛型方法有类型参数&#xff0c;这使得它们可以准确地描述用特定类型实例化时会发生什么。在没有泛型类之前&#xff0c;程序员必须使用Objct编写适用于多种类型的代码。这很烦琐&#xff…

Tuxera NTFS2023MacOS读写软件功能介绍使用

当我们遇到磁盘不能正常使用的情况时本能的会以为是磁盘损坏了&#xff0c;但某些情况下却并非如此。对于mac操作系统来说&#xff0c;软件无法使用设备无法正常读写似乎是很常见的事&#xff0c;毕竟现在的mac电脑对PC机上的产品无法完全适应使用&#xff0c;经常会存在兼容方…

Leetecode 661. 图片平滑器

图像平滑器 是大小为 3 x 3 的过滤器&#xff0c;用于对图像的每个单元格平滑处理&#xff0c;平滑处理后单元格的值为该单元格的平均灰度。 每个单元格的 平均灰度 定义为&#xff1a;该单元格自身及其周围的 8 个单元格的平均值&#xff0c;结果需向下取整。&#xff08;即&…

Java之可变参数

目录 一.可变参数的引入 1.问题引入 2.可变参数的使用 二.可变参数的注意点 1.可变参数只能定义一个 2.可变参数必须是函数参数的最后一个​编辑 一.可变参数的引入 1.问题引入 当我们需要定义一个方法sum,接受任意个整型变量,结果返回这些整型变量的和. 我们没有学习可…

SCAFFOLD: Stochastic Controlled Averaging for Federated Learning学习

SCAFFOLD: Stochastic Controlled Averaging for Federated Learning学习背景贡献论文思想算法局部更新方式全局更新方式实验总结背景 传统的联邦学习在数据异构(non-iid)的场景中很容易产生“客户漂移”(client-drift )的现象&#xff0c;这会导致系统的收敛不稳定或者缓慢。…

nacos的介绍和下载安装(详细)

目录 一、介绍 1.什么是nacos&#xff08;含有官方文档&#xff09;&#xff1f; 2.nacos的作用是什么&#xff1f; 3.什么是nacos注册中心&#xff1f; 4.核心功能 二、下载安装 一、介绍 1.什么是nacos&#xff08;含有官方文档&#xff09;&#xff1f; 一个更易于…

libGDX:灯光效果实现一(实现一个点光源)

国内的libGDX文章很少&#xff0c;特别是libGDX实现灯光效果&#xff0c;所以就开始总结灯光效果的实现 绿色的框 是为了方便看到Body位置&#xff0c;使用Box2DDebugRenderer渲染的 工欲善其事&#xff0c;必先利其器&#xff0c;工具集合 gdx-setup.jar 1. 从libGDX官网下载…

GrabCut算法、物体显著性检测

图割GraphCus算法。利用颜色、纹理等信息对GraphCut进行改进&#xff0c;形成效果更好的GrabCut算法。 对图像的目标物体和背景建立一个K维的全协方差高斯混合模型。 其中&#xff0c;单高斯模型的概率密度函数用公式表示为&#xff1a; 高斯混合模型可表示为n个单高斯模型的概…

Java生态/Redis中如何使用Lua脚本

文章目录一、安装LUA1&#xff09;简单使用二、lua语法简介1、注释1&#xff09;单行注释2&#xff09;多行注释2、关键字3、变量1&#xff09;全局变量2&#xff09;局部变量4、数据类型1&#xff09;Lua数组2&#xff09;字符串操作5、if-else6、循环1&#xff09;for循环1&g…

Java多线程中的CAS

多线程中的CAS 什么是CAS CAS CompareAndSwap&#xff0c;或者 CompareAndSet&#xff0c; 是一个能够比较和替换的方法。 这个方法能够在多线程环境下保证对一个共享变量进行修改时的原子性不变。 通常&#xff0c;CAS方法会传递三个参数&#xff0c; ● 第一个参数V表示要更新…

核心 Android 调节音量的过程

核心 Android 系统提供的调节音量的方法 核心 Android 系统提供了多种调节音量的方法&#xff0c;这些方法主要包括如下这些。 如在 Android Automotive 调节音量的过程 中我们看到的&#xff0c;CarAudioService 最终在 CarAudioDeviceInfo 中 (packages/services/Car/servi…