python_分支与循环

1.1.条件语句

python条件语句跟其他语言基本一致,都是通过一条或多条语句的执行结果(True或者False),来决定执行的代码块。
python程序语言指定任何非0和非空(None)值为True,0或者None为False。

1.1.1.if语句的基本形式

python中,if语句的基本形式如下:

if判断条件:
      执行语句......
else:
      执行语句......

前面提到过,python语言有着严格地缩进要求,因此这里也要注意缩进,也不要少写了冒号:。
if语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
例如:

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

输出的结果为:

不及格

上面也说到,非零数值、非空字符串、非空list等,判断为True,否则为False。因此也可以这样写:

num = 6
if num:
    print('Hello Python')

1.1.2if语句多个判断条件的形式

有些时候,我们的判断语句需要多个

if 判断语句:
      执行语句1......
elif判断条件2:
      执行语句2......
elif判断条件3:
      执行语句3......
else:
      执行语句4......

实例:

res = 89
if res > 90:
    print('优秀')
elif res > 80:
    print('良好')
elif res > 60:
    print('及格')
else:
    print('不及格')

输出:

良好

1.1.3.if语句多个条件同时判断

python不像java有swith语句,所以多个条件判断,只能用elif来实现,但是有需要多个条件同时判断时,可以使用or(或),表示两个条件有一个成立时判断成功;使用and(与)时,表示只有两个条件同时成立的情况下,判断条件才成功。

java = 86
python = 68
if java > 80 and python > 80:
    print('优秀')
else:
    print('不优秀')

输出:

不优秀

注意:if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外and和or的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。

java = 86
python = 68
if (80 <= java < 90) or (80 <= python < 90):
    print('良好')

输出:

良好

1.2.循环语句

一般循环语言都有循环语言,循环语句允许我们执行一个语句或语句组多次。
循环语句的一般形式如下:



python提供了for循环和while循环,当然还有一些控制循环的语句:
break 在语句块执行过程中终止循环,并且跳出整个循环
continue 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环
pass pass是空语句,是为了保持程序结构的完整性

1.2.1.While循环语句

count = 1
sum = 0
while count <= 100:
    sum = sum + count
    count = count +1
print(sum) 

输出:

5050

当然while语句还有另外两个重要的命令continue,break来跳过循环,continue用于跳过该次循环,break则是用语跳出本层循环
比如,上面的例子是计算1到100所有整数的和,当我们需要判断sum大于1000的整数,不在相加时,可以用到break,退出整个循环

count = 1
sum = 0
while count <= 100:
    sum = sum + count
    if sum > 1000:
        break
    count = count + 1
print(sum)

输出:

1035

我们只想统计1到100之间的奇数和,那么也就是说当count时偶数,跳出当次的循环,不相加,这时候可以用continue

count = 1
sum = 0
while count <= 100:
    if count % 2 == 0:
        count = count + 1
        continue
    sum = sum + count
    count = count + 1
print(sum)

输出:

2500

在python的while循环中,还可以使用else语句,while...else...在循环条件为fale时执行else语句块

count = 0
while count < 5:
    print(count)
    count = count + 1
else:
    print(count)

输出:

0
1
2
3
4
5

1.2.2.for循环语句

for循环可以遍历任何序列的项目,如一个字符串
它的流程图基本如下:

!

基本的语法格式:
for iterating_var in sequence:
    statements(s)

实例:

for letter in 'www.neuedu.com':
    print(letter)

输出:

w
w
w
.
n
e
u
e
d
u
.
c
o
m

range()函数
python函数range()让你能够轻松地生成一系列的数字:

for value in range(1,5):
    print(value)

上述代码好像应该打印数字1~5,但实际上它不会打印数字5:

1
2
3
4

函数range()让python从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出不包含第二个值。

1.2.3.嵌套循环

python语言允许在一个循环体里面嵌入另一个循环。
具体的语法如下:
for循环嵌套语法

for iterating_var in sequence:
   for iterating_var in sequence:
      statements(s)
   statements(s)

while循环嵌套语法

while expression:
    while expression:
        statement(s)
    statement(s)

实例:

for num in range(10,20):
    for i in range(2,num):
        if num%i == 0:
            j = num/i
            print('%d 是一个合数' % num)
            break
    else:
        print('%d 是一个质数' % num)

输出:

10 是一个合数
11 是一个质数
12 是一个合数
13 是一个质数
14 是一个合数
15 是一个合数
16 是一个合数
17 是一个质数
18 是一个合数
19 是一个质数

案例:打印九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print('{}*{}={}\t'.format(i,j,i*j),end='')
    print()

输出:

1*1=1   
2*1=2   2*2=4   
3*1=3   3*2=6   3*3=9   
4*1=4   4*2=8   4*3=12  4*4=16  
5*1=5   5*2=10  5*3=15  5*4=20  5*5=25  
6*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=36  
7*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49  
8*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64  
9*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81

1.3.随机数的处理

  • python中,要使用随机数,首先需要导入随机数的模块--“工具包”
import random
  • 导入模块后,可以直接在模块名称后面敲一个.,会提示该模块中包含的所有函数
  • random.randint(a,b),返回[a,b=]之间的整数,包含a和b
    例如:
random.randint(12,20)  #  生成的随机数n:12 <= n <= 20
random.randint(20,20)  #  结果永远是20
random.randint(20,10)  #  该语句是错误的,下限必须小于上限

综合练习--猜数字
计算机要求用户输入数值范围的最小值和最大值。计算机随后“思考”出在这个范围之内的一个随机数,并且重复地要求用户猜测这个数,直到用户猜对了。在用户每次进行猜测之后,计算机都会给出一个提示,并且会在这个过程的最后显示出总的猜测次数。这个程序包含了几种类型的我们学过的 Python 语句,例如,输入语句、输出语句、赋值语句、循环和条件语句。
可能的游戏过程如下:

Enter the smaller number:1
Enter the larger number:20
Enter your guess:5
Too small
Enter your guess:9
Too small
Enter your guess:15
Too small
Enter your guess:17
Too large
Enter your guess:16
You've got it in 5 tries!

程序如下:

import random

smaller = int(input("Enter the smaller number: "))
larger = int(input("Enter the larger number: "))
myNumber = random.randint(smaller, larger)
count = 0
while True:
    count += 1
    userNumber = int(input("Enter your guess: "))
    if userNumber < myNumber:
        print("Too small")
    elif userNumber > myNumber:
        print("Too large")
    else:
        print("You've got it in", count, "tries!")
        break

输出:

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

推荐阅读更多精彩内容