Bootstrap

用户交互与运算符

二 用户交互与运算符

2.1 用户交互

人input输入,计算机print输出

2.1.1 输入input

  • 程序执行input(),程序会停下来等待用户的输入,用户可以从键盘输入任何内容,输入的数据都会存为字符串类型

  • 语法

    input("请输入姓名:") # 程序遇到会立即停止,可以从控制台输入内容。回车后程序继续执行
    
    # input("") 括号内部的文字,只是在你输入的位置前增加一个友好的提示,并无逻辑作用 
    
# input 接收的数据一切皆为字符串
age = input("请输入一个年龄:")

print(age + 1) # 会报错,因为   str + int   字符串只能和字符串相加
  • python支持将1个数据类型转换成另外一种数据类型

2.1.2 数据类型转换

4个数据类型: int float bool str 可以互相转换的

转换手法:使用 英文名+括号 将 待转数据 包囊起来

函数方法说明
int()将数据转换成整数
float()将数据转换成浮点数
bool()将对象转换成布尔类型
str()将对象转换成字符串
eval()用来计算在字符串中的有效python表达式,并返回一个对象
  • 超市找零系统
# 执行程序要用户输入
	商品单价
    商品数量
    付款金额
# 计算机应该输出该找零多少钱

price = float(input("请输入商品单价:"))
count = int(input("请输入商品数量:"))
money = float(input("请输入收款金额:"))

print(money - price * count)


其他类型转换的时候,规律
# float -》 int  (截取小数部分,向下取整,只保留整数部分)
int(1.9) => 1

# int -> float
float(1) => 1.0

# bool -> int
True  -> 1	
False -> 0

# 其他类型转 -> bool
int 除了0False,其余都是True
float 除了0.0False,其余都是True
str 除了空字符串是False,其余都是True
	# 编程中空字符串,不是说空格,空格也算一个空间
    # s = '' # 空字符串
    # print(bool(s))
    
# 其他类型转 -> str
# 什么都可以转字符串,降智,直接变成文本

# str -> 其他类型 (长得像目标)
    int("1") => 1
    bool("True") => True 
    
    
    
eval 配合超市找零系统
price = eval(input("请输入商品单价:"))
count = eval(input("请输入商品数量:"))
money = eval(input("请输入收款金额:"))
print(money - price * count)

3.1.3 输出print

print('hello world') # 只输出一个值


a = 10
b = "哈哈"
c = "星星"
print(a,b,c)# 一次性输出多个值,值用逗号隔开


print2个特别参数
	sep:一次性输出多个值,print的分隔符
        可以自行修改多个变量的分隔符
        print(a,b,c,sep="~")
        print(a,b,c,sep="@")
        print(a,b,c,sep=" ")
        print(a,b,c,sep="")
    end:结束字符
    	默认end="\n"
        
        print(6, end="")  # 取消print自带的换行功能
        print(6)

2.2 运算符

2.2.1 算术运算符

运算符说明实例结果
+12.45 + 1527.45
-4.56 - 0.264.3
*5 * 3.618.0
/除法(和数学中的规则一样)7 / 23.5
//整除(只保留商的整数部分)7 // 23
%取余,即返回除法的余数7 % 21
**幂运算/次方运算,即返回 x 的 y 次方2 ** 416,即 24

2.2.2 赋值运算符

运算符说 明用法举例等价形式
=赋值运算x = yx = y
+=加赋值x += yx = x + y
-=减赋值x -= yx = x - y
*=乘赋值x *= yx = x * y
/=除赋值x /= yx = x / y
%=取余数赋值x %= yx = x % y
**=幂赋值x **= yx = x ** y
//=取整数赋值x //= yx = x // y
age = 18
age += 1  # age = age + 1 # 基于自己本身增长1
age += 100  # age = age + 100
print(age)


age *=3 # age = age * 3
age /=3 # age = age / 3
age %=3 # age = age % 3
  • 一些赋值手段

    • 链式赋值

      # a = 18
      # b = a
      # c = b
      #
      # print(a,b,c)
      
      c = b = a = 18
      
      print(a,b,c)
      
    • 交叉赋值

      x = 10
      y = 20
      
      
      # 问:如果想要将x和y两个变量中的值 进行交换
      temp = x
      x = y
      y = temp
      
      print("x=",x)
      print("y=",y)
      
      # python也提供了 交叉赋值,可以直接做到交换
      x,y = y,x # 也可以做到交换的效果
      

2.2.3 比较运算符

有比较就有命题,有命题就有真和假。 所以比较运算符 的结果 一定是 bool值

比较运算符说明
>大于,如果>前面的值大于后面的值,则返回 True,否则返回 False。
<小于,如果<前面的值小于后面的值,则返回 True,否则返回 False。
==等于,如果==两边的值相等,则返回 True,否则返回 False。
>=大于等于(等价于数学中的 ≥),如果>=前面的值大于或者等于后面的值,则返回 True,否则返回 False。
<=小于等于(等价于数学中的 ≤),如果<=前面的值小于或者等于后面的值,则返回 True,否则返回 False。
!=不等于(等价于数学中的 ≠),如果!=两边的值不相等,则返回 True,否则返回 False。


a = 100
b = 200

print(a>b)
print(a<b)

print(a==b) # 等于
print(a!=b) # 不等于

print(a>=b)
print(a<=b)


# 用户输入年龄,如果年龄 大于等于18,输出True,否则输出False
age = int(input("请输入年龄:"))
print(age>=18)

# 用户输入一个数,如果这个数是偶数 True,否则输出False
numb = int(input("请输入个整数:"))
print(numb % 2 == 0)

2.2.4 逻辑运算符

布尔值是可以计算的。 bool 逻辑运算符 bool

逻辑运算符含义基本格式说明
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 取反。

优先级:not>and > or

res = 3>4 and not 4>3 or 1==3 and 'x' == 'x' or 3>3

2.2.5 身份运算符

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

数据是存在内存中的。

两个值相同的数据,地址不一定是相同的。

a is b # 用于判断a和b是否是同一个来源的数据

2.2.6 运算符优先级

运算符说明Python运算符优先级结合性
小括号( )19
乘方**16
符号运算符+(正号)、-(负号)14
乘除*、/、//、%13
加减+、-12
比较运算符==、!=、>、>=、<、<=7
is 运算符is、is not6
逻辑非not4
逻辑与and3
逻辑或or2
  • 优先级总结

  • () > 算术运算符 > 比较运算符 > 逻辑运算符 (not > and > or)

  • 括号是大哥

  • 最终练习

;