分之和循环语句 (if 、for 、while)

条件语句

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。

可以通过下图来简单了解条件语句的执行过程:


1. if语句

if 条件语句:
    代码块
其他语句

(1)执行过程:先判断条件语句是否为True,若是True就执行代码块,再执行其他语句若是False,就执行其他语句
(2)条件语句:看可以是任何有值的表达式,但一般是布尔值
(3)if是关键字

if False:
    print('代码1')  
    print('代码2')  #if为假,不执行缩进内容,直接向下执行 
print('代码3')  #代码3

练习: 用一个变量来保存时间(50米短跑),如果时间小于8秒,打印及格

time=7
if time<8:
    print('及格') #及格  (只有条件成立的时候才执行)
if time>=8:
    print('不及格')
print(time)  #7 (不管if语句是否成立,都会执行)

2. if---else

if 条件语句:
    代码块1
else:
代码块2
其他语句

执行过程:先判断条件语句是否为True,若是True,就执行代码块1,之后再执行其他语句;若条件语句为False,则执行代码块2,之后再执行其他语句

练习: 用一个变量来保存时间(50米短跑),如果时间小于8秒,打印及格,否则打印不及格、

time=10
if time<8:
    print('及格')
else:
    print('不及格')  #不及格

3. if elif... else

Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else

if 条件语句1:
    代码块1
elif 条件语句2:
    代码块2
...
else:
    代码块n
其他语句

(1)执行过程:先判断条件语句1是否为True,若为True,就执行代码块1,之后再执行其他语句;若条件语句1是False,就判断条件语句2是否为True,若为True,就执行代码块2,再执行其他语句;若条件语句2为False,就执行代码块3,之后直接执行其他代码

图片.png.png

4、if语句可以嵌套使用

if 条件语句1:
    if条件语句2:
        执行语句块2
    else:
        执行语句块3
else:
    执行语句块4

注意:
<1>每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
<2>使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。

例:给一个学生的成绩,判断成绩是优秀(90)、良好(70-89)及格(60-69)、不及格(0-59)

score=101

if 90<=score<=100:
    print('优秀')
elif 70<=score<90:
    print('良好')
elif 70<score<=60:
    print('及格')
elif 0<=score<60:
    print('不及格')
else:
    print('成绩有误')

练习:给一个整数。如果是偶数,就打印某某某是偶数,如果是偶数并且还能被4整除,打印某某是4的倍数,否则打印某某某奇数

方法1:
num=16
if isinstance(num,int):
    print('%d是整数'%(num))
    if num%2==0:
        print('%d是偶数'%(num))
        if num%4==0:
            print('%d是4的倍数'%(num))
    else:
        print('%d是奇数'%(num))    #16是整数  16是偶数   16是4的倍数

方法2:
num=24
if isinstance(num,int):
    print('%d是整数'%(num))
    if num%2:
        print('%d是奇数'%(num))
    else:
        print('%d是偶数'%(num))
        if not(num%4):
            print('%d是4的倍数'%(num))  #24是整数  24是偶数  24是4的倍数

5.判断数据的类型

(1)isinstance(值,类型名) --->判断指定的值是否是指定的类型,是True,不是就False

print(isinstance(10.0,int))  #False (判断10.0是否是整型)

6.类型的强制转换

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

1.其他的数据类型转换成整型:int()
浮点型:只保留整数部分
布尔类型:True--->1 False--->0
字符串:字符串引号里面全是整数数字的(正负都行),才可以转换

print(int(12.9))  #12
print(int(False))  #0
print(int(True))  #1
print(int('-1'))  #-1
# print(int('1.01'))  报错
# print(int('2aj'))  ValueError: invalid literal for int() with base 10: '2aj'

2.其他数据类型转换成浮点型:float()
整型:在整数后面加 .0
布尔类型:True--->1.0 False--->0.0
字符串:字符串中引号内的数据全是是整型或者浮点型的数据才可以转换成浮点型数据

print(float(1))  #1.0
print(float(True))  #1.0
print(float('100')) #100.0
print(float('100.01'))  #100.01
# print(folat('100.1b'))  报错

3、其他类型的数据转换成布尔类型:bool()
任何类型的数据类型都可转换成布尔值
整数中,除了0转换成False,其他都会转成True

总结:所有为0、为空的值会转换成False,其他值都是True

print(bool(0)) #False
print(bool('')) #False
print(bool(' ')) #True

if 0:
   print('---')
else:
   print('===')  #===

练习:判断str1是否是空串?

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

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

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

练习: 判断一个数字是否是0?

num=10
# 方法1:
if num:
    print('不是零')
else:
    print('是零')  #不是零

# 方法2:
if num==0:
    print('是零')
else:
    print('不是零')  #不是零

4.其他类型的数据转换成字符串:str()
任何类型的值都可以转换成字符串
其他数据类型转换成字符串的时候,就直接在数据的外层加引号

print(type(str(120)))  #<class 'str'>

7. for 循环

需要重复执行某个过程,就可以使用循环,python中的循环有for循环和while

for

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

for 变量名 in 序列:
    循环体

(1)for :关键字、
(2)变量名:和声明变量时的变量名的要求是一样的,功能也是存储值
(3)in:关键字 ,在什么里面
(4)序列:容器类型的数据,字符串、列表、字典、元祖等
(5)循环体:会重复执行的代码块
(6)执行的过程:用变量名在容器序列中取值,每次取一个值,每取一次执行一次循环体,直到取完为止

for char in 'ab123':
   print(char)  
'''
结果:
a
b
1
2
3
···

range函数

(1)xrange是python2.x中函数,在python3.x使用range函数代替了,py3用不了xrange
(2) range功能是产生指定范围的数字序列,一般在for循环中,控制循环次数,或者产生索引值
(3)range(n) :产生0~(n-1)的整数序列
(4)range(m,n):产生m~(n-1)的整数序列
(4)range(m,n,step):从m开始,每次加step产生下一位数字,直到n前一个为止

练习:打印6次'abc'

for i in range(6):
    print('aaa')
'''
aaa
aaa
aaa
aaa
aaa
aaa
'''

# rang(10):产生0,1,2,3,4,5,6,7,8,9
for x in range(10):
    print(x)   #0  1  2  3  4  5  6  7  8  9

# range(10,20):产生数字10~19
for x in range(10,20):
    print(x)  #10  11   12  13  14   15  16   17   18   19

for x in range(1,10,2):
    print(x)  #1  3  5  7  9

练习:1+2+3...+100

# 方法1:
sum=0
for i in range(1,101):
    sum+=i
print(sum)  #5050

# 方法2:
sum=0
for x in range(100):
    sum+=x+1
print(sum)  #5050

练习:只用一个循环
计算1x2x3...x10
计算2x4x6...x10

num1=1
num2=1
# 遍历取出1-10中所有的数字
for x in range(1,11):
    num1*=x
    #判断x是否是偶数
    if x%2==0:
        num2*=x
print(num1)   #3628800
print(num2)   #3840

练习:有个字符串'abcdef'依次取出字符串中偶数位(下标值是偶数)上的字符

str='abcdef'
# 方法1:
for index in range(len(str)):
    if index%2==0:
        print(str[index])  #a  c  e

# 方法2:
# 循环取出字符串所有的偶数下标
for index in range(0,len(str),2):
    print(str[index])   #a  c  e

# 方法3:
index=0
for char in str:
    if index%2==0:
        print(char)
    index+=1   #a  c  e

8.while循环

while 条件语句:
  循环体
其他语句

(1)while:关键字
(2)条件语句:结果是True,或者是False
(3)循环体:重复执行的代码段
(4)执行过程:判断条件语句是否为True,如果为True就执行循环体, 执行完循环体,在判断条件语句的是否为True,如果为True就执行循环体直到条件语句的值为False,循环结束,直接执行while循环后面的其他语句

注意:如果条件语句的结果一直都是True,就会造成死循环,所以在循环体要有让循环结束的操作

python中没有do-while循环(c语言有)

我们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下:

var = 1
while var == 1 :      # 表达式永远为 true   
        num = int(input("输入一个数字  :"))  
        print ("你输入的数字是: ", num)
 print ("Good bye!")  

你可以使用 ctr+c 来退出当前的无限循环。无限循环在服务器上客户端的实时请求非常有用

练习:使用while循环计算1+2+3...+100

sum=0
num=1
while num<=100:
    sum+=num
    num+=1
print(sum)   #5050

练习:计算2+4+6...+100

num=2
sum=0
while num<=100:
    if num%2==0:
        sum+=num
    num+=1
print(sum,num)  #2550  101

# 方法2:
sum=0
num=2
while num<=100:
    sum+=num
    num+=2
print(sum,num)  #2550   102

while 循环使用 else 语句

在 while … else 在条件语句为 false 时执行 else 的语句块:

count = 0
while count < 5:
      print (count, " 小于 5")
      count = count + 1
else:
      print (count, " 大于或等于 5")  

关键字:continue和break

(1)break和continue两个关键字,都是作用于循环当中,用来结束循环,只能放在循环语句中,放在其他地方会报错

(2)continue:关键字,在循环体中遇到continue和break就结束当次循环,直接进入下一次循环的判断(如果是for循环,就让变量去取下一个值,如果是while循环就判断while后面的条件语句是否为True)

for x in range(6):
    print(x)
    continue  #不执行continue后的 语句,直接让x取下一个值
    print('===')   #0 1 2 3 4 5

for x in range(10):
    if x%2:  # 若x%2=1时,条件为True,就执行continue直接跳到下个循环,
             #若x%2=0,条件为False,就向下执行打印  ,所以打印出来为偶数
        continue
    print(x)  #0  2  4  6  8

break:关键字,在循环体中遇到break,就直接结束整个循环,直接执行循环体后边的其他语句

for x in range(3):
    print(x)
    break
    print('====')
print('----')

通过改变条件语句的值,来结束循环

numer = 1
while numer <= 100:
    print(numer)
    numer += 1

使用break结束死循环

numer = 1
while True:
    if numer > 100:
        break
    print('==:',numer)

    numer += 1

练习:找出100-1000以内的第一个能够被3 整除同时能被17整除的数

我的错误示例:
# while 100<=num<=1000:   #####注意:这里报错,不可以这么写
#   if num%3==0 and num%17:
#       print(x)
#       break 


for x in range(100,1001):
    if x%3==0 and x%17==0:
        print(x)
        #找到第一个就不用再找了
        break   #102

for和while的选择

for 循环的次数是确定的,while循环的循环次数可以不确定
(1)循环次数不确定的时候,选择while循环,确定次数的一般用for循环
(2)通过循环遍历一个序列中的值,使用for循环

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

(4)产生随机数
python中有一个内置模块,可以产生随机数:random
randint(m,n):产生一个m~n的随机整数

num=int(input('请输入一个数字:'))
# print(num)

# 导入random模块
import random
# 产生100-200的随机数
number=random.randint(100,200)
print(number)

pass 语句

(1)Python pass是空语句,是为了保持程序结构的完整性
(2)pass 不做任何事情,一般用做占位语句,如下实例

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

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,132评论 0 13
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,160评论 1 44
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 5,793评论 2 16
  • 6.29 1.给设计院打电话催促图纸 2.翻译发给厂家的信函 3.翻译合同
    prince哈哈阅读 197评论 0 0
  • 常用函数汇总 这里先分类整理下,之前项目中多次用到的工具函数。 1.Array 1.1 arrayEqual 2....
    guanguans阅读 1,705评论 0 4