Python——PYTHON基本程序结构

题目[1]:完成下面的列表操作

用range创建一个list,命名为numbers,这个list从100到0,间隔为8。结果应如下面这样:([100,92,84,76,68,60,52,44,36,28,20,12,4]),请写出代码贴在下方:
代码:

numbers = list(range(100, 0, -8))   #list从100到0,间隔为8
print(numbers)  #打印输出

运行截图:
在这里插入图片描述
用列表解析把前面的numbers每个数字都变成它的平方。
代码:

numbers = []   #定义空列表
for value in range(100, 0, -8):
    number = value**2  #将数据平方后存入列表
    numbers.append(number)
print(numbers)  #打印输出

运行截图:
在这里插入图片描述
现有一列表student=[‘李运江’,90,‘李俊’,98,‘王林’,78,‘王德仁’,88],请用for循环和while循环分别打印出所有的成员。若你打印出以下显示情况
李运江 90
李俊 98
王林 78
王德仁 88
代码:

students = ['李运江', 90, '李俊', 98, '王林', 78, '王德仁', 88]  #源列表
i = 0
j = 1  #定义下标i,j
for k in range(1, 5):  #5次循环
    print(students[i], students[j])   #以元组形势并列输出
    i += 2
    j += 2   #下标改变位置

运行截图:
在这里插入图片描述
题目[2]:
尝试以下内容:
在这里插入图片描述
相当于:在这里插入图片描述
考虑以下输出结构是什么?
在这里插入图片描述
按照上述方式把列表推导式还原出来
代码:

bList = []
for x in range(10):
    if x % 2 == 0:   #选择可以被2整除的x
        for y in range(10):
            if y % 2 != 0:  #选择可以被2整除的y
                bList.append((x, y))   #将所有的元组(x,y)放进列表
print(bList)

运行截图:
在这里插入图片描述
中间省略一部分截图
在这里插入图片描述
题目[3]:求列表里的最大数, 以及最大数的下标
在这里插入图片描述
代码:

nums = [3, 1, 9, 8, 4, 2, 0, 7, 5]  #源列表定义
x = nums[0]  #默认第一个为最大值
for num in nums:
    if num > x:
        x = num   #如果遍历到的num大于最大值x,则更新x
#打印最大值x,以及下标
print('最大数是{},对应的下标是{}'.format(x, nums.index(x)))

运行截图:
在这里插入图片描述
题目[4]:
有一个列表names,保存了一组姓名names=[‘zhangsan’, ‘lisi’, ‘chris’, ‘jerry’, ‘henry’]再让用户输入一个姓名,如果这个姓名在列表里存在,提示用户姓名已存在;如果这个姓名在列表里不存在,就将这个姓名添加到列表里。
代码:

names = ['zhangsan', 'lisi', 'chris', 'jerry', 'henry']  #原名字列表
username = input('请输入名字:')
# 使用 if 语句,存在则提示,不存在append添加
if username in names:
    print("用户名已存在。")
else:
    names.append(username)

print(names)  #打印新列表

运行截图:
在这里插入图片描述
题目[5]:删除列表里的空字符串
在这里插入图片描述
利用while循环遍历列表,设置从0开始遍历,如果存在空字符串,则删除空字符串,同时令i-1,实现全部遍历实现
代码for循环:

words=['hello','good','','','yes','ok','']  #定义源列表
i=0
while i<len(words):
     if words[i]=='':
         words.remove(words[i])   #遍历到空,删除并使i-1
         i-=1
     i+=1
print(words)

代码while循环:

students = ['李运江', 90, '李俊', 98, '王林', 78, '王德仁', 88]  #源列表
i = 0
j = 1  #定义下标i,j
while j <= 8: #5次循环
    print(students[i], students[j])   #以元组形势并列输出
    i += 2
    j += 2   #下标改变位置

运行截图:
在这里插入图片描述
题目[6]:创建长度为20的列表,其元素为1000~5000以内的随机整数。编写程序找出列表中不能被10以内素数整除的元素。
代码:

Random.randint(1000,5000)
import random
ls=[random.randint(1000,5000) for i in range(20)]  #生成随机数
ts=(2,3,5,7)  #10以内的素数,待除
l1=[0]*len(ls)  #定义一个和随机数长度一样的列表
for i in range(len(ls)):
    for t in ts:
        if ls[i] % t==0:
            l1[i]=1    #对每一个随机数都用2,3,5,7测试,整除就标记
l2=[]   #空列表,根据标志放置不能被整除的随机数
for i in range(len(ls)):
    if l1[i]==0:
        l2.append(ls[i])
print("生成的20个1000-5000的随机数是:")
print(ls)
print("其中不能被10以内素数整除的数是:")
print(l2)

运行截图:
在这里插入图片描述
题目[7]:使用random模块中的randint函数在0-100之间随机产生10个数,用冒泡法排序(从小到大)。
冒泡法排序的思想:将数组中的数据两两进行比较,每次将较大的数据交换到后面,直到大数沉底,小数冒出。例如:
在这里插入图片描述
代码:

def bubbleSort(arr):
    n = len(arr)

    # 遍历所有数组元素
    for i in range(n):

        for j in range(0, n - i - 1):

            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]

from random import randint
arr=[]
for n in range(10):
    n = randint(0,100)
    arr.append(n)
print(arr)

bubbleSort(arr)

print("排序后的数组:")
for i in range(len(arr)):
    print("%d" % arr[i])

运行截图:
在这里插入图片描述
题目[8]:请写出一段Python代码实现分组一个列表里面的元素;把[1,2,3,…100]变成[[1,2,3],[4,5,6]…]
代码:

list1 = []    #定义一个存放1-100的列表
i = 1
for i in range(1, 100):
    list1.append(i)     #生成1-100的数并打印
print(list1)
list2 = []    #定义中间间接使用的列表
list3 = []    #定义一个存放[[1,2,3],[4,5,6]...]的列表
for i in list1:
    if i % 3 == 0:
        list2 = [i-2, i-1, i]
        list3.append(list2)
print(list3)

运行截图:
在这里插入图片描述
*中间省略一部分截图
在这里插入图片描述
*

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值