目录
type() 函数
input() 函数
运算符(重点)
1.算数运算符
2.赋值运算符
3.比较运算符
4.逻辑运算符
5.成员运算符
6.位运算符
7.运算符优先级
今天接着学习Python,介绍type()函数和input()函数,重点讲运算符,OK,废话不多说,上正文。
作用:查看变量的类型
使用方法:type(变量)
示例:
a='hello'
b=15
c=False
d=[1,5,'牛牛']
e=(5,7,'www',True)
f=1.023
print(type(a),type(b),type(c),type(d),type(e),type(f))
这个函数很简单,我们可以直接使用去查看变量的类型。
功能:输入获取键盘的数据
格式:变量=input(内容)
注意:这个函数在键盘上获取的数据结果都是字符串(str) 的形式
示例:
a=input('你今年多少岁?')
print(a,type(a))
b=input('会不会玩打野?')
print(b,type(b))
看,我输入数字,或者字符串,结果都是字符串(str)
符号 | 含义 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法(得到的结果为浮点型) |
// | 整除 |
% | 取余(得到余数) |
** | 幂(乘方) |
下面是一些相关使用的例子:
(1)加减法
a=1+5
print(a,type(a))
b=1+0.5
print(b,type(b))
在加减运算中,只要有浮点数参与运算,结果都是浮点数类型(float)
(2)乘法、乘方
print(2*5) #*:乘号
print(2**5) #**:表示次方
#浮点数参与乘法运算
b=2.5*2
print(b,type(b))
#字符串也可以进行运算
print('你好'*10)#结果是输出10个'你好'
跟加减法一样,如果有浮点数参与运算,输出结果也是浮点数类型,当然其他类型的变量也可以进行乘法运算,而输出结果是这个变量的乘数的数量
(3)除法
除法的结果都是浮点数类型 ,而整除的结果是向下取整,结果为整形
#一般除法/
a=4/2
print(a,type(a))
#整除//
print(9//4) #向下取整结果为2
print(-10//3) #向下取整结果为-4
print(10//3) #向下取整结果为3
(4)求余
这个基本都会的了,没什么注意事项,直接取余数就行了。
print(10%3) #结果为1
print(-10%-3) #结果为-1
(5)精确误差问题(浮点数)
浮点数误差问题是计算机一个很普遍的问题,因为计算机只认识0和1的二进制数,我们在计算机看到的十进制数其实都是由二进制转换而来的,但是浮点数并不能准确的表示十进制数,所以浮点数精确问题是很常见的。
#误差精确问题示例
a=5.4-3
b=4.2+2.1
print(a)
print(b)
解决方法:我们可以用Python内置的decimal 模块去处理十进制浮点数的误差问题。
#导入decimal模块,从decimal模块导入Decimal类
from decimal import Decimal
a=Decimal('5.4')-Decimal('3')
b=Decimal('4.2')+Decimal('2.1')
print(a)
print(b)
这个东西只要学了C语言的基本上都不需要多讲了,就是把等号右边的值赋值给左边
不过Python与C语言、c++,Java不同的是,Python不支持 i++ 或者 i-- 这种写法,这里注意一下就行了
符号 | 含义 | 示例 |
---|---|---|
= | 赋值符号 | c = a +b(右到左) |
+= |
加赋值 | a += b ==> a = a+b |
-= | 减赋值 | a -= b ==> a = a-b |
*= | 乘赋值 | a *= b ==> a = a * b |
/= | 除赋值 | a /= b ==> |
//= | 整除赋值 | a //= b ==> |
%= | 取余赋值 | a %= b ==> |
**= | 幂赋值 | a **= b ==> |
符号 | 含义 |
---|---|
> | 大于 |
< | 小于 |
== | 等于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
(一个=号是表示赋值;==是表示等于,进行比较)
对于比较运算符的返回结果是布尔变量(bool),也就是True 或者 False ,
示例1:(数值的比较)
a=1
b=1
print(a==b)
#输出结果是 True
没啥好说的,就直接比较就是了。
示例2:(字符串的比较)
之前有学习C语言的兄弟们应该知道,在C语言也有字符串比较是通过string.h库里的strcmp()函数进行比较,而在Python里面就基本不需要调用这些函数,直接用比较运算符进行比较就行了
字符串进行比较,实际上是通过ASCII进行比较的
规则:是通过比较第一个元素的ASCII码,如果比较成功就结束。如果比较之后没有结果那就接着比较第二个元素,以此类推……只要有一个比较出结果就结束比较
print('xyz'>'88') #结果是True
print('abc'>'acb') #结果是False
print('aa'<'AW')# 结果是False
print('ab'!='ac') #结果是True
符号 | 含义 |
---|---|
and | 与运算,and两边的值必须都为真的时候才为真 , 否则为假 |
or | 或运算 , or两边值其中有一个为真即为真 , 全假才为假 |
not | 非运算 , 即将真的转为假的 , 假的转为真的 |
这一类运算符也是经常可以看到的,在C语言中就是&&(and),||(or),!(not),而在Python是用英文表示的,不可以用&&、||等符号来表示。
示例如下:
a=int(input("你多少岁?"))#input获取的数据是字符串形式,要用int去类型转换
b=input('你有没有女朋友?')
if 18 <= a < 25 and b == '有':
print('666')
elif 30>a>=25 and b=='有':
print("6")
else:
print('777')
a=15
b=99
c=a<9 or b>15
print(c,type(c))
#输出结果 True
符号 | 含义 |
---|---|
in | 判断成员是否在序列中 |
not in | 判断成员是否不在序 |
成员运算符的返回结果一般是布尔变量,作为一种判断
li=[1,2,3,'李师傅','ww',5,'国服']
print('国服'in li)
print('李信' in li)
print('李师傅'not in li)
print(5 in li)
位运算包括与运算(&)、或运算(| )、异或运算(^)
运算符 | 描述 |
& | 按位与:两者都为1,否则为0 |
| | 按位或:只要有一个为1或者全部为1结果为1,否则就为0 |
^ | 按位异或:两者相等为0,不相等为1 |
手打
在计算机中,如果两个数进行位运算,实质上是把这两个数转化为二进制再进行位运算,比如:a=13,,b=6 这两个数字的二进制数分别是0000 1101 和 0000 0110 (前面的4个0是拓展位,不参与运算)如果我让这两个数字进行与运算、或运算、异或运算结果会怎么样呢?
与运算
规律:有且仅有两个都是1结果才为1,其他结果都为0
a=13 b=6
a&b
0000 1101
0000 0110
0000 0100 #这是结果(前面4位不参与运算)
再把结果进行转换得到的十进制数是4,所以a&b=4
或运算
规律:有且仅有两个都是0结果才为0,其他的都为1
a=13 b=6
a|b
0000 1101
0000 0110
0000 1111
把结果转换到十进制为15,所以a|b=15
异或运算
规律:相同为0,不同为1
a=13 b=6
a^b
0000 1101
0000 0110
0000 1011
把结果转为十进制是11,所以a^b=11
这里来看看代表结果吧.
a=13
b=6
print(a&b)
print(a|b)
print(a^b)
运算符也有优先级的,看看下面的表格然后敲敲代码就基本没问题了
符号 | 描述 |
---|---|
() | 小括号 |
** | 幂(乘方) |
*、/、//、% | 算术运算符 |
+、- | 算术运算符 |
<、>、<=、>=、==、!= | 比较运算符 |
in、not in | 成员运算符 |
not > and > or | 逻辑运算符 |
好了,这一期就到这里,thanks~~~