自我总结05

控制流程之for循环

循环:重复做一件事情

# while循环:可以循环一切事物 (不好控制)
lt = [1, 2, 3, 4]

ind = 0

while True:
    print(lt[ind])

    ind += 1
    
# for循环:提供了一种手段,不依赖索引取值(好控制)    
lt = [1, 2, 3, 4]

for i in lt:
    print(i)    
# for 变量名(会拿到容器类元素的每一个值,没有了就结束循环) in 容器类元素:
#     print(变量名)
dic = {'a': 1, 'b': 2, 'c': 3}

count = 0
for i in dic:  # 对于字典,for循环只能拿到key
    print(i, dic[i])
    count += 1

# range方法
 print(list(range(10)))  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
# 默认从0开始,10结束,默认步长为1,顾头不顾尾
 print(list(range(1,10)))  # [1, 2, 3, 4, 5, 6, 7, 8, 9]  
# 1表示开始,10表示结束,默认步长为1,顾头不顾尾
 print(list(range(1,10,2)))  # [1, 2, 3, 4, 5, 6, 7, 8, 9]  
# 1表示开始,10表示结束,2表示步长,顾头不顾尾

for + break

# for + break
for i in range(50,101,3):  # 顾头不顾尾,2表示步长
    if i == 53:
        break  # 中断循环
    print(i)

for + continue

# for + continue
for i in range(50,101,3):  # 顾头不顾尾,2表示步长
    if i == 53:
        continue  # 跳出本次循环,不执行下面的代码
    print(i)

for + else(仅作了解)

# for + else(仅作了解):for循环不被break终止就执行else下的代码,否则不执行
for i in range(50,101,3):
    if i == 1000:
        break
    print(i)
else:u
    print('如果没有被break终止我就打印')

数字类型的内置方法

整型

1.作用

年龄/id

2.定义方式

x = 10

3.使用方法

+ - * / % // ** < <= > >= == !=

4.有序or无序

有索引的就有序,无索引的就无序

压根就没有有序无序一说

5. 可变or不可变

值变id不变叫可变,值变id变叫不可变

整型不可变

x = 10
print(id(x))
x += 1
print(id(x))

浮点型

1.作用

 薪资

2.定义方式

x = 10.1

3.使用方法

+ - * / % // ** > >= < <= == !=

4.有序or无序

压根没有有序无序一说

5. 可变or不可变

不可变      

x = 10.1
print(id(x))
x +=1
print(id(x))

字符串类型的内置方法

1.作用

姓名

2.定义方式

单引号/双引号/三单引号/三双引号

3.使用方法

# 优先掌握

# 左    右
s='nick handsome'
#  0123

# 索引
print(s[1])

#索引切片
print(s[0:4])  # 顾头不顾尾
print(s[0:4:2])  # 2表示步长,隔一个取一个
print(1, s[4:0:-1])  # +从左到右,-表示从右到左
print(1, s[2:])  # 左边的不写取到最左边,右边的不写取到最右边

#for循环
for i in s:
    print(4, i)

#成员运算
print('nick' in s)
print('nick1' not in s)  # True

#strip()  默认去除两端空格,可以指定去除的字符,可以指定多个字符同时去掉
s1 = 'a  nick   ******'
print(s1.strip(' kc*'))  # 可以乱序,但是不能没有

#split() # 切割
s2 = 'nick|123658|180|140'
print(s2.split('|'))  # 按照|切割字符串,得到的是一个列表

#len()长度
s1 = 'nick handsome'
print(len(s1))

# 需要掌握(一周内掌握)

# lstrip&rstrip
s3 = '**nick**'
print(s3.lstrip('*'))
print(s3.rstrip('*'))

# lower&upper
s3 = 'Nick'
print(s3.lower())  # 小写
print(s3.upper())  # 大写

# startswith&endswith
s4 = 'nick handsome'
print(s4.startswith('nick'))  # 以。。。开始
print(s4.endswith('some'))  # 以。。。结束

# rsplit
s = 'nick|handsome|180|140|'
#    01234
# print('range(len(s))',range(len(s)))
# lt = []
# ind = -1
# for i in range(len(s)):
#     if s[i] == '|':
#         lt.append(s[ind+1:i])
#         ind = i # ind = 4
#
# print('lt', lt)

print(s.split('|',1))
print(s.rsplit('|',1))  # 从右切割

# join
s = 'nick|handsome|180|140'
lt = s.split('|')
print(lt)
# 用*拼接列表内的每一个元素
# new_s = ''
# for i in lt:
#     i += '*'
#     new_s += i
# print(new_s)
print('*'.join(lt))  # 使用*拼接列表内的每一个元素

# replace
s = 'nick handsome'
s = s.replace('nick','nick chen')
print(s)

# isdigit/isalpha
s = 'a123123'
print(s.isdigit())  # 判断字符串内字符是否都为数字
s = 'askdlfj234'
print(s.isalpha())
# pwd = input('请输入你的密码:')
# if not pwd.isdigit():
#     print('请输入纯数字')

## 了解(看到能够想起来就行)

# find|rfind|index|rindex|count
s = 'nick handsome'
print(s.find('h'))  # 找索引,-1表示没找到
print(s.rfind('h',6,10))

print(s.index('h'))
# print(s.index('sadf'))  # 找不到报错
# print(s.find('sadf'))  # 找不到返回-1

s = 'aaaaacccc'
print(s.count('a'))

# center|ljust|rjust|zfill
s = 'nick'
print(s.center(50,'*')) # 居中
print(s.ljust(50,'*'))
print(s.rjust(50,'*'))
s = '111'
print(s.zfill(8))

# expandtabs
# \n 换行
# \t 缩进
s = 'a\t\t\t\ta'
print(s)
print(s.expandtabs(18))

# captalize|swapcase|title
s = 'nickNick handsome'
print(s.capitalize())  # 首字母大写
print(s.swapcase())
print(s.title())  # 每个单词的首字母大写


# is系列:有兴趣看一看,没兴趣算了

4.有序or无序

有序

5. 可变or不可变

不可变
s = 'nick'
print(id(s))
s += 'nick'
print(id(s))

列表的内置方法

1.作用

存储多个值

2.定义方式

[]用逗号隔开多个元素

3.使用方法

# 优先掌握

# 1. 索引取值/索引修改值
lt = [1, 2, 3, 4]
print(lt[1])
# lt[1] = 3
# print(lt)

# 2. 切片
print(lt[:])
print(lt[1:2])
print(lt[1:4:2])

# 3. for循环
for i in lt:
    print(i ** 2)

# 4. 成员运算
print(1 in lt)
print(5 in lt)

# 5. len
print(len(lt))

# 6. append()
lt.append(5)
print(lt)

# 7. del删除
print(lt)
# del lt[0]
# print(lt)

# insert
lt = [1, 2, 3, 4, 5]
lt.insert(0, 0)  # 往前插入
print(lt)

# pop:按照索引删除值
lt = [11, 22, 33, 44, 55]
lt.pop(0)
print(lt)

# remove:按照值删除值
lt.remove(22)
print(lt)

# count:计数
lt = [11, 11, 11, 22]
print(lt.count(11))

# index:寻找值的索引
print(lt.index(11))  # 找到了就返回

# clear:清空列表
lt = [1, 2, 2, 3]
lt.clear()
print(lt)

# copy:拷贝列表
lt = [1, 2, 3, 4]
lt1 = lt.copy()
print(lt1)

# extend: 扩展列表
lt1 = [1, 2, 34]
lt2 = [1, 1, 2, ]

lt1.extend(lt2)
print(lt1)

# reverse:反转列表
lt = [1, 2, 3, 4]
lt.reverse()
print(lt)

# sort
lt = [2, 3, 1, 0, 4]
lt.sort(reverse=True)
print(lt)

4.有序or无序

有序

5. 可变or不可变

可变

lt = [1, 2, 3]
print(id(lt))
lt.append(4)
print(id(lt))

案例:冒泡排序

lt = [2, 3, 1, 5, 6, 0]

# 冒泡排序()

for i in range(len(lt)): #  [0,1,2,3,4,5]
    for j in range(len(lt)):   #  [0,1,2,3,4,5]
        if lt[i] > lt[j]:
            lt[i], lt[j] = lt[j], lt[i]
print(lt)

'''
i = 0 j = 0 2 > 2
i = 0 j = 1 2 > 3
i = 0 j = 2 2 > 1 [1, 3, 2, 5, 6, 0]
i = 0 j = 3 1 > 5
i = 0 j = 4 1 > 6
i = 0 j = 5 1 > 0 [0, 3, 2, 5, 6, 1]

i = 1 j = 0 3 > 0 [3, 0, 2, 5, 6, 1]
i = 1 j = 1 0 > 0
i = 1 j = 2 0 > 2
i = 1 j = 3 0 > 5
i = 1 j = 4 0 > 6
i = 1 j = 5 0 > 1

i = 2 j = 0 2 > 3
i = 2 j = 1 2 > 0 [3, 2, 5, 6, 1, 5]
i = 2 j = 2 0 > 0 


'''

内置方法原理

class SelfList(list):
    def self_sort(self):
        for i in range(len(self)):  # [0,1,2,3,4,5]
            for j in range(len(self)):  # [0,1,2,3,4,5]
                if self[i] < self[j]:
                    self[i], self[j] = self[j], self[i]


lt = SelfList([2, 0, 4, 3, 5])
lt.sort()
print(lt)

posted @ 2019-09-15 23:20  jzm1201  阅读(79)  评论(0编辑  收藏  举报