python快速上手_第二章 控制流

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mike_Cui_LS/article/details/83114616

布尔值

True 和 False 。 必须首字母大写,其余小写。

>>> spam = True
>>> spam
True
>>> true
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    true
NameError: name 'true' is not defined
>>> True = 2+2
SyntaxError: can't assign to keyword

单纯小写会报错, 而且不能做变量名使用。

比较操作符

比较操作符,比较两个值,求值为一个 布尔值。

  • ==
  • !=
  • <
  • <=
  • ‘>’
  • ‘>=’
>>> 42 == 42
True
>>> 23 > 20
True
>>> 23 != 23
False
>>> 2 != 2
False
>>> 'hello' != 'hello'
False
>>> 'hello' == 'Hello'
False
>>> 'dog' != 'cat'
True
>>> True != False
True
>>> 42 == 42.0
True

<、>、<= 和 >= 操作符仅用于整型和浮点型值

>>> eggCount = 42
>>> eggCount <= 42
True
>>> myAge = 29
>>> myAge >= 10
True

==操作符 和 = 操作符的区别

  • ==操作符(等于) 问两个值是否彼此相同
  • = 操作符(赋值) 将右边的值放到左边的变量中

布尔操作符

有3个操作符, 分别是 and、or、not 用于比较布尔值。

二元布尔操作符

and 和 or 操作符都接收两个布尔值。

and 相当于java 中的 && 只有两个都为真的时候,才为真。其他情况下都为 False.

or 相当于 java 中的 || 两边只要有一边为真, 则为真。否则为 False

not操作符

not 只用于一个 布尔值。

类似于java中的 ! 操作符。即取反。

>>> not True
False
>>> not False
True

混合布尔和比较操作符

因为比较操作符求值为 布尔值,那么就可以和 布尔操作符混合使用。

>>> (4<5) and (5<6)
True
>>> (4<5) and (9<6)
False
>>> (1==2) or (2==2)
True

控制流元素

条件

前面看到的布尔表达式可以看成条件。它和表达式是一回事。条件总是求值为一个布尔值。

代码块

一组代码放到一起,和java中一样。 根据代码缩进来分辨代码的开始和结束。

1.缩进增加时,代码块开始

2.代码块可以包含其他的代码块

3.缩进减少为零, 或减少为外面包围代码块的缩进代码块就结束了。

#input a string

print('please input your name ')

name = input()
if name == 'Mary':
    print('Hello Mary')
print('please input your password ')
pwd = input()
if pwd == '123':
    print('access granted')
else:
    print('Wrong')

控制流语句

if语句

语句包含以下:

  • if关键字;
  • 条件(即条件为True 或者 False 的表达式)
  • 冒号;
  • 在下一行开始,缩进的代码块(称为 if 子句)

比如

if name == 'Mary':
    print('Hello Mary')

else语句

同 java中的 else语句,只是没有了{} 改为 缩进 和 : 。

else语句包含:

  • else关键字
  • 冒号;
  • 在下一行开始, 缩进的代码块(称为else子句)。

比如,下面校验密码的逻辑

if pwd == '123':
    print('access granted')
else:
    print('Wrong')

elif语句

这个实际上和 java中的 else if(boolean) 是一样的。 只是关键字和表现形式不一样。

elif语句包含:

  • elif关键字;
  • 条件(即求值为 True 或者 False 的表达式)
  • 冒号;
  • 在下一行开始,缩进的代码块(称为 elif子句)

比如下面校验年龄的逻辑

print('please input your age ')

age = int(input())

if age > 18:
    print('you are an adult')
elif age < 18:
    print('you are a child')

elif 出现多个条件时,执行处理的顺序需要注意。可能会导致某些条件无法执行到

while 循环语句

可以让一个代码块 一遍又一遍的执行。 和 java中的 while循环是一样的,只是表现形式不同。

while语句包含:

  • 关键字
  • 条件(求值为True或者 False的表达式)
  • 冒号;
  • 从新行开始,缩进的代码块(称为 while子句)

比如下面的多次打印:

spam = 0
while spam < 5:
    print('hello,spam')
    spam = spam+1
   
name = ''

while name != 'your name':
    print('please type your name.')
    name = input()

print('hello'+name)

break语句

同java中的break语句一样。 跳出循环。

name = ''

while True:
    print('please type your name.')
    name = input()

    if name == 'Alice':
        break;

print('hello'+name)

continue语句

同java中的continue语句一样。如果遇到continue,则后续的不再执行。从新回到循环开始的地方,判断条件。


name = ''

while True:
    print('please type your name.')
    name = input()

    if name != 'Alice':
        continue;

    print('Hello,Alice,Nice to meet you.')

    print('Please input you password')

    pwd = input()

    if pwd == '123':
        break
print('successm')

for循环和 range() 函数

类真 和 类假的值

在用于条件时,0、0.0 和 ‘’(空字符串) 被认为是 False。其他值被认为是True。

for循环语句包含:

  • for关键字;
  • 一个变量名;
  • in 关键字;
  • 调用range()方法,最多传入3个参数
  • 冒号;
  • 从下一行开始,缩进的代码块(称为for子句)

比如:

for i in range(5):
    print('hello,world')

range(5) i 分别被设置为 0、1、2、3、4。

计算 1 - 100 的和

total = 0
for i in range(101):
    total = total+i

print(total)

range()的开始、停止和步长参数

range()可以传递3个参数。

1个参数的时候,代表的是 上限值.不包括传入的值。

2个参数的时候,第一个是起始值,第二个是上限。

3个参数的时候,第一个是起始值,第二个是上限,第三个是步长

for i in range(0,10,2):
    print(i)
    
打印结果为:

0 2 4 6 8

导入模块

import语句导入模块包含:

  • import关键字
  • 模块的名称
  • 可选的更多模块名称,之间用逗号隔开

在导入一个模块之后,就可以使用该模块中的函数了。

比如:

import random

for i in range(5):
    print(random.randint(1,10))

random.randint()函数调用求值为传递给它的两个整数之间的一个随机数。因为 randint()函数属于 random模块。 必须在函数名称之前加上 random. 告诉 python在 random模块中寻找该函数。

导入多个模块

import random,sys,os,math

from import语句

import 语句的另外一种形式包括 from关键字。之后是模块的名称,import关键字和一个星号。

例如 from random import * .

使用这样的import语句,那么在调用 random中的函数时,就不用加 random.前缀。 但可读性会变差。最好还是使用普通的导入方式。

for i in range(5):
    print(randint(1,10))

用sys.exit()提前结束程序

这个函数是在 sys 模块中,所有我们在使用前,必须先导入 sys。

import sys

while True:
    print('Type exit to exit')
    response = input()
    if response == 'exit':
        sys.exit()
    print('You typed '+response)

猜你喜欢

转载自blog.csdn.net/mike_Cui_LS/article/details/83114616