列表

1.什么是列表(list)

1)列表的长样子:列表使容器型数据类型(序列),将[]作为容器的标志,里面多个元素用逗号隔开:[元素1, 元素2, 元素3, 。。。]
2)列表的特点:列表是可变的(元素的个数、值和顺序可变) - 增删改:列表是有序的 - 支持下标操作
3)列表对元素的要求:没有要求(不管什么类型的数据都可以作为列表的元素)

# 1)空列表
list1 = []
list2 = [ ]
print(type(list1), type(list2))  # <class 'list'> <class 'list'>
print(bool(list1), bool(list2))  # False False
print(len(list1), len(list2))    # 0  0# 2)列表可以同时保存多个数据
list3 = [89, 90, 76, 99, 58]
print(list3)list4 = ['范成', 18, '男', 100, True]
print(list4)list5 = [10, 12.5, True, 'abc', [1, 0], {'a':19}, (20, 9), {20, 9}, lambda x: x*2]
print(list5)list6 = [[1, 2, 3],[4, 5, 6],[7, 8, 9]
]

2.列表的查操作 - 获取元素

查分为三种情况:获取单个元素、切片、遍历(一个一个的取)

1)获取单个元素

'''
语法:列表[下标]
功能:获取列表中指定下标对应的元素
说明:
列表   -   任何结果使列表的表达式,比如:保存列表的变量、具体的列表值等
[]    -    固定写法
下标   -    下标又叫索引,是元素在有序序列中位置信息。python中有序序列中每个元素都有两组下标标值,分别是:从前往后从0开始递增的下标值:从后往前-1开始递减的下标值
注意:下标不能越界'''names = ['甄姬', '貂蝉', '韩信', '吕布', '赵云', '后羿', '鲁班', '狄仁杰']
print(names[1])
print(names[-1])
print(names[3])

2)遍历

'''
方式一 - 直接获取列表中的每个元素
for 变量 in 列表:循环体方式二 - 先获取到每个元素的下标值,然后通过下标在获取元素
for 下标 in range(len(列表)):循环体range(len(列表)) == range(列表中元素的个数)方法三 - 同时获取列表中的元素和对应的下标
for 下标,元素 in enumerate(列表):循环体
'''
方式一
for i in names:print(i)方式二
for index in range(len(names)):print(names[index])方式三
for i in enumerate(names):print(i[0], i[1])

练习

# 练习1: 统计不及格人数
scores = [89, 67, 56, 90, 98, 30, 78, 51, 99]
count = 0
for i in scores:if i < 60:count += 1
print('不及格人数:{}'.format(count))# 练习2:统计列表中整数的个数
list7 = [89, 9.9, 'abc', True, 'abc', '10', 81, 90, 23]
count = 0
for i in list7:if type(i) == int:count += 1print('整数的个数:{}'.format(count))# 练习3:求nums中所有偶数的和
num = 0
nums = [89, 67, 56, 90, 98, 30, 78, 51, 99]
for i in nums:if i % 2 == 0:num += i
print('nums中所有偶数的和:{}'.format(num))

3.列表的增加元素

1)添加单个元素

'''
列表.append(元素)  -  在列表的最后添加一个有元素
列表.insert(下标)'''
movies = ['五十度灰', '哥斯拉大战金刚', '桃花侠大战菊花怪']
print(movies)movies.append('肖申克的救赎')
print(movies)movies.insert(2, '沉默的羔羊')
print(movies)

2)批量添加

'''
列表1.extend(列表2) - 将列表2元素全部添加到列表1的后面
'''
movies.extend(['让子弹飞', '触不可及'])
print(movies)

练习

# 练习:求scores中所有的及格的分数提取出来
scores = [89, 67, 56, 90, 98, 30, 78, 51, 99]
list1 = []
for i in scores:if i > 60:list1.append(i)
print(list1)

4.循环练习题

  1. 判断101-200之间有多少个素数,并输出所有素数。

    list1 = []
    for a in range(101, 200):for i in range(2, int((a ** 0.5) + 1)):if a % i == 0:breakelse:list1.append(a)
    print(list1)
    #[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
  2. 求整数1~100的累加值,但要求跳过所有个位为3的数。

    sum = 0
    for i in range(1, 101):if i % 10 == 3:continueelse:sum += i
    print(sum)# 4570
    
  3. 有⼀分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的第20个分数

    fz = 1
    fm = 1
    n = 20
    for i in range(n):fz, fm = fz + fm , fz
    print(fz, '/', fm)# 17711 / 10946
    
  4. 写程序计算 n 的阶乘 n! 的结果

    n = int(input('输入整数n:'))
    sum = 1
    for i in range(1, n+1):sum *= i
    print('n! = ', sum)
    
  5. 求1+2!+3!+…+20!的和

    n = int(input('输入整数n:'))
    sum = 1
    sum1 = 0
    for i in range(1, n+1):sum *= isum1 += sum
    print('1! + 2! +...n! = ', sum1)# 输入整数n:20
    # 1! + 2! +...n! =  2561327494111820313
    
  6. 写程序求表达式 a + aa + aaa + aaaa+ … 的结果,其中a是1~9的数字,求和的项数用n来控制。(a和n可以用变量来表示)

    例如:a为3, n为5的时候: 3 + 33 + 333 + 3333 + 33333

    n = int(input('输入整数n:'))
    a = int(input('输入整数a(1-9):'))
    sum = 0
    for i in range(n):sum += a * (n - i) * (10 ** i)
    print(sum)# 37035
    
  7. 控制台输出三角形

    a.根据n的值的不同,输出相应的形状
    n = 5时             n = 4
    *****               ****
    ****                ***
    ***                 **
    **                  *
    *b.根据n的值的不同,输出相应的形状(n为奇数)
    n = 5               n = 7*                    ****                  ***
    *****                ************c. 根据n的值的不同,输出相应的形状
    n = 4112112321
    1234321n = 51121123211234321
    123454321
    
    1)
    n = 5
    for i in range(n):print('*' * (n - i))*****
    ****
    ***
    **
    *2)
    for i in range(0, n, 2):print(('*' * (i + 1)).center(5))*  ***
    *****3)
    n = 5
    num = 0
    a = 1
    for i in range(1, n + 1):num = num * 100 + aa += 2 * 10 ** iprint(str(num).center(20))1          121         12321        1234321       123454321
    
  8. 小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元正好花掉,可有哪些购买结合?

    for i in range(7):for j in range(21):if (i * 15 + j * 5) > 100:breakfor z in range(51):if (i * 15 + j * 5 + z * 2) > 100:breakif (i * 15 + j * 5 + z * 2) == 100:print('洗发水{}瓶,牙刷{}个,香皂{}支'.format(i, j, z))
    
  9. 一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?

    a = 0.00008
    count = 0
    while 1:a *= 2count += 1if a >= 8848.13:print('对折{}次之后能达到珠穆朗玛峰的高度(8848.13米)'.format(count))break# 对折27次之后能达到珠穆朗玛峰的高度(8848.13米)
    
  10. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    rabbit_1 = 1
    rabbit_2 = 0
    rabbit_3 = 0
    n = 10
    for i in range(1, n):if i == 2:rabbit_1, rabbit_2, rabbit_3 = rabbit_3, rabbit_1, rabbit_2 + rabbit_3elif i == 1:passelse:rabbit_1, rabbit_2, rabbit_3 = rabbit_2 + rabbit_3, rabbit_1, rabbit_2 + rabbit_3print('第{}个月已共有{}对兔子'.format(i, rabbit_1 + rabbit_2 + rabbit_3))
    
  11. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。

    n = b = 90
    list = []
    while 1:for i in range(2, int(b**0.5)+1):if b % i == 0:b = b // ilist.append(i)breakelse:list.append(b)break
    print('{} = {}'.format(n, list[0]), end='')
    for i in range(1, len(list)):print(' X {}'.format(list[i]), end='')
  12. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值

    n = '5632'
    n2 = 0
    for i in range(4):n2 = n2 * 10 + (int(n[i]) + 5) % 10
    n2 = n2 // 1000 + (n2 % 10) * 1000 + (n2 // 100) % 10 *10 + (n2 // 10) % 10 * 100
    print(n2)# 7810
    
  13. 本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少。

    n = 10000.0
    for i in range(5):n = n * (1+0.003)
    print(n)
    # 10150.902704052423
    
  14. 输入一个整数,计算它各位上数字的和。(注意:输入的整数可以是任意位)

    n = input('请输入一个任意整数:')
    sum = 0
    for i in range(len(n)):sum += int(n[i])
    print(sum)# 请输入一个任意整数:123456
    # 21
    
  15. 求两个数的最大公约数和最小公倍数。(提示:公约数一定小于等于两数中的小的那个数,且能同时被两个数整除;公倍数一定大于等于两数中的大数,且是大数的倍数又能被两数中的小数整除)

    print('请输入两个整数(n < m)')
    n, m = int(input('请输入一个整数n:')), int(input('请输入一个整数m:'))
    Common_divisor = 0
    for i in range(1, n + 1):if (n % i == 0) and (m % i == 0):Common_divisor = i
    Common_multiple = 0
    i = 1
    while 1:if (i * Common_divisor % n == 0) and (i * Common_divisor % m == 0):Common_multiple = i * Common_divisorbreaki += 1
    print(Common_divisor, Common_multiple)# 请输入两个整数(n < m)
    # 请输入一个整数n:4
    # 请输入一个整数m:5
    # 1 20
    

day5-列表与循环练习相关推荐

  1. python中的for语句涉及的序列可以是列表_Python中的列表与循环

    文章中的所有例子全部经过实际测试,可以直接使用.开发环境是python 3.8.5 条件和循环 本章的主要内容是Python的条件和循环语句.主要涉及if.else.elif.while.for.ra ...

  2. python 列表 常用操作 列表的循环遍历

    目录 列表格式 常用操作 查找 判断是否存在 添加数据 删除数据 修改数据 复制 列表的循环遍历 列表嵌套 列表为可变类型数据 列表格式 [数据1,数据2,数据3,.......] 注:列表可以一次性 ...

  3. 仿拼多多评团列表倒计时循环滚动 Android

    仿拼多多评团列表倒计时循环滚动,每段时间自动滚动 Android 现在开始动手撸代码 首先要改下recyclerview的逻辑 package com.hugh.basis.rvlooper;impo ...

  4. Shell脚本基础 、 使用变量 、 条件测试及选择 、 列表式循环案例

    Shell脚本基础 . 使用变量 . 条件测试及选择 . 列表式循环案例 1 案例1:Shell脚本的编写及测试 1.1 问题 1.2 方案 1.3 步骤 2 案例2:重定向输出的应用 2.1 问题 ...

  5. tcl脚本使用实例 - 列表,循环,变量拼接, 文件自动写入

    tcl在IC,FPGA领域广泛使用. 列表,循环,变量拼接, 文件自动写入 set values {"360" "1800" "3600"} ...

  6. 学习Python Day5 —— 列表和元组

    学习Python Day5 -- 列表 列表 列表是容器型数据类型(序列),将[]作为容器标志,里面多个元素用逗号隔开:[元素1,元素2,-元素N] 列表是可变的(元素的个数和值可变):列表是有序的( ...

  7. Python Day5 列表及相关操作【零基础】

    Day5 列表 文章目录 Day5 列表 1. 列表的作用 1.2 普通运用 2.2 列表运用 2. 认识列表 2.1 什么是列表(list) 2.2 空列表 2.3 列表中元素的类型 2.4 列表中 ...

  8. 我与python约个会:18. 再说循环~列表和循环的高级操作

    在前面的课程中,我们已经学习了循环和函数的基本操作,这节内容主要针对循环和函数在项目使用过程中的一些更加有使用价值的操作进行分析和讲解 本节内容: 循环部分 列表构建器 列表动态构建器 循环操作序列对 ...

  9. 详细讲解用Python列表for循环还有if判断语句写出1-100之内的素数,思路清晰语法准确代码简单易懂实用

    详细讲解用Python列表for循环还有if判断语句写出1-100之内的素数,思路清晰语法准确代码简单易懂实用,当然还有一定技巧的算法渗透其中.请看视频: Python 代码实例,找出1-100之内的 ...

  10. 实例 - 购物车 (列表、循环)

    salary = int(input('Please input your money:'))product = [('iphone6s',5800),('mac bood',9000),('coff ...

最新文章

  1. 某大厂程序员求助:认识一个不错的小姐姐,却得知对方竟有四个兄弟姐妹!想放弃,对方却穷追不舍,怎么办?...
  2. torch.tensordot()介绍
  3. Java虚拟机监控指标及监控配置
  4. android中暂停服务,Android 装逼技术之暗码启动应用
  5. java容器集合类的区别用法_Java容器笔记(二):不同集合实现类的特点与区别...
  6. appium+python自动化57-chromedriver与chrome版本
  7. 苹果自研5G调制解调器将在2023年量产 采用台积电4nm工艺
  8. 网页设计中时尚​​的下拉菜单案例
  9. ibatis 核心原理解析
  10. MATLAB画圆时却显示椭圆?一个命令解决问题!
  11. 商城 源码 java_java网上商城平台源码(含数据库脚本)
  12. 地址转换函数(点分十进制与网络字节序的二进制)
  13. 在线渐变配色网站分享
  14. 一级域名、二级域名 cookie
  15. http://blog.csdn.net/lnb333666/article/details/8546497
  16. JVM 运行机制及其原理
  17. 谷歌、甲骨文史诗级版权诉讼案,10 年 API 之争本周开审
  18. 关于字符串中length与length()的区别
  19. 【Java 8 新特性】Java 8 Collectors:joining()使用示例
  20. word中添加背景色

热门文章

  1. Error filterStart startup failed due to previous errors
  2. 语音识别深度神经网络,深度神经网络技术
  3. soft-attention--学习笔记
  4. Java编程题笔试常用API
  5. Linux虚拟机ens33无法连接问题
  6. 基于Distflow的最优潮流模型(OPF)--模型推导篇
  7. OpenCV 用 VideoWriter 创建视频(Python 版本)
  8. MySQL主从恢复数据
  9. 【转载】区块链技术原理、应用领域及挑战
  10. 凡客诚品网站打不开:页面显示域名到期了!