数据结构与算法python语言实现-第一章答案_minmaxdata-程序员宅基地

技术标签: python  数据结构与算法  

数据结构与算法python语言实现-第一章答案


把第一章的代码补完了。一起学习,请大家多指正,谢谢。
数据结构与算法python第一章答案和提示打包
链接是 link.

习题1.3 编写一个Python函数 minmax(data),用来在数的序列中找出最小数和最大数,并以一个长度为 2 的元组的形式返回。注意:不能通过内置函数 min 和 max 来实现。
代码如下:

def minmax(data):
    size=len(data)
    max=data[0]
    min=data[0]
    for fig in data:
        if fig > max:
            max=fig
        if fig< min:
            min=fig
    return [min,max]
data=[1,2,8,9,23,45,64,8,123,875,321]
print(minmax(data))

1.4 编写一个Python函数,用来接收正整数 n,返回 1 ~ n 的平方和。

def quadratic_sum(n):
    sum=0
    for i in range(1,n+1):
        sum+=i*i
    return sum
n=int(input('输入n'))
print(quadratic_sum(n))

1.5 基于Python的解析语法和内置函数 sum,写一个单独的命令来计算练习R-1.4中的和。

n=4
print(sum(i*i for i in range(1,n+1)))#生成器解析
print(sum({i*i for i in range(1,n+1)}))#集合解析
print(sum([i*i for i in range(1,n+1)]))#列表解析

1.6 编写一个Python函数,用来接收正整数n,并返回 1 ~ n 中所有的奇数的平方和。
1.7 基于Python的解析语法和内置函数 sum,写一个单独的命令来计算练习R-1.6中的和。

n=6
print(sum(i*i for i in range(1,n+1,2)))#生成器解析 1+9+25=35

1.8 Python 允许负整数作为序列的索引值,如一个长度为 n 的字符串 s,当索引值-n<=k<0时,所指的元素为s[k],那么求一个正整数索引值j>=0,使得s[j]指向的也是相同的元素。

s='python'
k=2
print(s[-1*k])
print(s[len(s)-k])

1.9 要生成一个值为 50, 60, 70, 80 的排列,求 range构造函数的参数.

for i in range(50,90,10):
    print(i)

1.10 要生成一个值为 8, 6, 4, 2, 0, -2, -4, -6, -8 的排列,求 range 构造函数中的参数。

for i in range(-8,10,2):
   print(i)

1.11 演示怎样使用 Python 列表解析语法来产生列表 [1, 2, 4, 8, 16, 32, 64, 128, 256].

print([2**i for i in range(1,9)])

1.12 Python 的 random 模块包括一个函数 choice(data),可以从一个非空序列返回一个随机元素。Random模块还包含一个更基本的 randrange 函数,参数化类似于内置的 range 函数,可以在给定范围内返回一个随机数。只使用 randrange 函数,实现自己的 choice 函数。

# 字符串,列表,元组都可以看作序列
from random import randrange
def choice(data):
   c = randrange(0,len(data))
   print(c)
   return data[c]

data='python'
print(choice(data))

1.13 编写一个函数的伪代码描述,该函数用来逆置 n 个整数的列表,使这些以相反的顺序输出,并将该方法与可以实现相同功能的 Python 函数进行比较。

data=[12,55,31,654,99,12]
trans=[]
for i in range(1,len(data)+1):  #从-1开始
   trans.append(data[-1*i])
print(trans)

1.14 编写一个 Python 函数,用来接收一个整数序列,并判断该序列中是否存在一对乘积是奇数的互不相同的数。

def if_odd(array):
   result=[]
   for i in range(0,len(array)):
       for j in range(i+1,len(array)):
           if array[i]*array[j]%2==1:
               result.append([array[i],array[j]])
   return result
   # print(i,j,array[i],array[j])
array=[3,4,6,5,7]
print(if_odd(array))

1.15

def if_dif(array):
    result=[]
    for i in range(0,len(array)):
        for j in range(i+1,len(array)):
            if array[i]==array[j]:
                result.append([i,j])
    return result
    # print(i,j,array[i],array[j])
array=[3,4,6,5,7,6,4]
print(if_dif(array))#输出相同的序号组

1.16

def scale(data,factor):
    for j in range(len(data)):
        data[j]=data[j]*factor#形参指向实参,调用形参(实参)里的内容,则可以改变实参
    data=[]#直接对形参赋值,改变了别名,使形参data指向了一个[]空列表,而不能改变实参,因为原本形参就是指向实参的一个别名。
grade=[0,56,3]
factor=2
scale(grade,factor)
print(grade)

1.17

def scale(data,factor):
    for val in data:
        val *=factor
grade=[0,56,3]
factor=2
scale(grade,factor)
print(grade)

1.18


print([2*sum(range(0,i+1)) for i in range(0,10)])
# s=0
# print([s+2*i for i in range(0,10)])
# 不能用之前迭代的结果做下次迭代的参数

1.19

print([chr(ord('a')+i) for i in range(0,26)])
#p20 chr(integer) 返回给定Unicode编码的字符
#    order(char)返回给定字符的Unicode编码的编码值

1.20

from random import randint


def shuffle(data):
    new = []
    for i in range(0, len(data)):
        new.append(data[randint(0, len(data) - 1)])
    return new

data = [5, 6, 8, 5, 8, 7, 1, 123]
print(shuffle(data))

1.21

result = []
while True:
    try:
        result.append(input('输入'))
    except EOFError:
        break
for i in range(1, len(result) + 1):
    print(result[-1 * i])

1.22

z1=list(map(int,input('数组1').split()))#map函数,映射
z2=list(map(int,input('数组2').split()))
result=0
for i in range(0, len(z1)):
    result = result + z1[i] * z2[i]
print(result)

1.23

data=[1]
try:
    for i in range(len(data)):
        print(data[i+5])
except IndexError:
    print("Don't try buffer overflow attacks in Python!")

1.24

phrase=input('pleas enter the phrase')
number=0
for alphabet in phrase:
    if alphabet=='a'or alphabet=='e'or alphabet=='i'or alphabet=='o'or alphabet=='u':
        number+=1
print(number)

1.28

def norm(num_list,order):
    return sum(num**order for num in num_list)**(1/order)
data=[1,3,5]
p=3
print(norm(data,p))
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m3113940/article/details/95936050

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签