day04 if语句、for循环和while循环 2018-07-19

一、if 语句

if语句大致有三种形式
1. if

if 条件语句:
    代码块
其他语句
  • 执行过程:判断条件语句是否为True,是,则先执行代码块,再执行其他代码,否则直接执行其他代码

2. if--else

if 条件语句:
    代码块1
else:
    代码块2
其他语句
  • 执行过程:先判断条件语句是否为True,是,则先执行代码块1,再执行其他代码,否则先执行代码块2,再执行其他代码

3. if -- elif -- ... -- else

if 条件语句1:
    代码块1
elif 条件语句2:
    代码块2

    ...

elif 条件语句n..:
    代码块n
else:
    代码块n+1
其他语句
  • 执行过程:逐个判断条件语句,直到遇到条件语句为True,执行其后的代码块然后执行其他语句,如果所有条件语句都为False,则执行代码块n+1,再执行其他语句。
    一个例子:
# 给定一个成绩,评定成绩等级,优(90-100)、良(70-89)、及格(60-69)、不及格(0-59)
score = 80
if 90 <= score <= 100:
    print('优')
elif 80 <= score < 90:
    print('良')
elif 70 <= score < 80:
    print('中')
elif 60 <= score < 70:
    print('合格')
elif 0 <= score < 60:
    print('不合格')
else:
    print('分数异常!!!')


二、类型强制转换

  • 数据类型转换:类型名(被转换的数据)
    int()、 float()、 bool()、 str()

1.其他类型转换成整型: int()

  • 浮点型:只保留整数部分
  • 布尔型:True -- 1  False -- 0
  • 字符串:引号内是整型数的才能转换成整型数
print(int(3.14))
print(int(False))
print(int('-12'))

3
0
-12

2.其他类型转换为浮点型: float()

  • 整型:在整数后面加一个'.0'
  • 布尔型:True -- 1.0  False -- 0.0
  • 字符串:引号内是数字的才可转换成浮点型数据
print(float('2'))
print(float(True),'   ',float(False))
print(float('100'),'   ',float('13.14'))

2.0
1.0 0.0
100.0 13.14

3.其他类型转换成布尔类型: bool()

  • 任何类型都可以转换成布尔型值。
  • 所有为零为空的值都会转换为False,其他的都是True。
print(bool(3))
print(bool([1,2,3,0,6]))
print(bool(0))
print(bool(''))
print(bool(None))

True
True
False
False
False

4.其他类型的数据转换成字符串: str()

  • 所有类型的数据都可以转换成字符串
  • 直接在数据外层加引号变成字符串
print(str(0),' ',type(str(0)))
print(str(True),' ',type(str(True)))
print(str(None),' ',type(str(None)))
print(str([1,2,3,1,5]),' ',type(str([1,2,3,1,5])))

0  
True  
None  
[1, 2, 3, 1, 5]  

4. if 语句可以嵌套使用

if 条件语句1:
    if 条件语句2:
        ...
        if 条件语句...:

        else:
    else:

else:
    条件语句n
其他语句

if语句的嵌套使用

# 给定一个数字,如果是偶数,就打印偶数,是偶数且能被4整除,就打印能被4整除,否则打印奇数

num = 5464
if isinstance(num,int): 
    if num%2:
        print('%d是一个奇数'%(num))
    elif num%4:
        print('%d是一个偶数但不能被4整数'%(num))
    else:
        print('%d是偶数且能被4整除'%(num))
else:
    print('无法判断非整型数')

5464是偶数且能被4整除

5. 判断数据类型

  • isinstance(值,类型): 判断指定的值是否为指定的类型,是则返回True,否则返回False。
print(isinstance(90,bool))

False


三、循环语句

 需要重复执行某个过程,就需要使用循环语句

  • Python中有两种循环: for 循环和 while循环

1. for 循环:
for循环的格式

for 变量名 in 序列:
    循环体
  • for :关键字
  • 变量名: 和声名变量时的要求是一样的
  • in :关键字,在...中的意思
  • 序列: 必须是容器类型的数据.。例如:字符串、列表、字典、元组、集合等
  • 循环体:需要重复执行的代码块
  • 执行过程:用变量按顺序在容器中取值,直到容器中的数据被全部遍历。每遍历一个数据执行一次循环体
for char in 'range':
    print(char)
print('---------------------------\n')

r
a
n
g
e

1.1. range()函数( 在Python 2.x 中是xrange() )

  • 功能:产生指定范围的数字序列。
  • range(n):产生0~n-1的整数序列
  • range(m,n):产生m~n-1的整数序列
  • range(m,n,step): 从m开始,按照step的步长取值:直到n-1
# range(n)
for i in range(5):
    print(i)

print('---------------------------\n')

# range(m,n)
for i in range(10,15):
    print(i)

print('---------------------------\n')

# range(m,n,step)
for i in range(20,30,2):
    print(i)

print('---------------------------\n')

0
1
2
3
4
---------------------------

10
11
12
13
14
---------------------------

20
22
24
26
28
---------------------------

一些应用

# 计算1+2+3+...+100
sum = 0
for x in range(1,101):
    sum += x
print(sum)
print('---------------------------\n')

# 用一个循环计算1*2*3*...*10
# 计算2*4*6*...*10
result1 = result2 = 1
for x in range(1,11):
    result1 *= x
    # 判断x是否是偶数
    if x%2 == 0:
        result2 *= x
print(result1)
print(result2)
print('---------------------------\n')

# 有一个字符串'ABCDEFGHIJKL',依次取出字符串偶数为上的字符
str1 = 'ABCDEFG'
for x in range(0,len(str1),2):
    print(x,':',str1[x])
print('---------------------------\n')

5050
---------------------------

3628800
3840
---------------------------

0 : A
2 : C
4 : E
6 : G
---------------------------

2. while循环
while循环的格式

while 条件语句:
    循环体
其他语句
  • while : 关键字
  • 条件语句 : 结果是 True 或 False
  • 循环体 : 重复执行的代码段
  • 执行过程:判断条件语句,如果为True,是则执行循环体,每执行一次循环体判断一次条件语句,直到条件语句值为False,执行行其他语句;否则直接执行其他语句。

注意: 如果条件语句一直为True,就会造成死循环,所以循环体中一定要有可以让循环结束的操作。

flag = True 
while flag:
    print('666')
    flag = False
    break
print('---------------------------\n')

666
---------------------------

一些例子

# 使用while循环计算1+2+3+...+100

num = 1
sum = 0
while num < 101:
    sum += num
    num += 1
print(sum)
print('---------------------------\n')


# 计算2+4+6+...+100
num = 2
sum = 0
while num <= 100:
    sum += num
    num += 2
print(sum)
print('---------------------------\n')

5050
---------------------------

2550
---------------------------


四、continue和break

 continue 和 break 两个关键字,都是作用于循环中,用来结束循环。

  • continue:关键字,在循环体中遇到continue,就结束此次循环,进行下一次的循环(如果是for循环,就让变量取下一个值;如果是while循环,就去判断while后的条件语句)。
for x in range(1,8):
    if x % 2:
        continue
    print(x)
print('---------------------------\n')

2
4
6
---------------------------

  • break:关键字,在循环体中遇到break,就直接结束整个循环,执行循环外的语句。
for x in range(1,8):
    print(x)
    break
    print('------')
print('---------------------------\n')

1
---------------------------

一些例子

# 找出100-1000以内第一个能被3整除同时能被17整除的数
num = 100
while True:
    if num <= 1000:
        if num % 3 and num % 17:
            num += 1
        else:
            print(num)
            break
    else:
        print('不存在的')
        break
print('---------------------------\n')

102
---------------------------


五、for循环与while循环的选择

1. for和while的选择

  • for的循环次数是确定的,while循环可以是不确定的。

 1.1. 循环次数不确定的时候,选择while循环。

 1.2. 循环次数确定的时候一般选择for循环。

 1.3. 通过循环要遍历一个序列中的值时,使用for循环.。
2. input()

  • 接收从控制台输入的数据(以回车结束)
  • 程序中遇到input()函数会阻塞,等待用户输入完成后才会执行后面的代码
# 使用value取保存从控制台输入的数据
# value = input();
# print(value,'---------')

90
90 ---------

3. 产生随机数

  • Python中有一个内置模块,可以产生随机数:random。
  • randint(n):产生一个[0,n]的随机整数。
# 导入import模块
import random
number = random.randint(0,10) # 产生一个[0,10]的整数
print(number)

7


你可能感兴趣的:(day04 if语句、for循环和while循环 2018-07-19)