python菜鸟教程

文章讲述了如何使用Python编写代码,实现数组中元素的交换(如最大值与第一个元素、最小值与最后一个元素),以及将数组中前面的元素向后移动指定位置。
摘要由CSDN通过智能技术生成

67 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组

思路:

  1. input输入数组
  2. 寻找最大值,与数组第一个元素交换
  3. 寻找最小值,与数组最后一个元素交换
  4. 输出数组
a = []
# 输入6个数字形成矩阵
for i in range(4):
    a.append(int(input("请输入数字:")))
print(a)
# 设置最大值与a矩阵第一个元素交换

p = 0 #P必须初始化为0,要不然不对
def max(a):
    max = 0   # 初始化矩阵最大值为a[0]
    for i in range(1,len(a)-1):
        p = i  # i = p
        if a[p] > a[max]:max = p  # 如果矩阵的某个元素大于a[0],就把这个元素赋值给P,接着与矩阵的下一个元素比较
    k = max # 把最大值的元素位置赋值给k
    a[0],a[k] = a[k],a[0]  # 最大值与矩阵的第一个元素交换

max(a)
print("最大值与第一个元素交换后的矩阵:",a)

def min(a):
    min = 0   # 初始化矩阵最小值为a[0]
    for i in range(1,len(a)-1):
        p = i  # i = p
        if a[p] < a[min]:min = p  # 如果矩阵的某个元素小于a[0],就把这个元素赋值给P,接着与矩阵的下一个元素比较
    k = min # 把最大值的元素位置赋值给k
    a[len(a)-1],a[k] = a[k],a[len(a)-1]  # 最小值与矩阵的最后一个元素交换

min(a)
print("最小值与最后一个元素交换后的矩阵:",a)

def out(a): #循环输出
    for i in range(0,len(a)):  #(0,len(a))是左闭又开的,所以实际输出的是(0,len(a)-1)
        print(a[i])

out(a) #循环输出最后的结果

 

请输入数字:1

请输入数字:4

请输入数字:5

请输入数字:3

[1, 4, 5, 3]

最大值与第一个元素交换后的矩阵: [5, 4, 1, 3]

最小值与最后一个元素交换后的矩阵: [5, 4, 3, 1]

5

4

3

1

68有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数 

 

程序分析:有5(n)个数字,1,2,3,4,5

将前2(m)个数字顺序向后移动2位

4,5,1,2,3

a = []
# 输入n个数字形成矩阵
n = int(input("矩阵有几位数字:"))
m = int(input("请输入向后移动数字为几位:"))
for i in range(n):
    a.append(int(input("请输入数字:")))
print(a)
#向后移动的函数
def move(a,n,m):
    a_end = a[n-1] #找到矩阵的最后一位
    for i in range(n-1,-1,-1): #依次循环将矩阵的后面一位赋值给前一位
        a[i] = a[i-1]
    a[0] = a_end  #把矩阵的最后一位幅值给第一位
    m -= 1 #循环一次m减去1次
    if m > 0:  #如果m>0,就继续移动,否则将跳出循环
        move(a,n,m)


move(a, n, m)

print('移动之后:', a)

矩阵有几位数字:5

请输入向后移动数字为几位:2

请输入数字:1

请输入数字:2

请输入数字:3

请输入数字:4

请输入数字:5

[1, 2, 3, 4, 5]

移动之后: [4, 5, 1, 2, 3]

方法二:

n = int(input("请输入数字个数:"))
m = int(input("请输入移动的位置:"))
l = []
l1 = []
for i in range(n):
    l.append(int(input("Pls input a num:")))
print("原数组:",l)
if n < m:
    print("输入有误,移动位置应该小于数字个数")
else:

    for i in range(n-m):
        l1.append(l.pop()) #l1新增 原数组中删除末尾三个数字
    print(l1)
    l1.reverse()  #因为pop是先删除末尾的数字,所以需要先反转过来
    l1.extend(l)   #再将原数组l中剩余的数字补充到l1中,构成和原数组长度一样的数组
print(l1)

请输入数字个数:5

请输入移动的位置:2

Pls input a num:1

Pls input a num:2

Pls input a num:3

Pls input a num:4

Pls input a num:5

原数组: [1, 2, 3, 4, 5]

[5, 4, 3]

[3, 4, 5, 1, 2]

pop() 函数描述

pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

语法

pop()方法语法:

list.pop([index=-1])

参数

obj -- 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值。

返回值

该方法返回从列表中移除的元素对象

reverse() 函数描述

reverse() 函数用于反向列表中元素。

语法

reverse()方法语法:

list.reverse()

参数

NA。

返回值

该方法没有返回值,但是会对列表的元素进行反向排序。

extend() 函数

extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

语法

extend()方法语法:

list.extend(seq)

参数

seq -- 元素列表。

返回值

该方法没有返回值,但会在已存在的列表中添加新的列表内容。

Python-有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数_python有 n 个整数,使其前面各数的顺序向后移m 个位置,最后面的m 个数变成最前面-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值