列表练习
1. 向列表内添加以下数据:3, 8, 5, 2, 5。
one = [3,8,5,2,5] # 定义了一个one列表
2. 获取第4个元素注意,并打印
one = [3,8,5,2,5] # 定义了一个one列表
print(one[3]) # 使用 [] 方法取列表的下标 列表下标对应 [0,1,2,3] 或 [-4,-3,-2,-1]
3. 删掉第一个元素和最后一个元素
one = [3,8,5,2,5] # 定义了一个one列表
one.pop(0) # 使用pop函数(携带被删除的元素可用于储存变量;例如 a = one.pop(0))
one.pop(-1) # -1 则为最后一个元素 列表[0,1,2,3] 或 [-4,-3,-2,-1]
4. 打印列表的大小。
one = [3,8,5,2,5] # 定义了一个one列表
print(len(one)) # 使用len()函数
5. 最后打印列表中的偶数。
one = [3,8,5,2,5] # 定义了一个one列表
for a in one: # 遍历one列表 赋值给 a变量
if a % 2 == 0: # 数值除以2取余( % ) 没有余数则是偶数
print(a) # 是偶数则打印
6.随机生成30个整数构成列表,并计算列表均值,然后利用列表中每个元素逐个减去均值 tip: import random random.randint(1,150)
import random # 导入random库包
#=============随机生成30个正整数========================
arr = [] # 定义了arr列表
toble = 0 # 用来储存列表各元素相加的总和
for a in range(0,30): # for循环30次
ran = random.randint(1, 150) # 生成随机数 范围是 1 - 150
arr.append(ran) # 使用 append(添加)函数把随机数添加进 arr 列表
else:
for i in arr: # 遍历arr里的随机数
toble += i # 递加arr里的值
else:
av = int(toble/len(arr)) # arr值总和/列表的长度(个数)= 平均值 (int()舍去小数位)
print(f"列表均值为:{av}\n======================================\n")
print("元素减去均值\n===============================\n")
arr_av = [] # 储存原始数减去均值后的列表
for b in arr:
#print(f"【 {b} 】元素减去均值为:\n",b-av) # 普通打印出来
arr_av.append(b-av) # 使用 append(添加)函数把原始数减去均值后的值添加进 arr_av 列表
print("减去均值后的各元素\n",arr_av) # 打印 arr_av 列表
函数练习
1. 定义一个函数,用于输出10个hello world..
def hell(): # def 定义了一个 hell() 函数
for a in range(1,11): # 使用 for 循环遍历 10次
print(f"第{a}次 Hello Word")
# ====================================== 调用函数 ======================================
hell() # 调用函数
2. 定义一个函数,输入打印次数,根据打印次数输出对应的hello world...
def hell(a): # def 定义了一个 hell() 函数 并需要一个参数 定义为 a
print("总共为:",a,"次")
for a in range(0,a): # 使用 for 循环遍历 a 次
print(f"第{a+1}次 Hello Word")
# ====================================== 调用函数 ======================================
cot = int(input("输入打印次数:\n")) # input() 输入 ;int() 整数
hell(cot) # 调用函数 并 传参数
3. 定义一个函数,输入两个数值和一个运算符,进行4则运算
def su(a,b,c): # 定义了一个 su() 函数 并要求传入 a,b,c 三个参数
if c == "/": # 如果 c 符号 为除号
return a/b
elif c == "*": # 如果 c 符号 为乘号
return a*b
elif c == "+": # 如果 c 符号 为加号
return a+b
elif c == "-": # 如果 c 符号 为减号
return a-b
else:
return "输入有误!" # 输入的不为以上
# ====================================== 调用函数 ======================================
a = int(input("请输入第一个数值\n")) # 获取第一个值 赋值给 变量 a
b = int(input("请输入第二个数值\n")) # 获取第二个值 赋值给 变量 b
c = input("请输入运算符号\n") # 获取符号 赋值给 变量 c
arr = su(a,b,c) # 调用函数 并 传入 a,b,c 三个参数
print(arr)
4. 编写函数实现随机产生指定范围的整数的功能 参考random对象
import time # 导入 time函数 库包
def my_random(a,b): # def 定义 my_random 函数 并要求传入 a,b 两个参数
arr = [] # 用来装取值范围的值
for i in range(a, b+1): # 遍历范围
arr.append(i) # 添加范围之内的值
time.sleep(0.01) # 使用 sleep 函数间隔1毫秒 防止重复
a = int(time.time() * 100000 % len(arr)) # 使用时间戳time.time() % 列表的长度得到 a - b 之间的伪随机数
return arr[a] # 返回伪随机数 ; arr[a] 用伪随机数 a 取 arr 列表范围里的数 { 也就是( a - b ) 范围之间的数 }
# ====================================== 调用函数 ======================================
for i in range(0,10): # 遍历 10 次 取 10次 随机数
ret = my_random(1,20) # 调用函数 my_random 并传入范围 1 - 20 赋值给 ret变量
print(ret,end=" ")
5. 编写函数实现排序数字数组中数组元素的功能(可以指定升序或降序) 参考sort函数
def my_sort(arr,rev): # 定义了 my_sort() 函数 并要求传入 arr 参数
if rev == "升序" or rev == "sx": # 跟降序反着换( 把最大值放到最后面 arr[len(arr)-1] )
for i in range(len(arr)): # 循环 最大判断次数(列表的长度)
is_stop = True # 用来接收 本次循环 是否有更换位置(是否全部更换以达到升序)
for j in range(0, len(arr) - i - 1): # 用来 取相邻的两个值 减 i(第一次从头判断到尾则已找到本次的最大值 则 从大找到小)减 1(下标是0开始)防止报错
if arr[j] > arr[j + 1]: # 比较前面一个是否比后边一个大 从0开始 取第一对 arr[j] > arr[j+1] = arr[0] > arr[0+1]
arr[j], arr[j + 1] = arr[j + 1], arr[j] # 如果前一个比后一个大则进入 if 执行体 利用下标调用两个值 互换 位置
is_stop = False # 表示本次 有调换位(本次列表还没有全部判断完成)
if is_stop: # 判断本次循环是否判断完成 (如果整个循环没有一次进入 调换 则表示全部判断完成)
break # 如果 本次循环没有调换位置 表示 本次循环 全部判断完成 结束 返回排序好的列表
return arr # 返回 排序好的列表
elif rev == "降序" or rev == "jx": # 跟升序反着换( 把最大值放到最前面 arr[0] )
for i in range(len(arr)): # 循环 最大判断次数(列表的长度)
is_stop = True # 用来接收 本次循环 是否有更换位置(是否全部更换以达到降序)
for j in range(len(arr) - i - 1, 0, -1): # 用来 取相邻的两个值 减 i(第一次从尾判断到头则已找到本次的最大值 则 从大找到小)减 1(下标是0开始)防止报错
if arr[j] > arr[j - 1]: # 比较后边一个是否比前边一个大 从 len(arr)-1 开始 取第一对 arr[j] > arr[j-1] = arr[0] > arr[0-1]
arr[j], arr[j - 1] = arr[j - 1], arr[j] # 如果后一个比前一个大则进入 if 执行体 利用下标调用两个值 互换 位置
is_stop = False # 表示本次 有调换位(本次列表还没有全部判断完成)
if is_stop: # 判断本次循环是否判断完成 (如果整个循环没有一次进入 调换 则表示全部判断完成)
break # 如果 本次循环没有调换位置 表示 本次循环 全部判断完成 结束 返回排序好的列表
return arr # 返回 排序好的列表
# ====================================== 调用函数 ======================================
rev = input("输入排序方式:\n") # 定义一个输入 rev 排序方式
arr = [6,3,6,8,2,5] # 定义一个 arr 列表
a = my_sort(arr,rev) # 调用 my_sort 函数 并传入 arr 列表
print(a)
6. 定义一个函数,重写sum函数的功能
def my_sum(arr): # 定义一个 my_sum() 函数 并要求传入一个 arr(要求元组 or 列表) 参数
su = 0 # 用来接受 总和
for i in arr: # for 循环遍历 arr元组
su += i # 递加 arr元组里的值
return su # 返回 su 总和
# ====================================== 调用函数 ======================================
arr = (1,2,3) # 定义了 arr 元组
a = my_sum(arr) # 调用 my_sum 函数 并把 arr 元组 传入
print(a)
7. 编写函数实现显示数组中所有数组元素的功能,可以传递多个数组
def all(*args): # 定义了 all 函数 以及使用 *args 语法 把传递的未知个数组 加进 一个数组里
for i in args: # 遍历 包含多个数组的数组 args
print(f"数组{i}的元素:")
for j in i: # 遍历 数组里的每个 数组 参数
print(j,end=" ") # 每个数组的参数
print()
return args # 返回包含多个数组的数组
a = (1,2,3,4,5,6,7,8,9) # 定义数组 a
b = ('a','b','c','d') # 定义数组 b
c = (1,'a',2,'b',3,'c') # 定义数组 c
# ====================================== 调用函数 ======================================
strMontage = "" # 用来实现 字符串拼接
for i in all(a,b,c): # 可以实现多数组元素字符串拼接
for j in i:
strMontage += str(j) # 字符串拼接
print("拼接好的字符串:\t",strMontage)