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  <class 'str'>
True  <class 'str'>
None  <class 'str'>
[1, 2, 3, 1, 5]  <class 'str'>

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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,149评论 0 13
  • 今节又一人,地处又异地。桂花香未尽,月圆亦迟迟,问问何时归。
    随书随文阅读 250评论 1 2
  • 晚安,是藏起来的我爱你。 早安后的晚安,晚安后的早安 也许是因为想念,也许是因为关心 - END - 猜你喜欢 你...
    插画_兔小瘦阅读 272评论 1 1
  • 从城外回来后,拓拔坚便回到将军府,虽然他依旧深爱着楼樱,但作为臣子,他别无选择。东西交到楼樱手上后,看到楼樱伸出头...
    公子評阅读 711评论 0 1