Day-03 python初步了解

Python 支持的运算符:数学运算符、比较运算符、逻辑运算符、赋值、位

1.数学运算符: + - * / //(整除) %(取余) **(幂运算)

print(5 / 2)结果和数学运算一样

print(6.3 /3)python中能用小数进行/ 和 //

print(5 // 2)数字一整除数字二结果只取整数部分

幂运算 x**y 求x的y次方
print(8 ** (1/3))
print(16 ** 0.5)
print(10 ** 4)

image

运算符的对象不一定是数据 也可以是存数据的变量

2.比较运算符 >,<, ==,!=,>=,<=

其所有结果均为布尔值(True,False)

image
age = int(input(""))
if age > 10:
        print('what u input is bigger than 10')
elif age == 10:
        print("ten")
else:
        print("is smaller than 10")

补充: is的使用
一个变量有三要素,类型(变量中存储的数据类型),值(储存变量的数据),地址(变量中真正的地址)

num = 100
print(type(num),num,id(num))

结果如下:

 100 8791178264496

==:判断变量的值是否相等
is :判断地址是否相等

list1 = [1,2]
list2 = [1,2]
list3 = list1
print(list1 == list2, list1 is list2, id(list1), id(list2))
print(list1 == list3, list1 is list3, id(list1), id(list3))

其结果如下

True False 4153928 4153992
True True 4153928 4153928

用一个变量给另一个变量赋值时 是将变量中的存储的数据的地址给另外一个变量

num1 = 100
num2 = 100
num3 = num1
print(id(num1), id(num2), id(num3))

结果如下

8791178264496 8791178264496 8791178264496

因为python会对数字和字符串做缓存作为常用数据备份 内存空间中已经存在了这个值就不会新开辟内存空间

3.逻辑运算符:and(与),or(或) , not(非)

逻辑运算符的运算对象和运算结果都是布尔值

and 与

值1 and 值2 --->两个都是True结果才为True
True and True ->True
False and True ->False
其他均为False要求多个条件同时满足的时候,就使用逻辑
运算

grade = 90
score = 95
print('是否能拿奖学金', grade > 90 and score >= 95)

结果如下:

是否能拿奖学金 False

or 或

如果两个都是False,否则结果为True

多个条件中只要有几个条件满足,就使用逻辑或运算

短路操作:与:如果第一个条件是False,就不会去判断第二个条件,直接让整个与运算为False
或:如果第一个条件是True,就不会去判断第二个条件,直接让整个或运算为True

grade = 70
is_inclass = True
print('是否处分',grade < 60 or not is_inclass)
grade = 55
print('是否处分',grade < 60 or not is_inclass)

结果如下 :

是否处分 False
是否处分 True

not 非

例子同上
not True -> False
age = 20
print(not age < 10 )

4.赋值运算符: =, += , -= , *= , /= , //=, %=, **=

赋值符号的左边必须是变量;右边必须是有结果的
a. 变量 = 结果 --> 将结果赋给变量

b.复合赋值运算符要求赋值符号的左边必须必须是一个已经赋值变量

5.运算符的优先级

数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符

数学运算中:** > *,/,%,// > +,-

优先级高的先算,优先级后算,如果有(),先算()里面

print(True + 10, False + 10)

结果如下:

11 10

2 数字类型

1 整型(int) 包含所有整数支持 十进制 二进制 八进制 十六进制
num0 = 123 #十进制,直接写
num1 = 0b110101 #二进制 0b 加二进制数
num2 = 0o127 #八进制 0o 加八进制数
num3 = 0x89af #十六进制0x 加十六进制数

print('十进制',123,'二进制',bin(123),'八进制',oct(123),'十六进制',hex(123))

运算结果如下:十进制 123 二进制 0b1111011 八进制 0o173 十六进制 0x7b

十进制 123 二进制 0b1111011 八进制 0o173 十六进制 0x7b

2 浮点型(float): 包含所有小数,支持科学计算
num1 = 12.5
num2 = 3.25e2 #代表3.25乘以10的2次方

  1. 布尔型(bool): 数学运算中值只有True ==1 和 False == 0

  2. 复数(complex): 实部+虚部j , 注意: j前面必须有数字,不能省略



字符串 (str)

通过单引号或者双引号括起来的字符集

str1 = 'abc'
str2 = 'abc123'

是python自己提供的一种容器型数据类型, 一个字符串中可以存多个字符,python中只有字符的概念,没有字符类型

如果在python中表示一个字符,就用一个长度是1的字符串来表示
字符串不可变但是有序

字符串中的字符
a.普通字符:包括一般的字母,数字,符号,其他文字,'a','G','1'

b.转义字符: 通关在一些特定的字符前加, 来表示特殊的功能或者意义。

'\n' -换行, ' 引号本身, ",\,\t 表示一个table 即缩进

注:1.没有阻住转义的时候,一个转义字符的长度是1,一个空格也是一个字符
2.可以再字符串最前面加r/R,来阻止转义

str1 = 'abc\n123'
str2 = 'hello\'z'
str3 = '\\n'
str4 = r'\\n'
print(str1,str2,str3,str4)

str8 = '\t姓名:小白\n\t年龄:18'
str9 = r'\t姓名:小白\n\t年龄:18'
print(str8)
print(str9)

结果如下:

abc
123 hello'z \n \\n
    姓名:小白
    年龄:18
\t姓名:小白\n\t年龄:18

c.编码字符:在字符串中用'\u' + 四位十六进制编码值表示一个字符

str9 = '你好\u4e00'
print(str9)

结果为

你好一
  1. 字符编码

计算机只能存数字数据,在存储数据时只能存数字的二进制补码

10 -> 转换成二进制 -> 求补码 (存)

a -> 97

字符的编码就是为了将字符存储到计算机中,给每个字符对应的一个固定的数字

目前计算机采用的编码方式有两种,分别是ASCII和Unicode码表 Python 种用的是Unicode
ASCII是用一个字节对字符进行编码(总共有128个字符)
Unicode包含ASCII,两个字节对字符进行编码,包含了世界上所有的语言和符号。

小写字母编码范围(a-z)97-122
大写字母编码范围(A-Z)65-90
中文编码范围 0x4e00-0x9fa5

字符编码相关的函数
a.chr(编码值) - 获取编码对应字符

print(chr(0xA020))
结果如下:
ꀠ

b.ord(字符) - 获取字符的编码值,返回的是十进制

print(ord('巧'))
结果如下:
24039
循环打印编码范围内的字符
for x in range(0x1800,0x18AF+1):
    print(chr(x),end = ',')

结果如下:

᠀,᠁,᠂,᠃,᠄,᠅,᠆,᠇,᠈,᠉,᠊,᠋,᠌,᠍,᠎,᠏,᠐,᠑,᠒,᠓,᠔,᠕,᠖,᠗,᠘,᠙,᠚,᠛,᠜,᠝,᠞,᠟,ᠠ,ᠡ,ᠢ,ᠣ,ᠤ,ᠥ,ᠦ,ᠧ,ᠨ,ᠩ,ᠪ,ᠫ,ᠬ,ᠭ,ᠮ,ᠯ,ᠰ,ᠱ,ᠲ,ᠳ,ᠴ,ᠵ,ᠶ,ᠷ,ᠸ,ᠹ,ᠺ,ᠻ,ᠼ,ᠽ,ᠾ,ᠿ,ᡀ,ᡁ,ᡂ,ᡃ,ᡄ,ᡅ,ᡆ,ᡇ,ᡈ,ᡉ,ᡊ,ᡋ,ᡌ,ᡍ,ᡎ,ᡏ,ᡐ,ᡑ,ᡒ,ᡓ,ᡔ,ᡕ,ᡖ,ᡗ,ᡘ,ᡙ,ᡚ,ᡛ,ᡜ,ᡝ,ᡞ,ᡟ,ᡠ,ᡡ,ᡢ,ᡣ,ᡤ,ᡥ,ᡦ,ᡧ,ᡨ,ᡩ,ᡪ,ᡫ,ᡬ,ᡭ,ᡮ,ᡯ,ᡰ,ᡱ,ᡲ,ᡳ,ᡴ,ᡵ,ᡶ,ᡷ,ᡸ,᡹,᡺,᡻,᡼,᡽,᡾,᡿,ᢀ,ᢁ,ᢂ,ᢃ,ᢄ,ᢅ,ᢆ,ᢇ,ᢈ,ᢉ,ᢊ,ᢋ,ᢌ,ᢍ,ᢎ,ᢏ,ᢐ,ᢑ,ᢒ,ᢓ,ᢔ,ᢕ,ᢖ,ᢗ,ᢘ,ᢙ,ᢚ,ᢛ,ᢜ,ᢝ,ᢞ,ᢟ,ᢠ,ᢡ,ᢢ,ᢣ,ᢤ,ᢥ,ᢦ,ᢧ,ᢨ,ᢩ,ᢪ,᢫,᢬,᢭,᢮,᢯,

你可能感兴趣的:(Day-03 python初步了解)