(四) 用户交互与运算符

用户交互与运算符

    • (一) 用户交互
      • 1.1 输入 input
      • 1.2 输出 print
    • (二) 运算符
      • 2.1 算术运算符
      • 2.2 赋值运算符
      • 2.3 比较运算符
      • 2.4 逻辑运算符
      • 2.5 成员运算符 in 、not in
      • 2.6 身份运算符 is ,is not (也是返回布尔值)
      • 2.7 运算符的优先级
    • 小试牛刀
      • 1.用户输入两个数完成两个数的加法运算
      • 2.使用两个print(),一行输出"我叫xxx"和"年龄xx"

(一) 用户交互

1.1 输入 input

input输入任何内容,最后的结果都是字符串类型,字符串类型,字符串类型!

input("请输入你的名字:")
input括号内部里面的东西只是一个提示,并没有其他的作用
name = input('请输入你的名字:')
print("你的名字是:"+name)

请输入你的名字:小明
你的名字是:小明


name = input("请输入你的姓名:")
password = input("请输入你的密码:")
print(name)
print(password)

请输入你的姓名:小明
请输入你的密码:123456   
小川
123456     #注意这串数字是字符串

name = input("请输入你的姓名:")
password = input("请输入你的密码:")
print(name)
print(password)
print(type(name))
print(type(password))

请输入你的姓名:aa
请输入你的密码:123456
aa
123456
<class 'str'>  #字符串
<class 'str'>  #字符串

无论我们输入的值是数字类型、字符串类型,input的接收值都是字符串类型

1.2 输出 print

print("hello world")  # 打印一个值
print("first","second",'third')  # 打印多个值
print("100+200="+str(100+200))   #字符串的拼接
print("100+200=",100+200)

hello world
first second third   #逗号打印时是以空格分隔
100+200=300
100+200= 300    

默认print本身有换行的作用,
那么它还有一个参数叫end参数,
这个参数的默认值为"\n",
可以将end参数的值改成任意其他其他字符
print(1,end="ajolscnlnclnqaonfoascoa")
print(2,end="")

1ajolscnlnclnqaonfoascoa2  #这串字符接到了1和2的中间

print(1,end="")   #把end设置为空就是取消换行
print(2,end="")

12

(二) 运算符

算术运算符
赋值运算符
比较运算符
逻辑运算符
成员运算符
身份运算符
运算符优先级

2.1 算术运算符

除法除出来是一个浮点数

假设有两个变量:a=10,b=20

运算符 描述 实例
+ 加——>两个数相加 a + b 输出结果 30
- 减——>得到负数或是一个数减去另一个数 a - b 输出结果 -10
* 乘——>两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/ 除——b 除以 a b / a 输出结果 2.0
% 取模(取余数)——返回除法的余数 b % a 输出结果 0
** 幂——返回a的b次幂 a**b为10的20次方,输出结果100000000000000000000
// 取整数——返回商的整数部分(向下取整) 9 // 2 ——>4
() 小括号 提高运算符优先级,比如(1+2)*3
a = 10
b = 20
print(a+b)
print(a-b)
print(a*b)
print(b/a)
print(b%a)
print(a**b)
print(b//a)

30
-10
200
2.0
0
100000000000000000000
2

2.2 赋值运算符

a = 20

b = 10

c = 200

运算符 描述 实例
= 简单的赋值运算符 把 = 号右边的结果 赋给 左边的变量 如:num = 1 + 2 * 3,结果num的值为7
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c * *= a 等效于 c = c ** a
//= 取整数赋值运算符 c //= a 等效于 c = c // a
a = 20
b = 10
c = 200

# c+=a  # 等价于c = c+a
c-=a
# 其他的方法与上面这两个同样
print(c)

2.3 比较运算符

a = 10

b = 20

运算符 描述 实例
== 比较对象是否相等 (a == b) 返回 False
!= 不等于–比较两个对象是否不相等 (a != b) 返回 True
> 大于–返回x是否大于y (a > b) 返回 False
< 小于–返回x是否小于y (a < b) 返回True
>= 大于或者等于–返回x是否大于等于y (a >= b) 返回 False
<= 小于或者等于–返回x是否小于等于y (a <= b) 返回 True
所有的比较运算符返回1表示真,
返回0表示假,这分别与TrueFalse等价
注意:TrueFalse 的首字母为大写

2.4 逻辑运算符

p为真命题,q为假命题,那么p且q为假,p或q为真,非q为真。and 、or、not(全部都是小写字母)

逻辑运算符 含义 基本格式 说明
and 逻辑与运算,等价于数学中的”且“ a and b 当a和b两个表达式都为真时,a and b 的结果才为真,否则为假
or 逻辑或运算,等价于数学中的”或“ a or b 当 a 和 b两个表达式都为假时,a or b 的结果才是假,否则为真
not 逻辑非运算,等价于数学中的”非“ not a 如果 a 为真,那么not a的结果为假;如果 a 为假,那么not a的结果为真,相当于对 a 取反
a = 14 > 6  # True
b = 45 > 90  # False
print(a and b)  # False
print(a or b)  # True
print(not a)  # False 相当于对a取反

False
True
False

逻辑运算符的本质

在python中,andor不一定会计算右边表达式的值,
有时候只计算左边表达式的值就能得到最终结果

对于and运算符,两边的值都为真时最终结果才为真,但是只有其中有一个值为假,那么最终结果就是假,所以python按照下面的规则执行and运算符:

  • 如果左边表达式的值为假,那么就不用计算右边表达式的值,因为不管右边表达式的值是什么,都不会影响最终结果,最终结果都是假,此时and会把左边表达式的值作为最终结果
  • 如果左边表达式的值为真,那么最终值是不能确定,and会继续计算右边表达式的值,并将右边表达式的值作为最终结果

对于or运算符,情况类似,两边的值都为假的时候最终结果才为假,只要其中有一个值为真,那么最终结果就是真,所以python按照下面的规则执行or运算:

  • 如果左边表达式的值为真,那么就不用计算右边表达式的值,因为不管右边表达式的值是什么,都不会影响最终结果,最终结果都是真,此时or会把左边表达式的值作为最终结果
  • 如果左边表达式的值为假,那么最终值是不能确定,or会继续计算右边表达式的值,并将右边表达式的值作为最终结果

2.5 成员运算符 in 、not in

用于判断对象是某个集合的元素之一,返回结果是bool值类型
看到成员就会想到这个成员在不在这个集体里面,在与不在的表示就是in和not in咯!

运算符 描述 实例
in 如果在指定的序列中找到值返回True,否则返回False a在animals序列中,如果a在animals序列中则返回True
not in 如果在指定的序列中没有找到值就返回True,否则返回False a不在animals序列中,如果a不在animals序列中就返回True
a = 'dog'
b = 'rabbit'
animals = ["dog","elephant","snake"]
print(a in animals)  # True
print(b in animals)  # False
print(a not in animals)  # False
print(b not in animals)  # True

2.6 身份运算符 is ,is not (也是返回布尔值)

身份运算符用于比较两个对象的存储单元
看到身份就想到身份不一样住的房子(存储单元)也会不一样,那我们就要看它是不是这个房子的主人,是不是也就是is和not is来表示啦!

运算符 描述 实例
is is 是判断两个标识符是不是引用自一个对象 a is b,类似id(a) == id(b),如果引用的是同一个对象则返回True,否则返回False
is not is not 是判断两个标识符是不是引用自不同的对象 a is not b,类似id(a) ! = id(b),如果引用的不是同一个对象则返回结果True,否则返回False

要注意is和==的区别,两者有根本上的区别

is用于判断两个变量的引用是否为同一个对象,而==用于判断变量引用的对象的值是否相等

is比较的是本质(也就是内存地址

==比较的是表面(也就是数值)

a=1
b=1.0
print(a == b)
print(a is b)

True
False

查看某个变量或者对象的内存地址 id()

两个相同的内存地址的对象被认为是同一个对象

a=1
b=1.0
print(id(a))
print(id(b))

1647214704
1647997751656

2.7 运算符的优先级

运算符 描述
** 指数(最高优先级)
~ + - 按位翻转,一元加号和减号(最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整数
+ - 加法减法
>> << 右移,左移运算符
& 位 “AND”
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is,is not 身份运算符
in,not in 成员运算符
not or and 逻辑运算符

优先级高的运算符就优先计算或者处理,同级别的就按从左往右的顺序计算(赋值运算符除外,它是从右往左的顺序)

  • 算术运算符 优先级大于 比较运算符
  • 比较运算符 优先级大于 逻辑运算符
  • 逻辑运算符的内部有三个优先级:not>and>or

以上三个优先级从高到低总结:加减乘除>比较运算符>not>and>or

如何记not,and,or这三个优先级顺序?
首先抽出not,and,or三个单词首字母,nao,发现nao就是中文的谐音,所以我们就可以编口诀:

逻辑运算真闹(nao)心,真真假假分不清

回忆环节
nao—not,and,or

你学废了吗O(∩_∩)O哈哈~

小试牛刀

1.用户输入两个数完成两个数的加法运算

2.使用两个print(),一行输出"我叫xxx"和"年龄xx"

做完练习可参考下方的答案

往下拉有答案

====================

====================

====================

====================

====================

====================

====================

====================
1.用户输入两个数完成两个数的加法运算
法一:

a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
print(a+b)

法二:
a = input(“请输入第一个数:”)
b = input(“请输入第二个数:”)
print(int(a)+int(b))

2.使用两个print(),一行输出"我叫xxx"和"年龄xx"

print("我叫小明",end=" ")
print("年龄18")

你可能感兴趣的:(#,Python基础核心语法,python,开发语言)