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

推荐阅读更多精彩内容