流程控制补充及数据类型内置方法

流程控制的补充

while+continue的使用

countinue: 跳出本次循环,直接进入下一次循环。

eg.1.循环打印出0-10之间的数字:

1 count = 0
2 while count < 10:
3     print(count)
4     count += 1

运行结果:

 eg 2. 循环打印出0-9之间的数字,但是不打印5

 

1 count = 0
2 while count < 9:
3     if count == 5:
4         count += 1
5         continue  # 跳出本次循环
6     print(count)
7     count += 1

 

运行结果:

 while+else的使用

while循环结构后面可以加else语句,当while循环执行完并且中间没有人为中止即break,就会执行else后面的语句。

eg:当没有break时

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

运行结果:

 eg.当有break时

1 count = 0
2 while count < 10:
3     if count == 3:
4         break   # 人为中断,当count=3时程序到此结束运行
5     print(count)
6     count += 1
7 else:
8     print('喵喵喵')

运行结果:

 死循环

程序不停的被执行,内存空间被大量占用。

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

for循环

for循环能做的事情,while循环也可以做到。但是使用for循环,代码会更简洁一点,而且使用for循环不会出现死循环。

语法结构:

    for 变量名 in 可迭代对象:#可迭代对象:可循环的对象,比如字符串、列表、字典、元组等

      print()  #当没有合适的名字命名时,可用i,j,k,v,item等代替

eg:

name_list = ['kevin', 'tank', 'jason', 'tony'],循环取出列表中每一个人名

1 name_list = {'username':'Jolly','age':18}
2 for i in name_list:
3     print(i,name_list[i])

运行结果:

 eg2:循环打印字段的k和v

name_list = {'username':'Jolly','age':18}
for i in name_list:
    print(i,name_list[i])

运行结果:

 因为字典曝出来的是k,所以想要输出v的值,需要通过对k取值才能得到。

range关键字

range关键字一般有三种用法,一般搭配for循环使用

1.

1 for i in range(9):  # range()如果是单个参数,是:从0到9的整数
2     print(i)

运行结果:

 2.

1 for i in range(2, 9):  # 如果是两个参数,意思是从2开始到9之间的参数,顾头不顾尾
2     print(i)

运行结果:

 

3.

for i in range(0,9,2):# 如果是三个参数,意思是从0到9之间的整数,步长为2
    print(i)

运行结果:

 具体案例:

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(用法同while)

for i in range(10):
    if i == 3:
        break  # 人为中断
    print(i)

运行结果:

 for+continue

for i in range (10):
    if i == 3continue     #跳出本次循环
print(i)

 for+else

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

运行结果:

打印九九乘法表

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

print()

运行结果:

数据类型内置方法

1.什么是内置

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

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

它表现的形式:名字() int() print()

1. 整型 int

int 的定义age=int(10)

进制转换

常见的进制数:二进制、八进制、十进制、十六进制(A B C D E F)

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.浮点型

float同样可以用来做数据类型的转换

比如:

salary = 10000.9
res = float(salary)
print(res,type(res))

结果:

3.字符串

str()可以将任意数据类型转换成字符串类型,通过索引取值 

res = 12.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})))

运行结果:

字符串内置的方法

1.索引取值

res = 'helloworld'
print(res[0])
print(res[-3])  # -号代表反向取值

结果:

 2.切片:顾头不顾尾

res = 'helloworld'
print(res[0:3])  # hel
print(res[2:6])  # llow
print(res[0:9:2])  # hlool 步长

运行结果:

 

3.反向切片:

res = 'helloworld'
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,翻转字符串其中一种方式

运行结果:

4.长度len:

print(len(res))  #   length---->len
print(len([1, 2, 3, 4]))
print(len({'a':1, 'b':2}))

运行结果:

 5.strip移除字符串首尾指定的字符(默认移除空格)

l = ' helloworld '
print(l)
print(l.strip())
print(l.lstrip())
print(l.rstrip())

运行结果:

 去除特殊符号:

l = '@@hello@world@@'
print(l)
print(l.strip('@'))
print(l.lstrip('@'))
print(l.rstrip('@'))
    # 只能去除两边的特殊字符,中间的不好去

结果:

 6.切分split

l = 'helloworld'
l = 'kevin 18 123'
l = 'kevin|18|male'
print(l.split())  # ['kevin', '18', '123']  默认是空格切分,切分之后是列表的形式
print(l.split('|'))  # ['kevin', '18', 'male']  默认是空格切分,切分之后是列表的形式
print(l.rsplit('|', maxsplit=1))  # 从右边开始切分,且只切分一次

结果:

 

posted @ 2023-05-18 20:57  Maverick-Lucky  阅读(37)  评论(0)    收藏  举报