python day 06 部分循环和部分数据类型内置方法

while+continue

# 请听题:循环打印出0-10之间的数字
# 请听题:循环打印出0-9之间的数字,但是不打印6
count = 0
while count < 10:
    if count == 6:
        count+=1
        continue  # 是跳出本次循环,整体循环还在继续
    print(count)
    count += 1

while + else

count = 0
while count < 10:
    if count == 3:
        break
    print(count)
    count += 1
else:
    print('嘿嘿嘿')
    
# 当while循环内没有被人为中断(break)的时候,会执行else语句

死循环

while True:
    print(123)
# 在程序中,死循环坚决不能出现

for循环

for循环能做的事情,while循环都能够做
for循环代码更加简介,另外,它不会出现死循环.

# 请听题:
name_list = ['kevin', 'tank', 'jason', 'tony']
# 循环取出列表中每一个人名
for name in name_list:
    print(name)
    
"""
    语法格式:
        for 变量名 in 可迭代对象: # 可迭代对象:可循环的对象,字符串、列表、字典、元组等
            print()
        当你的变量名没有合适的名字可叫的时候,你可以采用i,j,k,v,item等代替
"""

# 字典报出来的是字段的K
# 循环打印字段的k和v
d =  {"username":'kevin', "age":18}
for i in d:
    print(i, d[i])

range关键字

# range关键字有三种玩法,一般配合for循环使用
1. 
for i in range(10):  # 如果只有一个参数,意思是:从0到10的整数
    print(i)
2. 
for i in range(3, 10):  # 如果有两个参数,意思是:从3到10的整数
    print(i)
3. 
for i in range(1, 10, 2):  # 如果有三个参数,意思是:从1到10的整数,步长为2
    print(i)
  
# 案例:
"""
    https://movie.douban.com/top250?start=0&filter= 第一页的数据
    https://movie.douban.com/top250?start=25&filter=  第二页的数据
    https://movie.douban.com/top250?start=50&filter=  第三页的数据
    https://movie.douban.com/top250?start=75&filter=  第三页的数据
    https://movie.douban.com/top250?start=100&filter=  第三页的数据
    https://movie.douban.com/top250?start=125&filter=  第三页的数据
    ...
    
    https://movie.douban.com/top250?start=225&filter= 最后一页的数据
    
"""

base_url = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, 250, 25):
    print(base_url % i)
 
# range在不同版本解释器中的区别
在python2中直接打印出结果

在python3中做了优化,把它变成了迭代器, 就是节省内存资源

for + break

for i in range(10):
    if i == 3:
        break
    print(i)

for + continue

for i in range(10):
    if i == 3:
        continue
    print(i)

for + else

for i in range(10):
    if i == 3:
        break# 没有人为中断就会执行else代码块
    print(i)
else:
    print('嘿嘿')

练习:打印九九乘法表

for i in range(1, 10):
    for j in range(1,i + 1):
        print('%s*%s = %s'%(i, j, i * j),end = '  ')
    print()

 数据类型内置方法

什么是内置方法?

比如:

  表格数据有公式计算、透视表、对边框的各种操作等功能

  视频数据有暂停、快进、倍速等功能

就是给各个数据类型内置的功能

表现形式:int()    print()   等

1. 整型

int
    # 进制转换
# 常见的进制数:二进制、八进制、十进制、十六进制(A b c d e f)
# 二进制和十进制之间转换
# 十进制转二进制:除2取余法
# 10---》1010
# 00001010---->
# res=0 * 2**7 + 0 * 2**6 + 0 * 2**5 + 0 * 2 ** 4 + 1*2**3 + 0 * 2 **2 + 1 * 2**1 + 0 * 2 ** 0===10

# int它也支持二进制转换
print(bin(10))   # 0b 1010  0b代表的就是二进制
print(oct(10))   # 0o 12    0o代表的是八进制
print(hex(10))   # 0x a     0x代表的是十六进制


# 把二进制转为十进制
print(int('0b1010', 2))
print(int('0o12', 8))
print(int('0xa', 16))

2. 浮点型

# 1.3 float同样可以用来做数据类型的转换
    >>> s = '12.3'
    >>> res=float(s)
    >>> res,type(res)
    (12.3, <class 'float'>)

3. 字符串

 # 类型转换
     print(str(res), type(str(res)))
    print(str(1.11), type(str(1.11)))
    print(str('helloworld'), type(str('helloworld')))
    # print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4])))
    print(str({'a': 1, 'b': 2}), type(str({'a': 1, 'b': 2})))
    print(str((1, 2, 3)), type(str({'a': 1, 'b': 2})))
    print(str(({1, 2, 3})), type(str({'a': 1, 'b': 2})))

字符串的内置方法

l = [1, 2, 3, 4]
res1 = str(l)
'helloworld'
print(res1[0])
print(res1[2])

res = 'helloworldhelloworldhelloworldhelloworldhelloworldadadasdasdsadhelloworldhelloworldhelloworld'# 支持索引取值
print(res[0])
print(res[1])
print(res[-1])
print(res[-2])

# 切片:顾头不顾尾
print(res[0:3])  # hel
print(res[2:6])  # llow
print(res[0:9:2])  # hlool 步长

# 反向切片
print(res[::-1])
print(res[0:])  #helloworld
print(res[2:])  #lloworld  冒号右边不写,一直切到结束
print(res[:6])  #hellow 冒号左边不写从0开始切
print(res[::3])  #hellow 冒号左边不写从0开始切
print(res[::-1])  # dlrowolleh,翻转字符串其中一种方式
# 长度len
print(len(res))  # 93  length---->len
print(len([1, 2, 3, 4]))
print(len({'a':1, 'b':2}))

# 5.strip移除字符串首尾指定的字符(默认移除空格)
res1 = '@@hello@world@@'
print(res1)
print(res1.strip())  # 默认什么都不写,去掉的是空格
print(res1.lstrip())  # 默认什么都不写,去掉的是空格
print(res1.rstrip())  # 默认什么都不写,去掉的是空格
print(res1.strip('@'))
print(res1.lstrip('@'))
print(res1.rstrip('@'))  # 只能去除两边的特殊符号,中间的去不掉

# 6.切分split
res1 = 'helloworld'
res1 = 'kevin 18 123'
res1 = 'kevin|18|male'
print(res1.split())  # ['kevin', '18', '123']  默认是空格切分,切分之后是列表的形式
print(res1.split('|'))  # ['kevin', '18', 'male']  默认是空格切分,切分之后是列表的形式
print(res1.rsplit('|', maxsplit=1))  # ['kevin', '18', 'male']  默认是空格切分,切分之后是列表的形式

 

posted @ 2023-05-18 19:51  吼尼尼痛  阅读(14)  评论(0编辑  收藏  举报