理想国Python基础教程之循环

01.编译型和解释型

what:是什么

  • 编译型:一次性编译成二进制,再执行
    • 优点:执行效率高
    • 缺点:开发效率低
    • 代表语言:C
  • 解释型:逐行解释成二进制,再执行
    • 优点:开发效率高
    • 缺点:执行效率低
    • 代表语言:Python

why:为什么了解

  • 要清楚的知道Python是一门解释型语言
  • 了解Python的优点和缺点

where:在哪里使用

  • 交流

when:什么时候使用

  • 面试的时候
  • 和别人聊天的时候

how:怎么使用

  • 说出来

02.while循环

what:是什么

  • Python中用来编写循环代码的关键字
  • 适合不确定次数的循环

why:为什么要学习

  • 循环在程序中非常常见,是基础必学的知识点
  • 使用循环能帮我们解决很多复杂的逻辑问题

where:在哪里使用

  • 可以在程序的任何地方使用

when:什么时候使用

  • 当需要重复执行的时候使用
  • 比如,不断的刷新页面,重复的累加数字等

how:怎么使用

  • while简单循环
  • while-True无限循环
  • while-else循环
  • while嵌套循环

03.while简单循环

what:是什么

  • Python基本语法
  • 最简单的循环结构

why:为什么要学习

  • 基础必知必会

where:在哪里使用

  • 在任何需要循环的地方都可以使用
  • 适合次数不固定的循环

when:什么时候使用

  • 当代码需要重复执行的时候

how:怎么使用

循环变量
while 条件运算符:
    循环语句
    结束条件

练习1:求1-100之间所有数的和

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习1:求1-100之间所有数的和
i = 1
num_sum = 0
while i < 101:
    num_sum += i
    i += 1
print(f"1到100之间所有数的和为:{num_sum}")

输出结果

1到100之间所有数的和为:5050

练习2: 打印1-100之间不断累加的和。比如1,1+2,1+2+3,…,1+2+3+…+100

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习2: 打印1-100之间不断累加的和。比如1,1+2,1+2+3,...,1+2+3+...+100
i = 1
num_sum = 0
while i < 101:
    num_sum += i
    print(num_sum)
    i += 1

输出结果

...
4753
4851
4950
5050

练习3:从控制台录入五个名字,然后输出

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习3:从控制台录入五个名字,然后输出
i = 0
while i < 5:
    name = input("请输入名字:")
    print(f'您输入的名字是:{name}')
    i += 1

输出结果

...
您输入的名字是:ccc
请输入名字:ddd
您输入的名字是:ddd
请输入名字:eee
您输入的名字是:eee

04.while-True无限循环

what:是什么

  • 无限循环又叫死循环
  • 会一直执行,不会自动结束
  • 如果想要退出循环,可以使用break关键字主动结束

why:为什么使用

  • 在实际开发中,需要使用无限循环的场景非常的多
  • 比如游戏开始,就是一次无限循环

where:在哪里使用

  • 可以在任何需要使用无限循环的地方使用

when:什么时候使用

  • 当循环次数不确定,循环条件也不确定的时候使用

how:怎么使用

while True:
    循环语句

练习1:不断录入姓名并输出,然后询问是否退出,如果输入’y’,则退出

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习1:不断录入姓名并输出,然后询问是否退出,如果输入'y',则退出
while True:
    name = input("请输入姓名:")
    print(name)

    if input("是否继续?(y/n):") != 'y':
        break

练习2:不断的录入两个数做加法并输出,然后询问是否退出,输入’y’,则退出

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习2:不断的录入两个数做加法并输出,然后询问是否退出,输入'y',则退出
while True:
    num1 = int(input("请输入第一个数:"))
    num2 = int(input("请输入第二个数:"))

    result = num1 + num2
    print(f'{num1} + {num2} = {result}')

    if input('是否继续?(y/n):') != 'y':
        break

练习3:不断录入个人信息(姓名,年龄,性别,电话,邮箱,住址),并输出,然后循环是否退出,输入’y’,则退出

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习3:不断录入个人信息(姓名,年龄,性别,电话,邮箱,住址),并输出,然后循环是否退出,输入'y',则退出
while True:
    name = input("请输入姓名:")
    age = int(input("请输入年龄:"))
    sex = input("请输入性别:")
    phone = input("请输入电话:")
    email = input("请输入邮箱:")
    address = input("请输入住址:")

    print(f'姓名:{name},性别:{sex},年龄:{age},电话:{phone},邮箱:{email},住址:{address}')

    if input('是否继续?(y/n):') != 'y':
        break

05.while-else循环

what:是什么

  • 一种特殊的循环结构
  • 循环结束以后,会执行else语句块的代码

why:为什么使用

  • Python中特殊的语法结构
  • 偶尔会使用到
  • 面试被问到的概率比较高

where:在哪里使用

  • 可以在程序的任何地方使用

when:什么时候使用

  • 当想要记录所有条件都不满足的情况的时候

how:如何使用

循环变量
while 判断循环变量的条件:
    条件满足语句
    循环变量变化
else:
    条件不满足的语句

练习1:循环1-10,当循环结束的时候打印"循环结束"

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习1:循环1-10,当循环结束的时候打印"循环结束"
i = 1
while i < 11:
    pass
    i += 1
else:
    print("循环结束")

练习2:循环录入两个数,计算两个数的和并输出。使用while-else实现如果和小于0则退出循环。

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习2:循环录入两个数,计算两个数的和并输出。使用while-else实现如果和小于0则退出循环。
result = 0
while result >= 0:
    num1 = int(input("请输入第一个数:"))
    num2 = int(input("请输入第二个数:"))
    result = num1 + num2
    print(f'{num1} + {num2} = {result}')
else:
    print("和小于0,退出循环")

练习3:统计1000以内能够同时被3,5,8整除的数。使用while-else实现统计结束以后打印所有这些数的和。

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习3:统计1000以内能够同时被3,5,8整除的数。使用while-else实现统计结束以后打印所有这些数的和。
i = 3
num_sum = 0
while i <= 1000:
    if i % 3 == 0 and i % 5 == 0 and i % 8 == 0:
        num_sum += i
    i += 3
else:
    print(num_sum)

06.while嵌套循环

what:是什么

  • 循环中嵌套循环

why:为什么学习

  • 循环的嵌套也是一种非常常见的语法结构

where:在哪里用

  • 可以在任何需要循环嵌套的地方使用

when:什么时候使用

  • 当数据结构是嵌套的时候
  • 当一次循环中还需要做循环的时候

how:如何使用

while 条件:
    while 条件

练习1:使用"*"打印一个4行4列的正方形

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习1:使用"*"打印一个4行4列的正方形
i = 1
while i < 5:
    j = 1
    while j < 5:
        print('*', end='\t')
        j += 1
    i += 1
    print()

练习2:使用"*"打印一个9行的三角形

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习2:使用"*"打印一个9行的三角形
i = 1
while i < 10:
    j = 1
    while j < i + 1:
        print('*', end='\t')
        j += 1
    i += 1
    print()

练习3:打印九九乘法表

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习3:打印九九乘法表
i = 1
while i < 10:
    j = 1
    while j < i + 1:
        print(f'{j} x {i} = {j * i}', end='\t')
        j += 1
    i += 1
    print()

07.格式化输出

what:是什么

  • 按照指定的格式输出内容

why:为什么要学习

  • 有时候我们想要调整输出的格式

where:在哪里使用

  • 在需要输出内容的地方

when:什么时候使用

  • 当我们想要按照指定格式输出内容的时候

how:如何使用

  • format函数
  • %格式化
  • f’’ 字符串

练习1:使用format函数输出姓名,年龄,性别

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习1:使用format函数输出姓名,年龄,性别
name = '张大鹏'
age = 33
sex = '男'
print("姓名:{}\t性别:{}\t年龄:{}".format(name, sex, age))
print(f"姓名:{name}\t性别:{sex}\t年龄:{age}")

练习2:使用%输出浮点数88.99999,只保留两位小数

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习2:使用%输出浮点数88.99999,只保留两位小数
num = 88.99999

print("%.2f" % (num))
print("{:.2f}".format(num))

练习3:使用%输出1,在前面补五个0

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习3:使用%输出1,在前面补五个0
num = 1
print("%06d" % (num))
print("{:06d}".format(num))

08.for循环

what:是什么

  • for循环是除了while循环以外的另一种循环
  • for循环一般用来迭代容器类型的对象

why:为什么学习

  • for循环使用简单方便
  • 一般的程序中都包含各种各样的for循环

where:在哪里用

  • 在程序的大部分位置都可以使用

when:什么时候使用

  • 当需要固定次数循环的时候
  • 当需要迭代对象的时候

how:怎么使用

  • for-range循环
  • for-else循环
  • for循环嵌套
  • for迭代对象

09. for-range循环

what:是什么

  • Python中最常见的一种循环组合

why:为什么要学习

  • 简单的使用固定次数的循环
  • 初步了解切片的思想

where:在哪里使用

  • 在需要固定次数循环的地方

when:什么时候使用

  • 需要固定次数循环的时候
  • 需要指定整数的时候

how:如何使用

  • 看下文

练习1:求1-100之间(包括100)所有整数的和

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习1:求1-100之间(包括100)所有整数的和
num_sum = 0
# range的参数:开始数字,结束数字,步长(每两个数之间间隔多少:等差)
for i in range(1, 101, 1):
    num_sum += i
print(num_sum)

练习2:求1-10000之间所有6的倍数的和

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习2:求1-10000之间所有6的倍数的和
num_sum = 0
# 从6开始,每次+6,直到10000结束
for i in range(6, 10000, 6):
    num_sum += i
print(num_sum)

练习3:在控制台打印倒计时10秒

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习3:在控制台打印倒计时10秒
import time

# 从10开始,到0结束(不包括0),每次数字减少1
for i in range(10, 0, -1):
    print(i)
    time.sleep(1)  # 暂停1秒钟

10.for-else循环

what:是什么

  • 和while-else一样,在循环结束以后执行else语句块

why:为什么学习

  • 有时候对循环结束以后,需要做特殊操作

where:在哪里使用

  • 在需要使用循环的地方都可以使用

when:什么时候使用

  • 当需要在for循环结束以后做特殊操作的时候使用

how:怎么使用

for 循环变量 in  可迭代对象:
    循环执行的代码
else:
    循环结束执行的代码

练习1:使用for-else统计1-100之间所有数的和,当循环结束的时候输出结果

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习1:使用for-else统计1-100之间所有数的和,当循环结束的时候输出结果
num_sum = 0
# range的第三个参数是1的时候可以省略不写
for i in range(1, 101):
    num_sum += i
else:
    print(num_sum)

练习2:尝试使用for-else统计1-10000之间3的倍数的和,当这个和值大于100的时候结束循环并输出和值

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习2:尝试使用for-else统计1-10000之间3的倍数的和,当这个和值大于100的时候结束循环并输出和值
num_sum = 0
for i in range(3, 10000, 3):
    num_sum += i
    if num_sum > 100:
        break
# 注意:当for循环被break打断的时候,不会触发else
else:
    print("for循环的else:", num_sum)

print("for循环外面:", num_sum)

练习3:尝试使用for-else统计从2020年开始之前的所有闰年,统计到4个的时候结束统计,并输出相应的闰年

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习3:尝试使用for-else统计从2020年开始之前的所有闰年,统计到4个的时候结束统计,并输出相应的闰年
count = 0
result = ''
for i in range(2020, 0, -4):
    result += str(i) + '\t'
    count += 1
    if count == 4:
        break
print(result)

11.for循环嵌套

what:是什么

  • for循环中还存在for循环就是for循环嵌套

why:为什么学习

  • for循环嵌套能够生成或者遍历层次较深的结构
  • 比如二维数组,三维数组

where:在哪里使用

  • 可以使用for循环的地方一般都可以使用for循环嵌套

when:什么时候使用

  • 当需要遍历较深层次的容器的时候
  • 当需要生成二维以上的数据的时候

how:如何使用

for 循环变量1 in 迭代对象1:
    外层循环语句
    for 循环变量2 in 迭代对象2:
        内层循环语句
    外层循环语句

练习1:用"-"打印9行9列的正方形

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习1:用"-"打印9行9列的正方形
for i in range(9):
    for i in range(9):
        print('-', end='\t')
    print()

练习2:用"-"打印9行的三角形

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习2:用"-"打印9行的三角形
for i in range(9):
    for i in range(i + 1):
        print('-', end='\t')
    print()

练习3:打印九九乘法表

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习3:打印九九乘法表
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f'{j} x {i} = {i * j}', end='\t')
    print()

12.for迭代对象

what:是什么

  • for循环遍历可迭代对象

why:为什么学习

  • for遍历可迭代对象是Python中最常见的操作之一
  • 基础必知必会内容

where:在哪里使用

  • 只要是可迭代对象,都可以使用for遍历

when:什么时候使用

  • 固定次数循环的时候
  • 取出可迭代对象的每一个元素的时候

how:如何使用

  • 迭代字符串
  • 迭代列表
  • 迭代元组
  • 迭代字典

练习1:录入一个字符串,统计字符串中每个字符出现了多少次并打印

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习1:录入一个字符串,统计字符串中每个字符出现了多少次并打印

temp_str = input("请输入任意字符串:")
temp_set = set(temp_str)
for i in temp_set:
    print(f"{i}: {temp_str.count(i)}")

练习2:存在一个列表[1,2,3],将列表中的每一个元素乘以10的3次方后生成新的列表并打印

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习2:存在一个列表[1,2,3],将列表中的每一个元素乘以10的3次方后生成新的列表并打印

num_list = [1, 2, 3]
result_list = list(map(lambda x: x * (10 ** 3), num_list))
print(result_list)

练习3:存在元组(1,2,3),这个元组每个元素之和的5次方除以100000大于1吗

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习3:存在元组(1,2,3),这个元组每个元素之和的5次方除以100000大于1吗
num_tuple = (1, 2, 3)
flag = sum(num_tuple) ** 5 / 100000 > 1
print(flag)

练习4:录入用户信息,用字典存储,遍历字典的每个键并打印键值

#! /usr/bin/python
"""
作者:张大鹏
描述:练习
"""

# 练习4:录入用户信息,用字典存储,遍历字典的每个键并打印键值
person = {}
person['name'] = input('请输入姓名:')
person['age'] = int(input("请输入年龄:"))
person['sex'] = input("请输入性别:")

for i in person.keys():
    print(f"{i}: {person.get(i)}")

你可能感兴趣的:(python)