6.1_3 Python3.x入门 P3 【基础】流程语句【循环结构】

本文详细介绍了Python3.x的基本语法、运算符、选择结构、循环结构、逻辑运算,包括if-elif-else、while、for循环,以及pass、break、continue的使用,适合初学者理解算法构造。
摘要由CSDN通过智能技术生成

相关链接



简介

  任何简单或复杂的算法都可以由1.顺序结构、2.选择结构(if语句)、3.循环结构(while语句,for-in语句)组合而成。


一、顺序结构(略)

if语句语法

if 要判断的条件:
	条件成立时,要做的事情 
	....

  注意:代码的缩进为一个tab键,或者4个空格,建议使用空格


二、选择结构

if、elif、else语句语法

# 基础用法
if 要判断的条件1:
	条件1成立时,要做的事情 
	....
else:
	条件1不成立时,要做的事情
	...

# 进阶用法
if 要判断的条件1:
	条件1成立时,要做的事情 
	....
elif 要判断的条件2:
	条件2成立时,要做的事情 
	....
elif 要判断的条件3:
	条件3成立时,要做的事情 
	....
else:
	条件123都不成立时,要做的事情
	...

2.1 if、elif、else选择结构

money = 1000;  # 余额
tips = "当前余额为 " + str(money) + " 元,请输入取款金额:"
get = int(input(tips))  # 取款金额
b = True
# 判断余额是否充足
if get < 0:
    print("取款金额不能为负")
elif get < money:
    print("取款成功,余额为" + str(money - get), "元。")
else:
    print("余额不足。")
"""测试结果1
当前余额为 1000 元,请输入取款金额:-5
取款金额不能为负
取款成功,余额为1005 元。
"""
"""测试结果2
当前余额为 1000 元,请输入取款金额:123
取款成功,余额为877 元。
"""
"""测试结果3
当前余额为 1000 元,请输入取款金额:1234
余额不足。
"""

2.2 选择结构嵌套

"""
 业务逻辑:如果是会员,大于200打1折,100-200打5折,低于100不打折
         如果不是会员,大于200打9折,低于200不打折
"""

isMember = input("是会员吗?y/n:")
if isMember not in ('y','n'):
    print("输入错误")
    quit()

money = int(input("购物金额:"))
if isMember == 'y':
    if money > 200:
        money *= 0.1
    elif money > 100 & money < 200 :
        money *= 0.5
if isMember == 'n':
    if money > 200:
        money *= 0.9

print("实际付款金额为:",str(money))
"""
是会员吗?y/n:y
购物金额:2000
付款金额为: 200.0
"""
"""
是会员吗?y/n:n
购物金额:150
实际付款金额为: 150
"""

三、条件表达式(三元运算符)

"""
 条件表达式类似于Java中使用的三元运算符,仅有if、else两种结果,不支持其他elif分支条件
"""

uname = input("用户名:")
pwd = input("密码:")

# 选择结构
if uname == "stenven" and pwd =="123":
    print("欢迎登陆!")
else:
    print("用户名或密码输入错误!")

print('-----')

# 条件表达式
print("欢迎登陆!" if uname == "stenven" and pwd =="123" else "用户名或密码输入错误!")

四、循环结构

4.1 rang() 循环 - 生成list

"""
    用于创建一个整数序列
    创建range对象的三种方式
        1)range(stop):创建[0,stop)之间的整数序列,步长为1
        2)range(start,stop):创建[start,stop)之间的整数序列,步长为1
        3)range(start,stop,step):创建[start,stop)之间的整数序列,步长为step
    返回一个迭代器对象
    range优点:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,
            因为仅仅需要存储start,stop和step,只有当用到时才会计算
    int与not in判断是否存在指定整数
"""
"""range(stop)"""
r = range(10)
l = list(r)  # 用于查看range对象中的整数序列
print(l)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

"""range(start,stop,step)"""
r = range(1, 50, 5)
l = list(r)
print(l)  # [1, 6, 11, 16, 21, 26, 31, 36, 41, 46]

"""int与not in判断是否存在指定整数"""
print(6 in r) # True
print(6 in l) # True
print(8 in r) # False
print(6 not in l) # False

4.2 while循环

"""
  循环分类 while    for-in
  语法:
      while 条件表达式:
          条件执行体(循环体)

  选择结构的if与循环while的区别:
      if判断一次,条件True执行一次
      while判断n+1次,条件为True执行n次
"""
a: int = 1

while a < 5:
    print(a) # 1 2 3 4
    a += 1

4.3 for循环

"""
  for-in循环:
      in表达从(字符串、序列等)中依次取值,又称为遍历
      for-in便利的对象必须是可迭代对象

  for-in语法结构:
      for 自定义的变量 in 可迭代对象:
          循环体

  【可迭代对象】:字符串、序列等

  循环体内不需要访问自定义变量,可以将自定义变量替代为下划线
"""
print("-------for-in String--------")
for i in "python":
    print(i)
"""
p
y
t
h
o
n
"""
print("-------for-in range()--------")
for i in range(2, 5, 1):
    print(i)
"""
2
3
4
"""
print("-------for-in nothing--------")
for i in range(3):
    print("hello world")
"""
hello world
hello world
hello world
"""
print("-------for-in 1-100偶数求和--------")
sum = 0;
for i in range(101):
    if i % 2 == 0:
        sum += i
print(sum)
"""2550"""

五、pass、break、continue


5.1 pass 跳过

  • 适用于:选择结构、循环结构
"""
  pass语句:什么都不做,只是一个占位符,用在语法上需要语句的地方
           并不会跳过,pass语句前面、后面的执行逻辑
  when:先搭建语法结构,还没想好代码怎么写
  where:1)if的条件执行体、2)for-in的循环体、3)函数的函数体
"""

answer = input("是会员吗?y/n")
if answer == 'y':
    print("123")
    pass
    print("321")
else:
    pass	# 这里如果什么都不写是不能通过编译的
"""
是会员吗?y/n y
123
321
"""

5.2 break 跳出循环

5.2.1 while - break

  • 适用于:循环结构
"""
     break语句:用于结束循环结构,通常与分支结构if一起使用
"""

# 键盘输入密码,最多3次,如果正确,提示登录成功,超过3次提示账户已锁定
password = "python"
i = 0;

while i < 3:
    if input("请输入密码:\n") == "python":
        print("密码正确,登陆成功")
        break
    elif i != 2:
        print("密码错误,剩余尝试次数:", 2 - i)
        i += 1
    else:
        print("密码错误,账户已锁定")
        break
"""
请输入密码:
python
密码正确,登陆成功
"""
"""
请输入密码:
1
密码错误,剩余尝试次数: 2
请输入密码:
2
密码错误,剩余尝试次数: 1
请输入密码:
3
密码错误,账户已锁定
"""

5.2.2 for - break

"""
    break语句:用于结束循环结构,通常与分支结构if一起使用
"""
# 键盘输入密码,最多3次,如果正确,提示登录成功,超过3次提示账户已锁定
password = "python"

for i in range(3):
    if input("请输入密码:\n") == "python":
        print("密码正确,登陆成功")
        break
    elif i != 2:
        print("密码错误,剩余尝试次数:", 2 - i)
    else:
        print("密码错误,账户已锁定")

5.2.3 嵌套循环 - break (九九乘法表)

'''实现99乘法表'''
for i in range(0, 10, 1):
    for j in range(1, i + 1, 1):
        if j > i:
            break
        print(str(i), "*", str(j), "=", str(i * j), end="\t")
    print("")
'''
1 * 1 = 1	
2 * 1 = 2	2 * 2 = 4	
3 * 1 = 3	3 * 2 = 6	3 * 3 = 9	
4 * 1 = 4	4 * 2 = 8	4 * 3 = 12	4 * 4 = 16	
5 * 1 = 5	5 * 2 = 10	5 * 3 = 15	5 * 4 = 20	5 * 5 = 25	
6 * 1 = 6	6 * 2 = 12	6 * 3 = 18	6 * 4 = 24	6 * 5 = 30	6 * 6 = 36	
7 * 1 = 7	7 * 2 = 14	7 * 3 = 21	7 * 4 = 28	7 * 5 = 35	7 * 6 = 42	7 * 7 = 49	
8 * 1 = 8	8 * 2 = 16	8 * 3 = 24	8 * 4 = 32	8 * 5 = 40	8 * 6 = 48	8 * 7 = 56	8 * 8 = 64	
9 * 1 = 9	9 * 2 = 18	9 * 3 = 27	9 * 4 = 36	9 * 5 = 45	9 * 6 = 54	9 * 7 = 63	9 * 8 = 72	9 * 9 = 81	
'''

5.3 continue 进入下一次循环

  • 适用于:循环结构

5.3.1 while - continue

"""
    continue语句:用于结束当前循环,进入下一次循环,通常预分支if一起使用
"""
'''输出1-20之间所有5的倍数'''
i: int = 1;

while i < 20:
    i += 1
    if i % 5 != 0: continue
    print(i)
"""
5
10
15
20
"""

5.3.2 for - continue

"""
    continue语句:用于结束当前循环,进入下一次循环,通常预分支if一起使用
"""
'''输出1-20之间所有5的倍数'''
i: int = 1;

for i in range(20):
    if i % 5 != 0: continue
    print(i)
"""
5
10
15
20
"""

5.3.3 嵌套循环 - continue

"""
  嵌套循环中的break和continue只用于控制本层循环
  else -> if ... else
       -> while ... else
       -> for ... else
"""
for i in range(1, 5):
    if (i % 2 == 0):
        continue
    else:
        print(i)
else:
    print("abc")
"""
1
3
abc
"""

六、逻辑运算

1. 在程序开发中,通常在判断条件时,会需要同时判断多个条件
2. 只有多个条件都满足,才能够执行后续代码,这个时候需要使用到逻辑运算符
3. 逻辑运算符 可以把多个条件按照逻辑进行连接,变成更复杂的条件
4. Python中的逻辑运算符包括:与and/或or/非not 三种

6.1 and

  • 两个条件同时满足,返回True
  • 只要有一个不满足就返回False
条件1 and 条件2

6.2 or

  • 两个条件只要有一个满足,返回True
  • 两个条件都不满足,返回False
条件1 or 条件2

# 条件改写,两种写法效果相同
if 0 < age and age < 100
if 0 < age < 100:

6.3 not

not 条件

# 这里的not只修饰条件1
if not 条件1 and 条件2:

22/06/27

M

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值