Python3学习笔记【基础3--list,tuple,if条件判断,for/while循环,dict字典,set集合】

1.  List列表tuple(元组)的区别:

(1) list可以随时添加和删除其中的元素

(2) tuple是不可变的,从一开始就确定了

(3) list使用方括号“[]”,tuple使用圆括号“()

(4) list有(先后)次序,tuple有(逻辑)结构

#list#

#list里面可以有list
Q = ['a','b','c',
     ['A','B','C'],
     ['ONE','TWO','THERE']
     ]

W = ['yi','er','san']

1) len()函数可以获得list元素的个数

print(len(Q))

5

2) 用索引来访问list中每一个位置的元素,记得索引是从0开始的

print(Q[1])

b

3) 可以用-1做索引,直接获取最后一个元素

print(Q[-1])

['ONE', 'TWO', 'THERE']

4) 在末尾追加元素,如果是一个list,直接整个添加,用append()方法

Q.append(['d','k'])
print(Q)

['a', 'b', 'c', ['A', 'B', 'C'], ['ONE', 'TWO', 'THERE'], ['d', 'k']]

5) 将一个列表中每个元素分别添加到另一个列表中,用extend()方法(只在末尾添加list中的元素,不添加list)

Q.extend(['e','f','g'])
print(Q)

['a', 'b', 'c', ['A', 'B', 'C'], ['ONE', 'TWO', 'THERE'], 'e', 'f', 'g']

6) 把元素插入到指定的位置,用insert(i,' ')方法,其中i是索引位置

Q.insert(3,'D')
print(Q)

['a', 'b', 'c', 'D', ['A', 'B', 'C'], ['ONE', 'TWO', 'THERE']]

7) 要删除list末尾的元素,用pop()方法

Q.pop(0)
print(Q)

['b', 'c', ['A', 'B', 'C'], ['ONE', 'TWO', 'THERE']]

8) 要删除指定位置的元素,用pop(i)方法,其中i是索引位置

Q.pop(2)
print(Q)

['a', 'b', ['A', 'B', 'C'], ['ONE', 'TWO', 'THERE']]

9) 某个元素替换成别的元素,直接 = 赋值

Q[2]= 'cc'
print(Q)

['a', 'b', 'cc', ['A', 'B', 'C'], ['ONE', 'TWO', 'THERE']]

10) + 加号,将两个list相加,会返回到一个新的list对象,注意与前三种的区别。前面三种方法(append, extend, insert)可对列表增加元素的操作,他们没有返回值,是直接修改了原数据对象。 注意:将两个list相加,需要创建新的list对象,从而需要消耗额外的内存,特别是当list较大时,尽量不要使用“+”来添加list,而应该尽可能使用List的append()方法。

#tuple#

1)tuple中元素不可修改,但是里面的list中元素可以重新赋值

T = ('a','b',['A','B'])
T[2][0] = 'X'
T[2][1] = 'Y'
print(T)

('a', 'b', ['X', 'Y'])

2)tuple中只有1个元素时必须加一个逗号,,来消除歧义,以免

t = (1,)
print(t)

1

2. 条件判断,if语句实现

age = input('age:')
age =int(age)
if age >= 18:
    print('成年')
elif age >= 6:
    print('少年')
else:
    print('儿童')

age:13

少年

(1) 注意不要少写了冒号:

(2) elifelse if的缩写,完全可以有多个elif

(3) if语句是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elifelse

(4) input()返回的数据类型是strstr不能直接和整数比较,必须先把str转换成整数

(5) if语句判断的时候,都是判断的真或者假 也就是TrueFalse

(6)  0即真,非空即真;

 这个是因为0是string类型,所以输入0被认定为非空

3. for循环

(1) for ...in ...循环就是把每个元素代入in前面的变量,然后执行缩进块的语句

可以逐个输出字符串中的字符,逐个输出列表中的元素,元组中的元素,集合中的元素(注意赋值时各元素的顺序),字典中的键

fruits=['西瓜','葡萄','苹果','香蕉']
for fruit in fruits:
    print(fruit)

西瓜

葡萄

苹果

(2) 重复执行相同操作

使用range()函数创建一个数字列表取值范围:从起始数字开始到结束数字之前

语法:

range(stop)

range(start, stop[, step])

range函数是一个用来创建算数级数序列的通用函数,返回一个[start, start + step, start + 2 * step, ...]结构的整

数序列;range函数具有一些特性:

1.如果step参数缺省,默认1;如果start参数缺省,默认0

2.如果step是正整数,则最后一个元素(start + i * step)小于stop

3.如果step是负整数,则最后一个元素(start + i * step)大于stop

4.step参数必须是非零整数,否则抛出VauleError异常。

print(list(range(1,10,1)))
print(list(range(1,10,2)))
print(list(range(0,-10,-1)))

[1, 2, 3, 4, 5, 6, 7, 8, 9]

[1, 3, 5, 7, 9]

[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

注意:range函数返回一个左闭右开([left,right))的序列数

#range函数通常结合for循环一起使用

for q in range(9):
    print(q)

0

1

2

3

4

5

6

7

8

(3) 嵌套for循环:取外循环的数据,依次进行内循环操作

从第一个list 里面取一个  然后去下面的lis里面全部循环一遍

然后再取第一个list 里面的第二个值

#打印实心正方形
for i in range(5):
    for o in range(4):
       print(' * ',end='')
    print(' * ')

>> *       *       *       *       *

      *       *       *       *       *

      *       *       *       *       *

      *       *       *       *       *

      *       *       *       *       *

4. while循环

(1) 只要条件满足,重复执行相同操作,条件不符合,退出循环

语法:while   循环条件:

       循环操作

n = 1
while n <=100:
     print(n)
     n = n + 1
print('END')    #在循环内部变量n不断自减,直到变为-1时,不再满足while条件,循环退出。

>>1

     2

      ...

     100

     END

(2) 嵌套while循环

外部循环满足条件后,执行代码开始执行内部循环,等内部循环全部执行完毕,如果还满足外部循环条件,则外部循环再次执行,依次类推,直到跳出外层循环。

#站起来,坐下,站起来,转5个圈,坐下。整个流程执行10次
Process1 = 1
while Process1 <= 10: # 这个Process1 代表外面大的while循环
    print("="*5)
    print("第%d次执行"%Process1)
    print("站起来")
    print("坐下")
    print("站起来")
    Process2 = 1   #把内层循环的变量赋值放在外层循环里面
    while Process2 <= 5: # 这个Process2 代表嵌套在里面的while小循环
        print("转%d个圈"%Process2)
        Process2 = Process2 + 1
    print("坐下")
    Process1 = Process1 + 1

=====

1次执行

站起来

坐下

站起来

1个圈

2个圈

3个圈

4个圈

5个圈

坐下

=====

......

=====

10次执行

站起来

坐下

站起来

1个圈

2个圈

3个圈

4个圈

5个圈

坐下

把内层循环的变量赋值放在外层循环里面才保证在每次外层循环时,内层循环变量都从1开始。不然,内层循环变量第一次运行后变成6,之后一直是6,导致后面不再执行

5. 循环控制

(1) break语句:跳出本次循环(嵌套循环中只跳出一层循环)

n = 1
while n <= 100:
     if n >10:   #当n大于10,执行break,提前结束循环

break
     print(n)
     n = n +1
print('END')

>>1

     2

     3

     4

     5

     6

     7

     8

     9

     10

     END

(2) continue语句:跳过当前一轮循环体的剩余语句,重新测试循环状态,进入下一轮循环

n = 0
while n < 10:
     n = n + 1
     if n % 2 == 1:  #当值为奇数时,跳过此次循环
          continue
     print(n)

>>2

     4

     6

     8

    10

循环是让计算机做重复任务的有效的方法。

break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。

6. dict字典

(1) 使用键-值(key-value)存储,具有极快的查找速度

x = {'A':1,'Z':26,'B':2,'E':5}
print(x['B'])

2

(2) 通过key添加值

x['E'] =5
print(x['A'])

{'A': 1, 'Z': 26, 'B': 2, 'E': 5}

(3) 一个key只能对应一个value,多次对一个key放入value,后面的值会把前面的值替换掉

x['A'] =8
print(x['A'])

8

(4) 如果key不存在,dict就会报错,避免key不存在的错误,有两种办法

一是通过in判断key是否存在

print('C'in x)

False

二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value

print(x.get('R'))

None

print(x.get('R','not'))

not

删除一个key,用pop(key)方法,对应的value也会从dict中删除

print(x.pop('B'))
print(x)

{'A': 8, 'Z': 26, 'E': 5}

字典类型的常用方法——

clear():删除字典中所有元素。

copy():返回字典(浅复制)的一个副本。

fromkeys(seq,val=None):创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值。

get(key,default=None):返回字典中的键key对应的值value,如果字典中不存在此键,则返回default的值。

has_key(key):如果键key在字典中存在,返回True,否则返回Falsepython2.2后这个方法几乎已废弃不用了,通常用in来替代。

items():返回一个包含字典中键值对元组的列表。

keys():返回一个包含字典中键的列表。

iter():方法iteritems()iterkeys()itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。

pop(key[,default]):和方法get()类似,如果字典中key键存在,删除并返回dict[key],如果key键不存在,且没有给出default的值,引发KeyError异常。

setdefault(key,default=None):和方法get()相似,如果字典中不存在key键,由dict[key]=default为它赋值。

update(dict2):将字典dict2的键值对添加到当前字典中。

values():返回一个包含字典中所有值的列表。

7. set:是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key

(1) 要创建一个set,需要提供一个list作为输入集合

q = set(['a','o','e','e','u'])
print(q)

{'e', 'o', 'u', 'a'}

注:传入的参数是一个list,而显示的set内部元素,显示的顺序也不是有序的,重复元素在set中自动被过滤

(2) 通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果

q.add('i')
print(q)

{'a', 'o', 'u', 'i', 'e'}

(3) 通过remove(key)方法可以删除元素

q.remove('o')
print(q)

{'e', 'i', 'u', 'a'}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值