您的位置:首页 > 编程语言 > Python开发

python学习笔记之条件,循环,和其他语句

2019-07-19 17:21 453 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/A_Dying_Drummer/article/details/96462699

import的使用

import语句

import math

r=5
print('半径为5的圆的面积为%.2f'%(math.pi*r**2))

运行结果为

半径为5的圆的面积为:78.54

import.math意思是从Python标准库中引入math.py模块。这是Python中定义的引入模块的方法
import的标准语法如下

import module[,module2[,...moduleN]]

表示允许一个import导入多个模块,但各个模块之间需要中逗号隔开

第二种方法

from math import pi

这是从一个模块中导入某个特定函数的情况,不过处于math模块中的其他函数就不能使用,可以用逗号隔开以同时导入多个函数

优势于第一种方法

>>>import math
>>>print(math.pi)
3.1415926
>>>print(pi)
#报错

如果用第二种方法可以直接访问函数,如果使用第一种方法则需方法前缀.

第三种方法

from math import *

该方法可以一次导入所有模块内的函数,但不建议过多使用

除了以上几种方法外,还可以为模块取别名

>>>import math as m
>>>m.pi
3.1415926

别样的赋值

1.序列解包

赋值方法还有别的形式

>>> x,y,z=1,2,3
>>> print(x,y,z)
1 2 3

可以同时赋值多个变量

>>> x,y,z
(1, 2, 3)
>>> x,y=y,x
>>> x,y,z
(2, 1, 3)

还可以交换两个或多个变量的值

>>> nums=1,2,3
>>> nums
(1, 2, 3)
>>> x,y,z=nums
>>> x
1
>>> y
2
>>> z
3

此过程叫做序列解包,经过序列解包之后,变量获得了对应的值

>>> student={'小明':'250','小黑':'251','小白':'252'}
>>> x,y=student.popitem()
>>> x
'小白'
>>> y
'252'
>>> student
{'小明': '250', '小黑': '251'}

作用于元组,使用 popitem方法将键-值作为元组返回,返回的元组可以直接赋值到两个变量之中
序列解包允许函数返回一个以上的值并打包成元组,然后通过一个赋值语句进行访问

***在操作序列解包时,要保证左边和右边的数量相等

2.链式赋值

>>> x=y=z=10
>>> x
10
>>> y
10
>>> z
10

3.增量赋值

>>> x=5
>>> x+=1			#加
>>> x
6
>>> x-=2			#减
>>> x
4
>>> x*=3			#乘
>>> x
12
>>> x/=4			#除
>>> x
3.0

增量赋值还适用于二元运算符的数据类型

>>> a='Hello'
>>> a+='beauty'
>>> a
'Hellobeauty'
>>> a*=2
>>> a
'HellobeautyHellobeauty'

语句块

条件语句

1.布尔变量
下面的值在作为布尔表达式时,会被解释器看做假False

False		None		0		""		()		[]		{}

标准值False和None,所有类型的数字0(包括浮点型,长整型和其他类型),空序列(如空字符串,空元组和空列表)以及空字典都为假。其他值都为真。

>>> True
True
>>> False
False
>>> True == 1
True
>>> False == 0
True
>>> True + False + 2
3

在python中,True和1等价,False和0等价

布尔值True和False属于布尔类型,bool函数可以用来转换其他值

>>> bool('have a good day')
True
>>> bool("")
False
>>> bool(5)
True
>>> bool(0)
False
>>> bool([1])
True
>>> bool([])
False
>>> bool()
False

可以用bool函数做Boolean值转换

***[]和""都为假,bool转换值都是False,但是他们本身不相等

2.if语句
真值可以联合使用

a='hello'
if a == 'hello':
print(a)
G:\python\notepad++ practice>python iftwo.py
hello

if语句块中还可以执行很多复杂操作,编写过程中要注意保持语句缩进一致
if语句的条件判定除了使用==外,还可以使用>,<,>=,<=等条件符表示大小关系,除此之外,还可以使用各个函数或方法返回值作为条件判定

以后在练习过程中要习惯编写以下写法,

#! /usr/bin/python3
# -*- coding:UTF-8 -*-

习惯写这两行代码可以再代码移植和编码问题上避免很多问题。代码移植时,如果从windows移植到linux系统上,就必须加上第一行代码,代码中有中文时,如果不加第二行代码,就和容易出现乱码的情况。

3.else
在if语句的示例中,当a的值为hello时,if将会执行其代码块中的内容,如果不满足if后面的判断条件,就执行else代码块中的代码(注意:else后面没有条件判定)
else不能单独使用

4.elif
如果不止需要一个判断条件,就需要用到elif语句

if.......

elif......

else......

如果if后面的判断条件不成立,会判断elif后面的条件(当然elif可以有无限多个)最后,当所有if及elif条件都不成立的时候,执行else后面的代码块

5.嵌套代码块
实际操作过程中,一层条件判定可能会不够用,所以可以

if.......
if......

elif......

else......

如上,所谓嵌套代码,是指把if,else,elif等条件语句再放入if,else,elif条件语句块中,作为深层次的条件语句判定

6.更多操作

1.is: 同一运算符

>>> x=y=[1,2,3]
>>> z=[1,2,3]
>>> x==y
True
>>> x==z
True
>>> x is y
True
>>> x is z
False

is运算符用于判定统一性而不是相等性x和y是同一个列表,z是具有相同数值相同序列的另一个列表,它们的值可能相等,但是却不是同一个对象,它们所指向的内存空间不一样
运用==运算符判定两个对象是否相等,使用is判定两个对象是否相同(是否为同一对象)

2.比较字符串和序列
字符串可以按照字母排列顺序进行比较,其他序列比较的不是字符而是元素的其他类型

>>> [1,2,3]<[3,2,1]
True
>>> [1,2]<
3ff7
;[1,2]
False
>>> [1,2]==[1,2]
True

也可以对列表进行比较操作
如果一个序列中包括其他序列元素,比较规则也适用于序列元素

>>> [2,[1,2]]<[2,[2,1]]
True

也可以对嵌套列表进行比较操作

3.布尔运算符
有时要检查一个以上的条件,就需要用到其他的布尔运算符
and运算符用于连接两个布尔值,并在两者都为真时返回真,否则返回假。与and同类的还有or和not两个运算符

4.断言
在没完成一个程序之前,不知道可能会在哪里出错,可以选择出现错误条件时程序崩溃并返回错误,可以要求一些条件必须为真,python中assert就可以实现这种工作方式

>>> x=3
>>> assert x>0,'x is not 0or negative'
>>> assert x%2 == 0,'x is not an even number'
Traceback (most recent call last):
File "<pyshell#62>", line 1, in <module>
assert x%2 == 0,'x is not an even number'
AssertionError: x is not an even number

当assert后面条件为真时,程序正常运行,条件为假的时候返回设置好的报错信息
使用assert时需要注意
(1)assert断言用来生命某个条件是真的
(2)assert语句失败时,会引发一个AssertionError

循环

1.while循环
基本语法形式为

while  判断条件 :
执行语句......

执行语句可以是单个语句或者语句块。判断条件可以是任何表达式,所有非零,非空(null)的值都为真(true)。当判断条件为假时,循环结束。

while语句执行时,首先对while条件判定,当条件为True时,执行条件语句块,执行完语句块再判定条件,知道条件为False

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: