005.python基础之循环结构与数字类型数据

一、流程控制之while循环

(一)什么是循环

循环指的就是重复做某件事情。

(二)为何要有循环

因为人为了控制计算机能够像人一样重复去做某件事。

(三)如何使用循环

使用while语句可以实现循环,由于while循环需要借助条件判断,所以能够循环多少次取决于条件何时变为假。

1.while循环的基本语法

while 条件:
	代码1
	代码2
	代码3
	...
	

2.死循环

使用while循环时,如果条件的不变,循环就会变为无限循环,即死循环。

如果循环仅仅是执行代码,并不会对计算机造成太大负担。

while True:
    name = input('用户名:')
    pwd = input('密码:')
    print(name,pwd)
    

如果循环是重复计算,一直进行运算会造成CPU过载。

while True:
    1+1
    

3.结束while循环的两种方式

(1)把条件变为False,不会立刻结束循环,会等到把本次循环体代码都运行完毕后,下一次循环开始重新判断条件时才会结束while循环。

示例1:

n = 1
while n <= 5:
    if n % 2 == 0:
        print(n)
    n += 1

示例2:

tag = True
while tag:
    inp_user = input("请输入用户名:  ")
    inp_pwd = input("Password:  ")
    if inp_user == "张三" and inp_pwd == "123":
        print("登录成功")
        tag = False
    else:
        print("用户名或密码错误。请重新输入")

    print("李四来了")

(2)break结束本层循环,只要运行到break就会立即结束while循环,本次循环的后续代码都不会执行了。

while True:
    inp_user = input("用户名:  ")
    inp_pwd = input("密码:    ")
    if inp_user == "张三" and inp_pwd == "李四":
        print("登录成功")
        break  # 结束本层循环,即此次while循环结束
    else:
        print("账号或密码错误")
        
    print("李四来了")
    

4.while循环的嵌套

while True:
    print('here is fist')
    while True:
        print("here is second")
        break
    break


n = 1
while n <= 3:
    print("外层循环第%s次" % n)
    i = 1
    while i <= 2:
        print("=====>>>>>内层循环第%s次" % i)
        i += 1
    n += 1


n = 1  # 也可以自定义tag=True
while n <= 3:
    print("外层循环第%s次" % n)
    tag = True
    while tag:
        print("=====>>>>>内层循环第1次" )
        tag = False
    n += 1

5.while+continue:

continue结束本层循环,直接进入下一次

n = 1
while n <= 5:
    if n == 4:
        n += 1
        continue
        # n += 1  # 切忌在continue的同级代码下的代码
    print(n)
    n += 1

while True:
    inp_user = input("用户名:  ")
    inp_pwd = input("密码:  ")
    if inp_user == "张三" and inp_pwd == "李四":
        print("登录成功")
    else:
        print("登陆失败,请重新登录")
        continue
    print("Loading================")
    break

6.while+else:

else的子代码会在循环正常结束的情况下运行(被break终结while循环的情况称之为非正常结束)。

n = 1
while n <=5:
    if n == 4:
        n += 1
        continue
    print(n)
    n += 1
else:
    print('else 子代码块运行')

n = 1
while n <=5:
    if n == 4:
        break  # 结束后,后续代码不执行
    print(n)
    n += 1
else:
    print('else 子代码块运行')    
  

二、流程控制之for循环

(一)为何要有for循环

for循环是为了解决while循环在某些场景下较为复杂的问题,比如循环取值,起到精简代码的作用。

names = ["张三","李四","罗翔"]
i = 0
while i < len(names):
    print(names[i])
    i += 1

注意:for循环的次数取决in后跟那个对象里有多少值

names = ["张三","李四","罗翔"]
for item in names:
    print(item)

dic={0.1:"张三","k2":"李四"}
for k in dic:
    print(k,dic[k],type(k))
    

(二)如何使用for循环

1.for + range:

range(起始位置(不写默认0),结束位置(不取值,必写),步长(不写默认1))

"""
>>> range(1,5,1) # 1 2 3 4
[1, 2, 3, 4]
>>> range(1,5,2) # 1 3
[1, 3]
>>>
>>> range(1,5)
[1, 2, 3, 4]
>>> range(5) # 0 1 2 3 4
[0, 1, 2, 3, 4]
"""

for i in range(5):
    print(i)
0
1
2
3
4

for j in range(1,5,2):
    print(j)
1
3

n = 1
while n <= 3:
    print("do it *%s" % n)
    n += 1
do it *1
do it *2
do it *3

for i in range(3):
    print("do it *%s" % i)  # 使用for之后语法简洁
do it *0
do it *1
do it *2
    

2.for + break

for i in range(1,6):
    if i == 4:
        break  # 直接打断循环
    print(i)
1
2
3

3.for + continue

for i in range(1,6):
    if i == 4:
        continue  # 跳过本层,由于取值不被影响,故继续执行循环
    print(i)
1
2
3
5

4.for + else

for i in range(1,6):
    print(i)
else:
    print("======")
1
2
3
4
5
======

5.for 循环嵌套

for i in range(3):
    print("外层循环第%s次" % i)
    for j in range(2):
        print("=======>>>>>内层循环第%s次" % j)
外层循环第0次
=======>>>>>内层循环第0次
=======>>>>>内层循环第1次
外层循环第1次
=======>>>>>内层循环第0次
=======>>>>>内层循环第1次
外层循环第2次
=======>>>>>内层循环第0次
=======>>>>>内层循环第1次

6.强调:在循环的过程中不要修改被循环的对象

l = ['a', 'bb', 'c']
for i in l:
    # del l[-1] # 在读的过程中不要对被循环对象做增、删除、修改操作,否则会使程序可读性变差。
    print(i)

三、基本数据类型之数字类型

在python3中有两个与数字有关的数据类型,整型int与浮点型float,为了方便理解,将他们合并称为数字类型。

(一)基本使用

1.用途

int:记录年龄、等级等

float:身高、体重、薪资等

2.定义方式

x = 11  # x=int(11),解释器帮助省略了int()表达式
y = 3.1 # y=float(3.1)
print(type(y))  # <class 'float'>

# 数据类型转换
res=str(x)
print(res,type(res)) # "11"

age = input('>>>: ') # age="11"
res=int(age) + 1  #  数据类型转换后方可进行数字运算
print(res)  # 11 <class 'str'>

# int可以把纯数字的字符串转换成整型,不可以有小数点等其他非数字内容
res=int("123123123123123")
print(res,type(res))  # 123123123123123 <class 'int'>

# float可以把小数组成的字符串转换成浮点型
res=float("3.1")
print(res,type(res))  # 3.1 <class 'float'>

3.常用操作+内置的方法

主要用于数学运算符与比较运算。

# 需要掌握:
# 十进制转成二进制
print(bin(12306))  # 0b11000000010010

# 十进制转成八进制
print(oct(12306))  # 0o30022

# 十进制转成十六进制
print(hex(12306))  # 0x3012

(二)该类型总结

1.存一个值or存多个值

int与float都只能存一个值

2.可变or不可变

(1、可变:值变,id不变。可变不可hash 2、不可变:值变,id就变。不可变可hash)

int与float都是不可变类型

原文地址:https://www.cnblogs.com/huluhuluwa/p/13052775.html