运算符指具有运算功能的符号。表达式由值、变量和运算符组成的式子。
当python显示表达式的值时,显示的格式与你输入的格式是相同的。如果是字符串,就意味着包含引号。
** 幂运算符,返回x的y次幂 10**3为10的3次方
//取整除运算符,返回商的整数部分,不包含余数 9//2输出4,9.0//2.0 输出4.0
在python程序中只能将and、or、not三种运算符用作于逻辑运算符,而不像C、Java等编程语言那样可以使用&、|、!.
And x and y 如果x为false,x and y返回false,否则,它返回y的计算值
Or x or y 如果x是非0,它返回x的值;否则,它返回y的计算值
Not not x 如果x为true,返回false;如果x为false,它返回true
成员运算符能够测试实例中包含的一系列成员,包含字符串、列表或元组。成员运算符用来验证给定的值(变量)在指定的范围里是否存在。
成员运算符有两个分别是:in和not in
In:如果在指定的序列中找到值则返回True,否则,返回False
Not in:如果在指定的序列中没有找到值则返回True,否则,返回False
#filename 1_9.py
a = 4;
b = 9;
list = [1,2,3,4,5];
if(a in list):
print("a在列表中")
else:
print("a不在列表中")
if(b not in list):
print("b不在列表中")
else:
print("b在列表中")
身份运算符
身份运算符用来比较两个对象是否是同一个对象,这和用比较运算符中的“==”来比较两个对象的值是否相等有所区别。
身份运算符有两个,分别是is 和 is not 。
要想理解身份运算符的实现原理,需要从python变量的属性谈起
Python语言中的变量有三个属性,分别是name、id、value。
Name可以理解为变量名
Id可以联合内存地址来理解
Value就是变量的值
在python语言中,身份运算符is通过id来进行判断。如果id一样就返回True,否则,返回false。
#filename 1_10.py
a = [1,2,3];
b = [1,2,3];
print(a==b)
print(a is b)
print(id(a))
print(id(b))
变量a和变量b的value值是一样的,用“==”比较运算符比较的是变量的value,所以返回true。但当使用is的时候,比较的是id,变量a和变量b的id是不一样的。
运算符 | 描述 |
** | 指数(最高优先级) |
~、+、- | 按位翻转,一元加号和减号 |
*、/、%、// | 乘、除、取模和取整数 |
+、- | 加法、减法 |
>>、<< | 右移、左移运算符 |
& | 位与 |
^、| | 位运算符 |
<=、<、>、>= | 比较运算符 |
<>、 ==、 != | 等于运算符(<>2.6以前版本的不等,!=Python3后的不等) |
=、 %=、 /=、 //=、 -=、 +=、 *=、 **= | 赋值运算符 |
is、 is not | 身份运算符 |
in、 not in | 成员运算符 |
not、 or、 and | 逻辑运算符 |
条件语句
- If 判断条件:
执行语句
- If 判断条件:
执行语句
Else:
执行语句
- If 判断条件1:
执行语句1
Elif 判断条件2:
执行语句2
Elif 判断条件3:
执行语句3
……
Else:
执行语句4
- if的嵌套语句
If 判断条件2:
执行语句1
Elif 判断条件2:
·执行语句2
Else:
执行语句3
- switch(整数选择因子){
Case 整数值1:语句;break;
Case 整数值2:语句;break;
Case 整数值3:语句;break;
Case 整数值4:语句;break;
……
Default:语句;
}
;
注意:整数选择因子必须是byte、short、int和char类型,
使用for循环语句
For iterating_var in sequence:
Statements
iterating_var:表示循环变量
Sequence:表示遍历对象,通常是元组、列表和字典等。
Statements:表示执行语句
#filename 1_11.py
for letter in 'const':
print('当前字母:',letter)
fruits = ['banana','apple','mango']
for fruit in fruits:
print('当前单词:',fruit)
在python语言中,还可以通过序列索引迭代的方式实现循环功能。在具体实现时,可以借助内置函数range()实现。
Range([start,] stop[,step])
各个参数如下:
Start:可选参数,起始数,默认值为0.
Stop: 终止数,如果range只有一个参数x,那么range生产一个从0至x-1的整数列表。
Step:可选参数,表示步长,即每次循环序列增长值。
注意:产生的整数序列的最大值为stop-1.
#filename 1_12.py
fruits = ['banana','apple','mango']
for index in range(len(fruits)):
print('当前单词:',fruits[index])
使用for……else循环语句
For中的语句和普通的语句没有区别,else中的语句会在循环正常执行完(即for不是通过break跳出而中断的)的情况下执行。
For iterating_var in sequence:
Statements1
Else:
Statements2
Inerating_var:表示循环变量
Sequence:表示遍历对象,通常是元组,列表是元组、列表和字典等。
Statements:for语句中的循环体,它的执行次数就是遍历对象中值的数量。
Statement2:else语句中的statements2,只有循环正常退出(遍历完所有遍历对象中的值)时才执行。
#filename 1_13.py
for num in range(10,20):
for i in range(2,num):
if num%i ==0:
j=num/i
print('%d等于%d*%d'%(num,i,j))
break
else:
print(num,'是一个质数')
While跟其他语言的用法一样
While……else
While 条件:
语句1
Else:
语句2 #如果循环未被break终止,则执行
Pass语句
Pass语句是一个空语句,不做任何事。
Pass #这是一个空语句,与c或者java的空语句;一样
range(1,5) 将输出序列 [1, 2, 3, 4] 。在默认情况
下, range 将会以 1 逐步递增。如果我们向 range 提供第三个数字,则这个数字将成为逐
步递增的加数。同样举个例子来说明, range(1,5,2) 将会输出 [1, 3] 。要记住这一序列扩
展直到第二个数字,也就是说,它不会包括第二个数字在内。
案例(保存为 function_global.py ):
x = 50
def func():
global x
print('x is', x)
x = 2
print('Changed global x to', x)
func()
print('Value of x is', x)
输出:
$ python function_global.py
x is 50
Changed global x to 2
Value of x is 2
它是如何工作的
global 语句用以声明 x 是一个全局变量——因此,当我们在函数中为 x 进行赋值时,这
一改动将影响到我们在主代码块中使用的 x 的值
默认参数值
对于一些函数来说,你可能为希望使一些参数可选并使用默认的值,以避免用户不想为他们
提供值的情况。默认参数值可以有效帮助解决这一情况。你可以通过在函数定义时附加一个
赋值运算符( = )来为参数指定默认参数值。
要注意到,默认参数值应该是常数。更确切地说,默认参数值应该是不可变的——这将在后
面的章节中予以更详细的解释。就目前来说,只要记住就行了。
案例(保存为 function_default.py ):
函数
def say(message, times=1):
print(message * times)
say('Hello')
say('World', 5)
输出:
$ python function_default.py
Hello
WorldWorldWorldWorldWorld
它是如何工作的
名为 say 的函数用以按照给定的次数打印一串字符串。如果我们没有提供一个数值,则将按
照默认设置,只打印一次字符串。我们通过为参数 times 指定默认参数值 1 来实现这一
点。
在第一次使用 say 时,我们只提供字符串因而函数只会将这个字符串打印一次。在第二次使
用 say 时,我们既提供了字符串,同时也提供了一个参数 5 ,声明我们希望说(Say)这
个字符串五次。
注意
只有那些位于参数列表末尾的参数才能被赋予默认参数值,意即在函数的参数列表中拥
有默认参数值的参数不能位于没有默认参数值的参数之前。
这是因为值是按参数所处的位置依次分配的。举例来说, def func(a, b=5) 是有效的,
但 def func(a=5, b) 是无效的。