Python基础入门易错易混淆知识点汇总(二)for循环和while循环随机数、随机数Random、Range()函数、列表切片[::]、列表操作等知识点

一、for循环和while循环

         1、for循环

         Python若需要多个条件判断,只能用 elif 来实现(用法 = else if 写法 != else if)

results = 89
if results > 90:
    print('优秀')
elif results > 80:
    print('良好')
elif results > 60:
    print ('及格')
else:print ('不及格')

         2、while循环

循环控制语句
描述
break
在语句块执行过程中终止循环,并目跳出整个循不
continue
在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环
passpass是空语句,是为了保持程序结构的完整性

                以上均可使用循环嵌套语法

                示例:打印九九乘法表

#print()默认是打印一行,结尾加换行。end=''作用是末尾不换行,添加空格。
for i in range(1, 10):
    for j in range(1, i+1):
        print('{}x{}={}\t'.format(i, j, i*j), end='')
    print()

二、随机数Random、Range()函数、列表切片[::]

        random.randint(a, b) ,返回 [a, b] 之间的整数,包含 a 和 b 

         补充:

  • ​​​​​​​​​​​​​​range(start, stop, step),​​​​​​​计数从 start 开始,默认是从 0 开始,计数到 stop 结束,但不包括 stop,step步长,默认为1。start和step均可省略。
  • 列表切片[start : end : step],计数从 start 开始,默认是从 0 开始,计数到 stop 结束,但不包括 stop,step步长,默认为1。start和step均可省略。注意切片在负数方向上的区别,也就是step为负。

三、列表 

Python 的有些方法被设计成原地操作(in-place),不返回新的对象,而是直接原对象进行修改。简单地说就是不改变其内存首地址,。Python 的很多可变对象都有这种机制,众多三方库包也大量采用了这种方法。

属于原地操作:

列表元素的增加 append()

列表元素的插入 insert()

列表尾部增加另一个迭代对象的所有元素 extend()

不属于原地操作:

运算符" + " " * "

x = [1,2,3]
x = x + [4]
y = x * 2
print(y)
print(x)
#y = [1, 2, 3, 1, 2, 3]
#x = [1, 2, 3]

列表元素的删除:

删除并返回指定(默认为最后一个)位置上的元素 pop()
删除首次出现的指定元素 remove()
清空列表 clear()
删除列表中的指定位置上的元素 del()
列表元素访问与计数:
统计指定元素在列表对象中出现的次数 count()
获取指定元素首次出现的下标 index()        
测试列表中是否存在某元素 in()

列表排序:

将一个列表中的元素随机排序 random.shuffle()

import random

x = [1,5,3,6,2]
random.shuffle(x)
print(x)
按照指定规则对所有元素进行排序,默认规则是从小到大 sort()
x = [1,5,3,6,2]
x.sort() # 默认升序
print(x)
# 此处x = [1, 2, 3, 5, 6]
x.sort(reverse = True) # 降序排列
print(x)
# 此处x = [6, 5, 3, 2, 1]
将列表中所有元素原地逆序排列 reverse()
x = [1,5,3,6,2]
x.reverse() # 逆序排列
print(x)
# 此处x = [2, 6, 3, 5, 1]
使用内置函数 sorted 对列表进行排序并返回新列表,不对原列表做任何修改 sorted()
x = [1,5,3,6,2]
print(sorted(x))
# 此处x = [1, 2, 3, 5, 6]
print(x)
# 此处x = [1, 5, 3, 6, 2] 可见sorted()不对原列表做任何修改
print(sorted(x,reverse = True))
# 此处x = [6, 5, 3, 2, 1]
print(x)
# 此处x = [1, 5, 3, 6, 2] 
返回一个逆序排列后的迭代对象,不对原列表做任何修改 reversed()
x = [1,5,3,6,2]
print(list(reversed(x)))
# 此处x = [2, 6, 3, 5, 1]
print(x)
# 此处x = [1, 5, 3, 6, 2] 可见reversed()不对原列表做任何修改

浅复制:

所谓浅复制,是指生成一个新的列表,并且把原列表中所有元素的引用都复制到新列表中。

切片返回的是列表元素的浅复制。 

aList = [3, 5, 7]
bList = aList[::] # 切片,浅复制
print(aList == bList) # 两个列表的元素完全一样 True
print(aList is bList) # 但不是同一个对象 False
print(id(aList) == id(bList)) # 内存地址不一样 False
bList[1] = 1 # 修改其中一个不会影响另一个
print(bList) # 结果为[1, 5, 7]
print(aList) # 结果为[3, 5, 7]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值