day_003 Python中的if和循环相关功能

一、if语句

1.基本句式

格式:
if 条件语句:
(缩进)条件语句结果为True执行的代码块

执行过程:先判断条件语句是否为True,如果为True就执行if语句后:后面对应的一个缩进的所有代码;为False,就不执行冒号后面的代码块,直接执行后续的其他语句。

条件语句:可以是任何有值的表达式,但是一般是布尔值
示例:

if True:
    print('执行')
    print('代码1')
    print('代码2')

print('代码3')

结果:

执行
代码1
代码2
代码3

2.if-else

格式:
if 条件语句:
(缩进) 代码块1
else:
(缩进) 代码块2

执行过程:条件语句为True,执行代码块1,条件为False,执行代码块2
示例:

score = 50

if score >= 60:
    print('及格')
else:
    print('不及格')

结果:

不及格

3.if-elif-else

格式:
if 条件语句1:
(缩进) 代码块1
elif 条件语句2:
(缩进) 代码块2
else:
(缩进) 代码块3

执行过程:条件语句1为True,只执行代码块1;条件语句1为False,条件语句2为True,只执行代码块2;条件语句1和2都为False,执行代码块3

示例:

score = 98

if score>=90:
    print('优秀')
elif score>=70:
    print('良好')
elif score>=60:
    print('及格')
elif score>=0:
    print('不及格')
else:
    print('成绩无效')

结果:

优秀

4.if语句的嵌套使用

格式:
if 条件语句1:
(缩进) if 条件语句2:
(缩进)(缩进)代码块1
(缩进) else:
(缩进)(缩进)代码块2
else:
(缩进)代码块3
示例:

num = 16

if isinstance(num, int):
    if num%2:
        print(num , '是奇数')
    else:
        print(num , '是偶数')
        if num%4:
            pass
        else:
            print(num , '是4的倍数')
else:
    print(num, '的数据类型不符合')

结果:

16 是偶数
16 是4的倍数

注:isinstance(值,类型名) ---- 判断指定的值是否是指定额数据类型,ininstance的返回值为:True和False

二、数据类型转换

通用格式:类型名(被转换的数据)
适用类型:int ,float ,str ,bool

1.其他的数据类型转换成整型

方法:int()
特点:
浮点型:取整
bool:True ----- 1 ;False ----- 0
字符串:去掉引号之后依旧就是一个整型数据的字符串才能转换成整型。
示例:

print(int(12.3))
print(int(True))
print(int(False))
print(int('46564'))
print(int('-15'))
print(int('+45'))

结果:

12
1
0
46564
-15
45

2.其他的数据类型转换成浮点型

方法:float()
特点:
整型:在整数后面加个'.0'
bool:True ----- 1.0;False ----- 0.0
字符串:去掉引号之后依旧就是一个整型或者浮点型数据的字符串才能转换成整型。
示例:

print(float(12))
print(float(True))
print(float(False))
print(float('123'))
print(float('123.456'))
print(float('-13.5'))
print(float('+15.54'

结果:

12.0
1.0
0.0
123.0
123.456
-13.5
15.54

3.其他类型的数据转换成布尔类型

方法:bool()
特点:
不管什么类型的数据都可以转换成布尔值
整型:0 ----- False; 其他的都为True
浮点型:0.0 ----- False; 其他都为True
字符串:空字符串('') ----- False;其他都为True
所有为0为空的都为False
示例:

print(bool(1))
print(bool(123))
print(bool(-154))
print(bool(0))
print(bool(12.5))
print(bool(-45.5))
print(bool(0.0))
print(bool('123'))
print(bool('0'))
print(bool(' '))
print(bool(''))
print(bool(None))

结果:

True
True
True
False
True
True
False
True
True
True
False
False

4.其他类型的数据转换成字符串

方法:str()
特点:
所有数据类型的数据都可以转换成字符串
其他数据转换成字符串的时候,就是直接在数据的外层加引号
示例:

# 判断一个字符串是否为空串(字符串长度为0)

str1 =''
# 方法1
if str1 == '':
    print('空串')
else:
    print('不是空串')

# 方法2
if len(str1) == 0:
    print('空串')
else:
    print('不是空串')

# 方法3
if str1:
    print('不是空串')
else:
    print('空串')

# 判断一个数字是否为0
number = 0
if number:
    print('不是0')
else:
    print('是0')

结果:

空串
空串
空串
是0

三、for循环

1.for循环

for 变量 in 序列:
(缩进) 循环体

for:关键字
变量:声明中间变量
in:关键字
序列:容器类型的数据 ----- 字符串、列表、集合、字典、元组等
循环体:需要重复执行的代码块

执行过程:用中间变量去取序列中的元素(一次取一个),取完为止,每取一次执行一次循环体。
示例:

number = '一二三123'
for num in number:
    print(num)

结果:

一
二
三
1
2
3

2.range()函数及在for循环中的使用

  • xrange()是python2.x中的函数,在python3.x使用range()代替了
  • range()的功能时产生指定范围的数字序列,一般用在for循环中,控制循环次数,或者产生索引值。
    range(n):产生0 ~ n-1的整数序列
    range(n,m):产生 n ~ m-1 的整数序列
    range(n,m,s):产生 n ~ m-s 的整数序列,步进为s
    示例:
list1 = [1,2,3,4]

for i in range(1, len(list1)):
    print(list1[i])

print('-'*20)

# 打印20次'abc'
for i in range(20):
    print('abc', i+1)

print('-'*20)

# 步进为2
for i in range(1,11,2):
    print(i)

print('-'*20)

# 练习:计算1+2+3+······+100
# 方法一
sum1 = 0
for num in range(1,101):
    sum1 += num

print(sum1)

# 方法二
sum1 = 0
for num in range(100):
    sum1 += num + 1

print(sum1)
print('-'*20)

# 练习: 计算1*2*3*```*10
sum1 = 1
sum2 = 1
for num in range(1,11):
    sum1 *= num
    if not num%2:
        sum2 *= num


print(sum1)
print(sum2)
print('-'*20)

# 练习2:有一个字符串'abcdef',依次取出偶数位上的字符。(下标为偶数)
# 方法一
str1 = 'abcdef'
list2 = []
for num in range(len(str1)):
    if not num % 2:
        list2.append(str1[num])

print(list2)

# 方法二
for index in range(0, len(str1), 2):
    print(str1[index])

# 方法三
index = 0
for char in str1:
    if not index%2:
        print(char)
    index += 1

结果:

2
3
4
--------------------
abc 1
abc 2
abc 3
abc 4
abc 5
abc 6
abc 7
abc 8
abc 9
abc 10
abc 11
abc 12
abc 13
abc 14
abc 15
abc 16
abc 17
abc 18
abc 19
abc 20
--------------------
1
3
5
7
9
--------------------
5050
5050
--------------------
3628800
3840
--------------------
['a', 'c', 'e']
a
c
e
a
c
e

四、while循环

while 条件语句:
(缩进) 循环体

while:关键字
条件语句:结果是True,或者False
循环体:需要重复执行的代码块

  • 执行过程:判断条件语句是否为True,为True就执行循环体,执行完循环体,在判断条件语句是否为True,如果为True,就再次执行循环体,为False,退出循环。
    注意:如果条件语句一直未True,就会造成死循环。所以在循环体中要有可以结束循环的操作。

python中没有do-while循环
示例:

flag = True
while flag:
    print('flag:战争结束了我就回家结婚')
    flag = False

print('-'*20)

# 使用while循环计算1+2+3+····+100
num = 0
sum1 = 0
while num<101:
    sum1 += num
    num += 1

print(sum1)
    
# 练习:2+4+6+···+100

num = 2
sum2 = 0
while num<101:
    sum2 += num
    num += 2

print(sum2)

结果:

flag:战争结束了我就回家结婚
--------------------
5050
2550

五、continue和break

1.continue

  • continue和break两个关键字都是作用于循环当中,用来结束循环的。
  • continue:关键字,在循环体中遇到continue就结束当次循环,直接进入下次循环的判断。如果是for循环,中间变量取下一个值,while循环中则是去判断条件语句是否为True。

示例:

for num in range(10):
    if num%2:
        continue
    print(num)

结果:

0
2
4
6
8

2.break

  • break:关键字,在循环体中遇到break,就直接结束整个循环。

示例:

for x in range(1,10):
    print(x)
    if x>5:
        break

结果:

1
2
3
4
5
6

六、for和while的选择和循环嵌套

1.for和while的选择

for:通过序列控制循环,循环的次数是固定的也是确定的。
while:在循环过程中可以修改条件语句的真假,循环次数可以不确定,也可操作。

  • 循环次数不确定时,选择while循环。确定时,一般选择for循环。
  • 通过循环遍历一个序列中的值,使用for循环

七、知识拓展

1.input()

  • 接收从控制台输入的数据(输入的数据以回车结束)
  • 程序中遇到input()函数,程序会阻塞,等待用户输入数据,用户输入完成后(回车),才会执行后面的代码。

2.产生随机数

  • python中有一个内置模块,可以产生随机数:random();
  • randint(n, m):产生一个n~m的随机整数
    示例:
import random
num = random.randint(1,10)
print(num)

结果:

2

你可能感兴趣的:(day_003 Python中的if和循环相关功能)