最新python入门基础及实战第三章 if分支与循环

python入门基础三 if分支与循环

=============================if 分支结构
if-elif-else

应用场景:针对不同的条件实现不同的操作。(不同的条件之间满足:如果其中一个条件已经满足,就没有再判断其他条件的必须)
语法:
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3

else:
代码段N

注意: 后面的条件是在前面的条件不成立的前提下进行判断的

练习:要求根据symbol的符号不同,对num与2进行不同的操作,例如:symbol是’+’ -> num就加2; ‘-’ -> num就减2; '’ -> num2,依次类推
如果symbol不是数学运算给出 ‘不能操作!’ 的提示

symbol = 'hshs'
num = 20
is_operate = True    # 当前数据是否已经操作
if symbol == '+':
    num += 2
elif symbol == '-':
    num -= 2
elif symbol == '*':
    num *= 2
elif symbol == '/':
    num /= 2
elif symbol == '//':
    num //= 2
elif symbol == '%':
    num %= 2
elif symbol == '**':
    num **= 2
else:
    is_operate = False
    print('不能操作!')
===================================if嵌套
1. if嵌套
在if语句中有其他的if语句

if 条件语句:
if 条件语句:
代码段
else:
代码段
else:
代码段

练习:如果num是奇数,就打印奇数,否则打印偶数。如果个位数是0,就打印’10的倍数’

num = '5'
if num % 2 == 0:
    print('偶数')
    if num % 10 == 0:
        print('10的倍数')
else:
    print('奇数')
2.三目运算符
  1. C 的三木算符:

表达式1?表达式2:表达式3

  • 判断表达式1的值是否是真,如果为真,则整个运算的结果是表达式2,否则整个运算结果是表达式3
int result = 10>20?30:40
printf(&result)
  1. python的三目运算符:

表达式2 if 表达式1 else 表达式3

  • 判断表达式1的值是否为True,如果为True,则整个运算的结果是表达式2,否则整个运算结果是表达式3
result = 30 if 100>20 else 40
print(result)

练习:根据年龄值打印成年或者未成年(用三目运算符完成)

age = 19
print('成年' if age>18 else '未成年')
=================================for 循环

循环的作用: 让代码重复执行

for循环
  • 语法:
    for 变量 in 序列:
    循环体

说明:

  1. for - 关键字;固定写法
  2. 变量 - 和定义变量的时候变量名的要求和规范一样;(如果这个变量在循环体中不使用,变量名可以用_代替)
  3. in - 关键字;固定写法
  4. 序列 - python中容器型数据类型,例如:字符串、列表、元组、集合、字典、迭代器、生成器、range等…
  5. : - 固定写法
  6. 循环体 - 和for保持一个缩进的一条或者多条语句;需要重复执行的代码

执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。
(for循环的执行次数,看序列中元素的个数)

for x in 'abc':
    print(x, 'hello world!')
2. range函数 - 产生指定范围的数字序列

range(N) - 产生一个[0, N) 的数字序列(N是正整数);例如:range(4) - 产生 0、1、2、3 的数字序列
range(M, N) - 产生一个[M, N) 的数字序列(M<N,并且M和N是整数);例如:range(-3, 3) - 产生: -3、-2、-1、0、1、2
range(M, N, step) - 产生一个[M, N)的数字序列,每次数值增加step;例如:range(-3, 3, 2) - 产生:-3、-1、1

  • 应用:打印100行 ‘hello world!’
for _ in range(100):
    print('HELLO WORLD!')

for x in range(4):        #打印出0-3的数字
    print('x1:', x)
  • 练习2
for x in range(-3, 3):
    print('x2:', x)

for x in range(-3, 3, 2):
    print('x3:', x)

for x in range(100, 49, -1):
    print('x4:', x)

练习1: 计算1+2+3+4+…+100的和

sum1 = 0
for x in range(1, 101):
    sum1 += x
print('和:', sum1)
  • 运行过程解析:

sum1 = 0
(x -> 1 ~ 100)
x = 1: sum1 += x -> sum1 = sum1 + x -> sum1 = 0 + 1 = 1
x = 2: sum1 += x -> sum1 = sum1 + x -> sum1 = 1 + 2
x = 3: sum1 += x -> sum1 = sum1 + x -> sum1 = 1+2 + 3
x = 4: sum1 = 1+2+3+4

x = 100: sum1 = 1+2+3+4+…+ 100

print(sum1) -> print(5050)

练习2:统计1000以内能够被3整除的数的个数

方法一:

count = 0   # 保存最终的个数
for x in range(1000):
    if x % 3 == 0:
        count += 1
print('个数:', count)

方法二:

count = 0
for x in range(0, 1000, 3):
    count += 1
print('个数:', count)

练习3:打印1000以内能够被3整除并且个位数是2的所有的数

方法一:

for x in range(1000):
    if x % 3 == 0 and x % 10 == 2:
        print(x, end=' ')
print()

方法二:先生成1000以内所有3的倍数,然后再看3的倍数中谁的个位数是2

for x in range(0, 1000, 3):
    if x % 10 == 2:
        print(x, end=' ')
print()

方法三:先生成1000以内所有个位数是2的数,然后再看个位数是2的数中谁可以被3整除

for x in range(2, 1000, 10):
    if x % 3 == 0:
        print(x, end=' ')
print()
=================================while循环
1.while循环

语法:
while 条件语句:
循环体

  • 说明:

1)while - 关键字;固定写法
2)条件语句 - 任何有结果的表达式都可以(赋值语句不行)
3): - 固定写法
4)循环体 - 和while保持一个缩进的一条或者多条语句;需要重复执行的代码

  • 执行过程:

先判断条件语句是否为True, 如果是就执行循环体,执行完再判断条件语句是否为True;
为True又执行循环体,执行完再判断条件语句是否为True …
以此类推, 如果条件语句的结果是False循环就结束

  • 练习:打印5次 ‘hello world!’
x = 0
while x < 5:
    print('hello world!')
    x += 1

执行过程:

x = 0
while 0 < 5: print(‘hello world!’); x += 1 -> x = 0+1 = 1
while 1 < 5: print(‘hello world!’); x += 1 -> x = 1+1 = 2
while 2 < 5: print(‘hello world!’); x += 1 -> x = 2+1 = 3
while 3 < 5: print(‘hello world!’); x += 1 -> x = 3+1 = 4
while 4 < 5: print(‘hello world!’); x += 1 -> x = 4+1 = 5
while 5 < 5: 循环结束!

2.for循环和while循环的选择

如果循环次数确定的就使用for循环; 如果循环次数不确定就使用while循环

练习:写程序让客户不断输入内容,直到输入的内容是0为止

思路解析:

我们需要不断输入数字,而输入的数字不确定,代码需要位置次数重复执行,如:

请输入:2
请输入:a
请输入: acc
请输入: 0

数字是0,结束循环

num = 'start'
while num !='0':
    num = input('请输入:')

猜你喜欢

转载自blog.csdn.net/SaharaLater/article/details/111057022