day04-if条件判断

本文介绍了Python中的循环语句,包括for循环遍历序列和使用range()函数,以及while循环的使用,强调了缩进在Python代码块中的重要性。还讨论了break和continue语句在循环控制中的作用,以及如何使用else子句与循环结合。此外,文章提供了多个示例和练习来加深理解。
摘要由CSDN通过智能技术生成

day07循环2之for循环

<a name="NDftH"></a>
# 缩进补充
在 Python 中,对于类定义、函数定义、**流程控制语句**、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。<br />  注意,Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。
```python
dream = int(input('请输入你的愿望选项:'))
if dream == 1:
    print('有钱')
elif dream == 2:
    print('时光倒流')
elif dream == 3:
    print('和岳岳结婚')
elif dream == 4:
    print('长生')
elif dream == 5:
    print('钢铁的肾')
else:
    print('你在做梦!')

```
Python 对代码的缩进要求非常严格,同一个级别代码块的缩进量必须一样,否则解释器会报 SyntaxError 异常错误。
<a name="bx0sl"></a>
# 语句与代码块补充
语句由关键字、标识符、表达式组成。
```python
a = 1
print(a)
print(1)
```
而代码块由若干条语句组成。通常Python中的代码块是通过缩进来创建的。
```python
age = 18
if age>=18:
    print('你已经成年了!')

```
在Python中,使用冒号:指出接下来是一个代码块,并将该代码块中的每行代码都缩进相同的程度。发现缩进量与之前相同时,你就知道当前代码块到此结束了。<br />使用缩进来表示新的代码块是Python语言的特色之一。
<a name="NvAzI"></a>
# pass占位符补充
python3中的pass语句是一个空语句,什么都不做,执行它时什么也没有发生,是一个空操作。<br />      pass语句通常用作占位符(place-holder),即当用户不知道要编写什么代码时,用户只需在那行上放置pass。<br />      在语法上需要有条语句但是确不希望执行任何命令或代码时可以使用pass。用户可以简单地将pass放置在不允许空代码的地方,例如函数定义、类定义(通常用于创建最小类)、循环或if语句中。用户使用pass语句可以避免这个错误。
<a name="xqIQT"></a>
# while...else
Python中的循环可以和else配合使用,else下方缩进的代码指的是**当循环正常结束之后要执行的代码**。
<a name="Wjrod"></a>
### 语法规则
```python
while 条件:
    条件成立重复执行的代码
else:
    循环正常结束之后要执行的代码
```
<a name="e8yJP"></a>
### while...else之终止与退出循环 
```python
i = 1
while i <= 5:
    if i == 3:
        print('这遍道歉说的不真诚')
        break
    print('媳妇,我错了')
    i += 1
else:
    print('媳妇原谅我了,哈哈哈')

总结: 所谓else指的是循环正常结束之后要执行的代码,即如果是break终止循环的情况,
else下方缩进的代码将不执行。

i = 1
while i <= 5:
    if i == 3:
        i += 1  # 当用到continue时,计数器一定要加上,不然会出现死循环
        continue
    print('媳妇,我错了')
    i += 1
else:
    print('媳妇原谅我了,哈哈哈')

总结:因为continue是退出当前你一次循环,继续下一次循环,所以该循环在continue控制下是可以正常结束的,
当循环结束后,则执行了else缩进的代码。
```
<a name="aad25aa1"></a>
# for...in...循环
> **Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。**
> for-in遍历的对象必须是**可迭代**对象。

<a name="fUaCu"></a>
### 语法规则
```python
for 临时变量 in 待处理数据集:
   重复执行代码
```
> 理论上来讲,for循环无法构建无限循环(待处理的数据集不可能无限大)

**实例**
```python
# 遍历字符串
for i in 'Python':     # 第一个实例
    print(i)
```
> 可以看出for循环是将字符串的内容**依次取出**,所以for循环也被称之为**遍历循环**

**练习**
```python
# 字符串 name = "hello world python i love you"
# 通过for循环遍历所有的o
name = "hello world python i love you"
for i in name:
    if i == "o":
        print(i)
```

---

<a name="d18c2f48"></a>
# range()函数
> for循环本质上是遍历**“序列类型”**,但是,使用**range**函数,可以获得一个简单的**数字序列**

**语法:**
```python
range(num)
# 获得一个从0开始,到num结束的数字序列(不含num本身)
# 例如range(5),获得的数据是[0,1,2,3,4]

range(num1,num2)
# 获取一个从num1开始,到num2结束的数字序列(不含num2本身)
# 例如range(2,8),获得的数据是[2,3,4,5,6,7]
 
range(num1,num2,step)
# 获取一个从num1开始,到num2结束的数字序列(不含num2本身)
# step 为步长,默认为1
# 例如range(1,10,2),获取到的数据是[1,3,5,7,9]

num1 = 10
num2 = 0
range(num1,num2,-1)
# 从10到1,依次打印,(不含num2本身)
# range(10,0,-1),获取到的数据是[10,9,8,7,6,5,4,3,2,1]
```
<a name="480c216f"></a>
## 实例
```python
# 输出0~9
for i in range(10):
    print(i)
    
# 输出1~100
for i in range(1,101)

# 输出1~100,每次跳过一个数字
for i in range(1,101,2):
    print(i)
```
<a name="9df708ac"></a>
# for循环的嵌套应用
**生活中的嵌套**
> 和女朋友吵架,每天道歉10遍,持续5天

```python
for 临时变量 in 待处理数据集:
    重复执行代码一
    重复执行代码二
    重复执行代码三
   for 临时变量 in 待处理数据集:
        重复执行代码三
        重复执行代码三
        重复执行代码三
```

- **坚持道歉5天**
- **每天道歉10遍**
```python
for i in range(1,6):
    print(f"这是我第{i}天的道歉")
    for j in range(1,11):
        print(f"老婆,我错了,这是我今天的第{j}次道歉")
    print(f"老婆,第{i}天的道歉结束。。。")

print(f"我已经道歉了{i}天了,老婆不生气了")
```
**for循环和while循环配合使用**
```python
for i in range(1,6):
    print(f"这是我第{i}天的道歉")
    j = 1
    while j<=10:
        print(f"老婆,我错了,这是我今天的第{j}次道歉")
        j+=1
    print(f"老婆,第{i}天的道歉结束。。。")
```

---

<a name="458345fb"></a>
# break和continue
while循环和for循环都是重复性的执行特定的操作,在这个过程中,会出现一些其他情况,让我们不得不

-  跳过这次循环,进入下一次循环 
-  终止当前循环  
<a name="continue"></a>
## continue
> 中断本次循环,进入下一次循环

```python
# 碰见7的倍数直接跳过
for i in range(100):   # 遍历出0~99
    if i % 7 == 0:    # 判断i是7的倍数
        continue      # 满足条件直接跳过
    print(i)         # 打印出其余的数字
```
<a name="break"></a>
## break
> 终止循环,结束当前循环

```python
# 当马自达刷完后直接停止,因为后面是劳斯莱斯
li = ["马自达","马自达","马自达","劳斯莱斯","劳斯莱斯","劳斯莱斯","劳斯莱斯"]
for i in li:
    if i == "劳斯莱斯":
        print("碰见劳斯莱斯了")
        break
    print("正在刷马自达。。。")
```

---

<a name="fSKFP"></a>
# 练习
<a name="VAA3z"></a>
## 1~100偶数的和
<a name="Pt72Y"></a>
## 求5的阶乘!
<a name="wvYFK"></a>
## 9*9乘法表

作业

"""
1、输入一个小数, 请尝试转换成整数、字符串及浮点数.
2、输入两个整型或浮点数进行(随便选一个比较运算符)进行比较操作
3、输入一个变量判断它的变量值是否在列表[1, '二', 3.1, True]中
"""

"""1"""
# number = input('请输入一个小数:')  # 1.2
# print(int(eval(number)))
# print(int(float(number)))
# print(number)
# print(float(number))

"""2"""
# number1 = float(input('请输入第一个小数:'))  # 1.2
# number2 = float(input('请输入第二个小数:'))  # 1.2
# print(number1 > number2)

"""3"""

li = [1, '二', 3.1, True]  # int
number4 = input('请随机输入一个数字:')  # str
print(number4 in li)

if语句初体验

# if False:   #条件是可以根据咱们的需求进行更改的
#     print('条件成⽴执⾏的代码1')
#     print('条件成⽴执⾏的代码2')
# # 下⽅的代码没有缩进到if语句块,所以和if条件⽆关
# print('我是⽆论条件是否成⽴都要执⾏的代码')

# age = int(input('请输入你的年龄:'))
# agemax = int(input('请输入符合上网上的最大年龄值:'))
# if age >= 18 and age<= agemax:
#     print('成年了有上网资格,你还是比较适合去网吧上网')
# else:
#     print('不太精准的符合上网的需求')

请随机输入一个数字:1
False

进程已结束,退出代码0

 if嵌套

print()
"""
不确定因素  1、有没有钱  2、有没有座位  

"""
money = input('请输入你有没有钱(有/无):')
if money == '有':
    print('请上车')
    seat = input('请输入现在还有没有座位(有/无):')
    if seat == '有':
        print('有座位,请坐')
    else:
        print('没有座位你只能站着了!')
else:
    print('对不起,你不能上车')

请输入你有没有钱(有/无):有
请上车
请输入现在还有没有座位(有/无):无
没有座位你只能站着了!

进程已结束,退出代码0

if判断练习

print()
"""
1、动物园想在新建一个三角形的人工湖,一是为了养鱼美观,二是可以循环水资源。
从键盘输入三条边 A、B、C 的边长,请编程判断能否组成一个三角形。
(可以组成三角形的要素,任意两边之和大于第三边,任意两边之差小于第三边)
要求:如果三条边长 A、B、C 能组成三角形的话,输出 YES,否则 NO。
"""
A = int(input('请输入第一条边长:'))  # ctrl+D
B = int(input('请输入第二条边长:'))
C = int(input('请输入第三条边长:'))

if A + B > C and A - B < C and A + C > B and A - C < B and B + C > A and B - C < A:
    print("YES")
else:
    print("NO")


"""
2、从键盘接收一个十一位的数字,判断其是否为尾号5连(最后5个数一样)的手机号。
规则:
第 1 位是 1,
第二位可以是数字 358 其中之一,
后面 4 位任意数字,
最后 5 位为任意相同的数字。例如:
18601088888、13912366666 则满足。
注意:不满足的输出“false”,满足要求的输出“true”。
"""
phonenumber = input('请输入一个十一位的数字:')
print(phonenumber)  # 扩展 索引是从0开始的
"""
数据 1 8 6 0 1 0 8 8 8 8 8
索引 0 1 2 3 4 5 6 7 8 9 10

第一位  phonenumber[0]
第二位  phonenumber[1]
后面4位任意  代指的就是 第三位到第六位  phonenumber[2:6]  2345    左闭右开  能够取到2 但是不能取到6 
最后5位     代指的就是 第七位到第十一位   phonenumber[6:11]  678910

集合set  去除重复数据的数据类型 
len计算长度的函数   
"""
# if phonenumber[0] == '1' and phonenumber[1] in ['3', '5', '8'] and len(set(phonenumber[6:11])) == 1:
#     print('true')
# else:
#     print('flase')

 

请输入第一条边长:2
请输入第二条边长:3
请输入第三条边长:4
YES
请输入一个十一位的数字:11111111111
11111111111

进程已结束,退出代码0

if-elif-else

print()
# 需求: 根据你选择的序号 输出相对应的梦想
# 1、赚5千万
# 2、考清华北大
# 3、养只羊驼
# 4、自驾游
# 5、找个富婆
# 6、赫本

choose = input('请输入你要选择的序号(1-6):')  # 1 2 3 4 5 6
if choose in ['1', '2', '3', '4', '5', '6']:
    if choose == '1':
        print('赚5千万')
    elif choose == '2':
        print('考清华北大')
    elif choose == '3':
        print('养只羊驼')
    elif choose == '4':
        print('自驾游')
    elif choose == '5':
        print('找个富婆')
    # elif choose == '6':
    #     print('赫本')
    else:  # 永远只有一个
        print('梦想没有了')
else:
    print('你输入的序号有误,请重新输入 ')

 
请输入你要选择的序号(1-6):4
自驾游

进程已结束,退出代码0

多重判断

age = int(input('请输⼊您的年龄:'))
if age < 18:
    print('童⼯⼀枚')
elif age >= 18 and age <= 60:   # 多个条件进行判断
# age >= 18 and age <= 60 可以化简为 18 <= age <= 60
    print('合法⼯龄')
elif age > 60:
    print('可以退休')

 

请输⼊您的年龄:18
合法⼯龄

进程已结束,退出代码0

了解循环

 

print()
"""
生活中的循环   
1、时钟上的时间  
2、跑3000米的操场 
3、加特林的旋转  
4、电风扇的转动  

程序中的循环  
1、打印100句   我很帅  
2、多次使用一个功能100次  
3、将信息填入系统  
4、下载10000张图片  
"""

while循环

print()
"""
语法如下: 
while 判断条件:
     执行语句

循环执行某一个操作  操作都是有出口的  改变我们循环的判断条件 
如果说咱们不去进行修改  就会造成死循环  

"""

# 需求一 打印1-100的整数    12 3 4 5 6 7 8 9 10
# a = 1
# while a < 101:
#     print(a)
#     a += 1  # 等价于 a = a+1

# 需求二、将1-100之间的整数进行相加    求和
# 1 2 3 4 5 6 7 8 9
# a = 0
# b = 0
# while a < 5:
#     # print(a)
#     a += 1  # 等价于 a = a+1
#     b += a  # 等价与 b = b+a
#     print(b)


# 计算1-100偶数和
a = 0
b = 0
while a < 100:
    # print(a)
    a += 1  # 等价于 a = a+1
    if a % 2 == 0:  # 余数为0即可
        b += a  # 等价与 b = b+a
        print(b)

 

2
6
12
20
30
42
56
72
90
110
132
156
182
210
240
272
306
342
380
420
462
506
552
600
650
702
756
812
870
930
992
1056
1122
1190
1260
1332
1406
1482
1560
1640
1722
1806
1892
1980
2070
2162
2256
2352
2450
2550

进程已结束,退出代码0

 三目运算符

a = 4
b = 2

if a > b:
    print(a, '大')
elif a == b:
    print('两者相等')
else:
    print(b, '大')

# 判断两个数 那个要大一点
# c = a if a > b else b
# print(c)
"""改成三种情况下的三目运算符"""
# 可以把一个三目运算符 当成一个整体  作为我另一个三目运算符的条件
print(a if a > b else b if a < b else '相等')

4 大
4

进程已结束,退出代码0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值