学习Python(2)Python数据类型&运算符&IF分支

Python数据类型&运算符

数据类型

计算机顾明思议就是可以做数学运算的机器,因此计算机理所当然的可以处理各种数据,但是计算机能处理的远远不止数值,还有文本,图形,音频,视频网页等各种数据, 不同数据需要定义不同的数据类型

Python的数据类型:

int, float, complex : 数值类型
str: 字符串
bool: 布尔类型, 只有2个值: True, False
None: 空值类型, 只有1个值: None
list: 列表/数组
tuple: 元组/不可变数组
dict: 字典
set: 集合(了解)
bytes: 字节/二进制

int

a = 100
print(a, type(a))  # 100 <class 'int'>

float

b = 10.3
print(b, type(b))  # 10.3 <class 'float'>

str

c = "蔡徐坤"
print(c, type(c))  # '蔡徐坤' <class 'str'>

bool

d = True
print(d, type(d))  # True <class 'bool'>
print(int(True), int(False))  # 1 0

None类型

e = None
print(e, type(e))  # None <class 'NoneType'>

list

f = [1, 2, 3]
print(f, type(f))  # [1, 2, 3] <class 'list'>

tuple

g = (1, 2, 3)
print(g, type(g))  # (1, 2, 3) <class 'tuple'>

dict

h = {"name": "杨超越", "age": 23}
print(h, type(h))  # {'name': '杨超越', 'age': 23} <class 'dict'>

set(了解)

i = {1, 2, 3}
print(i, type(i))  # {1, 2, 3} <class 'set'>

bytes

j = b'hello'
print(j, type(j))  # b'hello' <class 'bytes'>

算术运算符和关系运算符

算术运算符

	+, -, *, /, %(求余,取模), **(次方,幂), //(取整)
print(10 + 4)  # 14
print(10 - 4)  # 6
print(10 * 4)  # 40
print(10 / 4)  # 2.5
print(10 % 4)  # 2
print(10 ** 4)  # 10000
print(10 // 4)  # 2

关系运算符

作用:比较大小,得到结果为布尔值【如果表达式成立,则返回True,如果不成立,则返回False】
使用场景:if语句,循环

>, >=, <, <=, ==, !=
print(10 > 4)  # True
print(10 >= 4)  # True
print(10 < 4)  # False
print(10 <= 4)  # False
print(10 == 4)  # False
print(10 != 4)  # True

字符串比较

  ASCII码:
  A~Z : 65~90
  a~z : 97~122
  0~9 : 48~57
print(8 == '8')  # False
print('a' > 'b')  # False
print('abc' < 'acb')  # True
print('ad' > 'adc')  # False

逻辑运算符

and : 与, 并且 
or: 或, 或者
not:非, 取反

and

两边都为真则为真, 只要有一个为假则为假

print(True and True)  # True
print(True and False)  # False
print(False and True)  # False
print(False and False)  # False
print(10%2==0 and 3>4)  # False

or

两边都为假则为假, 只要有一个为真则为真

print(True or True)  # True
print(True or False)  # True
print(False or True)  # True
print(False or False)  # False
print(10%2==0 or 3>4)  # True

not

一定会得到一个bool值

print(not True)  # False
print(not False)  # True
print("-" * 100)
print(not 0)  # True
print(not "")  # True
print(not " ")  # False
print(not None)  # True
print(not [])  # True
print(not {})  # True
 bool (牢记)
 数值类型: 0是假的,其他都为真
 字符串: ""空字符串是假的, 其他都为真
 None类型: None是假的
 list类型: []空列表为假,其他为真
 dict类型: {}空字典为假,其他为真

短路操作

and : 两边都为真则为真, 只要有一个为假则为假

x = 10 and 0 and 4
x = 10 and print(2)
print(x)

or : 两边都为假则为假, 只要有一个为真则为真

x = 0 or 3 or 4
x = 0 or 3 or print(2)
print(x)

成员运算符和身份运算符

成员运算符

 in, not in
print(1 in [1,2,3])  # True
print('abc' not in "abcdefg")  # False

判断某个月是否是31天

m = 1
s = m==1 or m==3 or m==5 or m==7 or m==8 or m==10 or m==12
s = m in [1,3,5,7,8,10,12]
print(s)  # True

身份运算符

is, is not
id(): 查看内存地址

判断内存地址是否相同

a = 100
b = 100
print(id(a))  # 140731785928832
print(id(b))  # 140731785928832

print(a is b)  # True
print(a is not b)  # False

赋值运算符和位运算符

赋值运算符

简单赋值运算符:= 给一个变量进行赋值
复合赋值运算符:+= -= %= /= … 给一个变量进行赋值,同时给变量进行相应的运算

 =, +=, -=, *=, /=, //=, %=, **=
a = 10
# a = a + 4  # 将自身a的值+4
a += 4  # 等价于上面的写法
a -= 4
a *= 4
a /= 4
a //= 4
a %= 4
a **= 4
print(a)

位运算符[扩展]: 了解

前提:将数字转换为二进制使用

&【按位与】    |【按位或】  ^【按位异或】   ~【按位取反】    << 【左移】        >>【右移】
print(12 & 5)  # 位与
# 1100  => 12
# 0101  => 5
#-------------
# 0100  => 4

print(12 | 5)  # 位或
# 1100  => 12
# 0101  => 5
#-------------
# 1101  => 13

print(12 ^ 5)  # 位异或
# 1100  => 12
# 0101  => 5
#-------------
# 1001  => 9

print(12 >> 2)  # 右移2位
# 1100  => 12
#   11  => 3

print(12 << 2)  # 左移2位
#   1100  => 12
# 110000  => 48

print(~6)  # 按位取反, -7
# 00000000 00000000 00000000 00000110  => 6
# 11111111 11111111 11111111 11111001  ~6 补码
# 11111111 11111111 11111111 11111000  反码 = 补码-1
# 10000000 00000000 00000000 00000111  原码 = 反码第一位(符号位)不变,其他的取反

IF分支

if条件会自动转换成bool进行判断,如果为真则进入if,否则不进入

单分支

sex = input("请输入性别:")
age = 50
if sex == "女":
    age = 18
print(age)

if -1:
    print("hello")

IF双分支

n = int(input("请输入一个整数:"))
if n%2 == 0:
    print(n, "是偶数")
else:
    print(n, "是奇数")

IF多分支

# 5,成绩判定
# 	大于85 优秀
# 	大于等于75小于等于85 良好
# 	大于等于60小于75 及格
# 	小于60  不及格

score = int(input("请输入一个成绩:"))
if score > 85:
    print("优秀")
elif score >= 75:
    print('良好')
elif score >= 60:
    print("及格")
else:
    print("不及格")

if嵌套

if score >= 60:
    if score > 85:
        print("优秀")
    elif score >= 75:
        print("良好")
    else:
        print("及格")

else:
    print("不及格")

if-else

# 求2个数的较大数
a = 2
b = 3

# 方式一
if a > b:
    print(a)
else:
    print(b)


# 方式二
# c语言中: ? : 三目运算符, Python中没有
s = a if a>b else b
print(s)

猜你喜欢

转载自blog.csdn.net/qq_43284558/article/details/107524158