Python的基础类型
1.number类型
1> 整数 num1 = 100
2> 浮点数 float1 = 10.10
3> 复数 com = 1+2j
2.字符串类型
概念:使用单引号或者双引号括起来的任意字符,我们就称之为字符串
注意:当字符串中出现单引号的时候,我们这个字符串需要使用双引号引起来
当字符串中出现双引号的时候,这个字符串需要使用单引号括起来
例如:
str3 = "I'm ok"
print(str3)
str4 = 'I am "ok"'
print(str4)
str5 = 'I\'m "ok"'
str6 = "I'm \"ok\""
print(str5)
print(str6)
转义字符:\代表\ \t代表制表符4个空格 \n 换行 \f换页 ’ 单引号
" 双引号
注意:当使用路径的时候,中间可能会有很多,需要转义,这时候我们可以在字符串
前面添加一个r,表示此字符串不进行转义,原样输出。
当字符串出现多行的时候,我们可以使用三引号,将字符串括起来,能够保持原本的格式进行原样输出
3.bool类型
取值有两个,一个True还有一个是False。
bool1 = True
bool2 = False
4.None 空值
None与0并不相等,它表示一个空值
num = None
5.tuple 元组
元组的本质也是一个有序的集合,一旦初始化就不能修改
tuple1 = (1,2,3)
6.list 列表
列表的本质就是一个有序的集合。
列表可以存放所有的基本数据类型的数据,自定的数据类型也可以存放。
list1 = [1,2,3,4]
7.dict 字典
本质是一个无序的集合,存储的时候以key-value的方式来进行存储的,
并且字典中的key是不可变的,key不重复的
dict1 = {key1:value1,key2:value2}
8.set 集合
与字典类似,但是只存储了字典中的key,没有存储字典中的value,
set集合中的元素,第一个是不重复的(具有去重功能),第二是不可变的。
set1 = {1,2,3,4}
变量与常量:
常量:在程序运行的期间不改变的量
作用:给变量赋值的
变量:在程序运行的期间可以改变的量,我们称之为变量
作用:将不同的数据类型的数据存储到我们的内存中。
变量的定义:
变量 = 值
注意:在python中定义的变量的时候我们无需声明其类型,
它的类型由它的值来决定。
【原因:python是一门动态数据类型的的语言】
删除变量
del 变量名
注意:变量一旦删除,则不能再进行引用。
关于number的函数:
数字类型之间的转换
int(x) 将字符串或者float类型转为整型【字符串必须是合法的字符串】
float(x) 将字符串或者int类型转为浮点型【字符串必须是合法字符串】
print(float(12))#12
print(float("12"))#12
print(float("12.23"))#12.23
print(float("+12.23"))#12.23
print(float("-12.23"))#-12.23
print(float("12-3")) #报错
age = input("请输入您的年龄:")#15
print(age)#15
print(type(age))#class str
age = int(age) #转换成整数类型
print(age+1)#16
print(type(age))#class int
print(int(12.94)) #12
print(int("12")) #12
print(int("12.23"))#报错
print(int("-12"))#-12
print(int("+12"))#12
print(int("1+2"))#报错
‘’’
在python中可以直接拿来用的函数我们称之为内置函数
举例:print(),input(),int(),float()
数学函数
1.求绝对值 abs(x)
功能:返回x的绝对值
2.max(n1,n2,…,n)
功能:返回传入参数的最大值
3**.min(n1,n2,…,n)**
功能:返回传入参数的最小值
4.pow(x,y)
功能:返回x的y次方
5**.round(x,n)**
功能:返回浮点数x的四舍五入值,若指定了n值,则保留n位小数
在python2.x遇到.5的时候随机的,py3.x遇到.5向偶数靠拢。
print(abs(-122)) #122
print(abs(122)) #122
print(max(12,34,5,2,3,567,78)) #567
print(min(12,34,5,2,3,567,78)) #12
print(pow(2,3)) #8
print(round(12.34)) #12
print(round(12.89)) #12
print(round(12.5)) #12
print(round(13.5)) #14
math模块中的常用函数:
import math #导入math模块
math.ceil(x)
功能:对x向上取整
math.floor(x)
功能:对x向下取整
math.modf(x)
功能:返回x的小数部分与整数部分,以元组的方式返回【可能会有误差】
math.sqrt(x)
功能:返回x的开平方(只返回正数的部分)
print(math.ceil(12.34)) #13
print(math.ceil(12.04)) #13
print(math.floor(12.34)) #12
print(math.floor(12.89)) #12
print(math.modf(12.34)) #(0.33999999999999986, 12.0)
print(math.sqrt(9)) #3
随机数模块:
import random #导入模块
random.choice(list1)
从序列[有序的]中随机挑选一个元素
print(random.choice([1,2,3,4]))
print(random.choice((1,2,3,4)))
print(random.choice(“hello”))#报错
random.randrange([start,]end[,step])
参数一:start 从start开始,若start不写,默认从0开始
参数二:end 到end结束,end必须给
参数三:step 步长
取值范围[start,end)
random.random()
功能:产生一个从[0,1)的浮点数
random.shuffle(list1)
功能:对序列进行随机排序
random.uniform(m,n)
功能:产生一个从[m,n]的随机浮点数
random.randint(m,n)
功能:产生一个从[m,n]的随机整数
print(random.choice([1,2,3,4]))
print(random.choice((1,2,3,4)))
print(random.choice("hello"))
print(random.randrange(1,10,2))
print(random.random()*100)
print(random.random()*70+10)#[10,80)的浮点数
print(random.uniform(1,100))
list1 = [1,2,3,4,5,6]
random.shuffle(list1)
print(list1)
print(random.choice(list1))
运算符以及运算表达式:
+加
-减
*乘
/ 除
% 取模,求余数
** 求幂 x的y次幂
// 取整,求商
被除数 除以 除数 = 商 … 余数
使用算术运算符的时候,我们的变量只参与运算,自身的值并不会发生变化
num1 = 10
num2 = 20
print(num1 + num2) #30
print(num1 - num2) #-10
print(num1 * num2) #200
print(num1 / num2) #0.5
print(num1 % num2) #10
print(num1 ** num2) #10^20
print(num1 // num2) #0
比较运算符:
使用比较运算符的时候获取的结果是一个bool值
1.等于 ==
作用:比较两个对象是否相等,若相等则返回True,否则返回False
2.不等于 !=
作用:比较两个对象是否不相等,若不相等则返回True,否则返回False
3.大于 a > b
作用:判断a是否大于b,若成立则返回True,否则返回False
4.小于 a <b
作用:判断a是否小于b,若成立则返回True,否则返回False
5.大于等于 a>=b
作用:判断a是否大于b或者a等于b,若成立则返回True,否则返回False
6.小于等于 a<=b
作用:判断a是否小于b或者等于b,若成立则返回True,否则返回False
a = 20
b = 30
print(a == b) #False
print(a != b) #True
print(a > b) #False
print(a < b) #True
print(a >= b) #False
print(a <= b) #True
赋值运算符以赋值运算表达式:
赋值运算符 =
在python中,赋值的时候我们使用等号来进行赋值
变量名 = 值
同时定义多个变量
num1,num2 = 10,20
print(num1)
print(num2)
num3,num4= {10,20}
print(num3)
print(num4)
num1 = 10
num2 = 20
要求,将num1的值与num2的值进行交换,使用一行代码实现。
num1 = 10
num2 = 20
temp = num1
num1 = num2
num2 = temp
交叉赋值
num1,num2 = num2,num1
print("num1",num1)
print("num2",num2)
逻辑运算:
在python中逻辑运算有
and:与运算
当使用and连接的时候,所有的运算结果都为真的情况下,这个表达式的表达式的结果才为真,
否则的话,表达式的结果为假
且,并且 条件使用and来进行连接。
or:或运算
使用or来连接的时候,所有的运算结果都为假的情况下,这个表达式的结果才为假,否则为真。
或者
not:非运算
非运算,将真变为假,将假变为真
在判断语句中经常使用。
短路原则:
1.当使用and进行链接的时候,若有一个表达式的结果为假,则不会继续进行运算,直接返回假
一假则假
2.当使用or进行链接的时候,若有一个表达式的结果为真,则不会继续进行运算,则直接返回真。
一真则真
代表假的元素:
0、None、"",[],(),{},False
逻辑运算符的优先级
()优先级最高 > not优先级 > and优先级 > or优先级
print(True or 2) #True
print("hello" and True and 1) #1
print(0 and 1)#0
print(True and 0)#0
print(True and None)#None
print(True and "")#空
print(True and [])#[]
print(True and ())#()
print(True and {})#{}
print(True and 3>2 and 4>5)#False
print(False or True)#True
print(False or 4>5)#False
print(not True) #False
print(not False)#True
位运算:
使用位运算的时候,我们需要将数值转为二进制的数再来进行运算。
& 按位与
| 按位或
^ 按位异或
~ 按位取反
(<< 左移)
(>> 右移)
& 按位与,参数运算的两个数,对应的位都为1的时候,该位为1否则为0
| 按位或,参与运算的两个数,对应位有一个为1,则该位为1,否则为0
^ 按位异或,对应位相异的时候结果为1
~按位取反
对数据的每个二进制位进行取反。
左移运算符<<
右移运算符>>
成员运算:
成员运算符:
in:判断某个元素在指定的序列中是否存在,若存在返回True,否则返回False
not in:判断某个元素在指定序列中是否不存在,若不存在则返回True,否则返回False
list1 = [1,3,4,5]
print(1 in list1) #True
print(2 in list1) #False
print("1" in list1) #False
print("1" in "1234") #True
print("hello1" in "hello world") #False
print( 1 not in list1) #False
身份运算符:
功能:判断两个标识符是否引用于同一个对象,若是则返回True,否则返回False
使用is判断,本质判断标识符的地址。
什么时候两个标识符才真正引用同一个对象?
list3 = list1
当我们使用赋值运算的时候,两个标识符引用的就是同一个对象
注意:在python解释器中[-5,257)的数据有缓存,在pycharm中的缓存范围更大
在比较这些数据的时候有可能比较不出正确的结果。
num1 = 1000
num2 = 1000
print(num1 is num2)
print(id(num1))
print(id(num2))
list1 = [1,2,3,4]
list2 = [1,2,3,4]
list3 = list1
print(list1 is list2)
print(id(list1))
print(id(list2))
print(id(list1))
print(id(list3))
print(list1 is list3)