DAY03 Python编程

01 列表

Q1:reverse函数

num = [3,5,9,0,1,9,0,3]
num.reverse()
print(num)

Q2:二维列表

name = ['Niumei','YOLO','Niu Ke Le','Mona']
# 二维列表
food = ['pizza','fish','potato','beef']
number = [3,6,0,3]
friends = []
friends.append(name)
friends.append(food)
friends.append(number)
print(friends)

# name = ['Niumei', 'YOLO', 'Niu Ke Le', 'Mona']
# foods = ['pizza', 'fish', 'potato', 'beef']
# numbers = [3, 6, 0, 3]
# friends = []
# friends.append(name)
# friends.append(foods)
# friends.append(numbers)
# print(friends)

Q3:数组与列表的区别

在Python中,术语"数组"和"列表"通常用来描述两种不同的数据结构。下面是它们的主要区别:

  1. 数据类型:

    • 列表(List): 是Python中的内置数据类型,可以包含不同类型的元素,包括数字、字符串、对象等。列表是动态数组,长度可以动态变化。
    • 数组(Array): 在Python中,数组通常是指使用array模块创建的数组。数组要求所有元素具有相同的数据类型,这使得数组在一些数值计算和科学计算应用中更为高效。
  2. 模块和性能:

    • 列表: 是Python的内置数据类型,无需导入其他模块,但在处理大量数据时可能不够高效。
    • 数组: 通常使用array模块创建,该模块提供了一种在存储和处理大量数据时更为高效的方式。
  3. 性能优化:

    • 列表: 由于列表可以包含不同类型的元素,其灵活性会带来一些性能上的开销。对于数值计算等任务,可能不如数组高效。
    • 数组: 对于相同数据类型的元素,数组在执行一些操作时更为高效,因为它们在内存中存储的是连续的块。

法1:

# 获取输入的4位数字
a = int(input())

# 获取4位整数中的每一位的值
first = a//1000
second = (a//100)%10  
third = (a//10) % 10  
fourth = a % 10       

# 创建临时数组arr,存储每一位的数值
arr = [first,second,third,fourth]
# 使用for循环对每一位的数值进行“加上3再除以9的余数代替该位数字”的操作
for i in range(len(arr)):
    arr[i] = (arr[i] + 3) % 9
    
# 将第1位和第3位数字交换
arr[0],arr[2] = arr[2],arr[0]

# 将第2位和第4位数字交换
arr[1],arr[3] = arr[3],arr[1] 

# 以四位数的形式 输出破解后的密码
print(arr[0],arr[1],arr[2],arr[3],sep='') # 6745

法2:比较推荐

#用户输入
a = input()
#空字符串
str1= str()
#for遍历
for i in range(len(a)):
    str1 += str((int(a[i])+3)%9)
#重新排列输出
print(str1[2],str1[3],str1[0],str1[1],sep='')

其中使用 for 循环遍历输入字符串的每一位数字。对每一位数字执行如下操作:

  • 将字符转换为整数:int(a[i])
  • 加上3:(int(a[i]) + 3)
  • 对9取余数:% 9
  • 将结果转换为字符串,并添加到 str1 中。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值