今天先把变量给补充一下:
一.变量具备的三个特征是:
1. id id是变量的唯一编号, 在内存里地址不同,id就不同.
2.type 是指变量值的类型.
3.value 是指变量的值.
等号比较的是value, is比较的是id, id相同则 type和value肯定相同.
value相同则type肯定相同,但id不一定相同 如下:
>>> x='Info Egon:18' >>> y='Info Egon:18' >>> id(x) 4376607152 >>> id(y) 4376607408 >>> >>> x == y True >>> x is y False
二.小整数池:
1、在交互式模式下 Python实现int的时候有个小整数池。为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器会在启动时创建出小整数池,范围是[-5,256],该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被GC回收 每创建一个-5到256之间的整数,都是直接从这个池里直接拿走一个值,例如 >>> y=4 >>> id(y) 4297641184 >>> >>> x=3 >>> x+=1 >>> id(x) 4297641184 在pycharm中 但在pycharm中运行python程序,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化机制,至于范围到底多大,无需细究
三.常量:
常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量 举例,假如老男孩老师的年龄会变,那这就是个变量,但在一些情况下,他的年龄不会变了,那就是常量。在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量
四.注释:
代码注释分单行和多行注释, 单行注释用#
,多行注释可以用三对双引号""" """
代码注释的原则:
1. 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可
2. 注释可以用中文或英文,但不要用拼音.
五.基本数据类型:
1. 什么是数据类型
变量值即我们存放的数据,数据类型及变量值的类型
2. 变量值为何要区分类型
因为变量值使用记录现实世界中事物的特征,针对不同的特征就应该用不同类型的值去标识
3. 如何应用数据类型
数字 :
int整型: 定义:age=10 age=int(10)
用于标识:年龄,等级,身份证号,qq号,个数 float浮点型: 定义:salary=3.1 salary=float(3.1) 用于标识:工资,身高,体重,
字符串 str:
在python中,加了引号的字符就是字符串类型,python并没有字符类型。 定义:name='egon' name=str('egon') 用于标识:描述性的内容,如姓名,性别,国籍,种族.
(单引号跟双引号没有任何区别,但是要考虑单双引号的配合.而三引号是在多行字符串的情况下使用.)
字符串是可以加跟乘的(只能字符串加字符串,不能字符串加其他类型):
name='egon'
age='18' name+age 'egon18' name*5
'egonegonegonegonegon'
列表 list:
在[]内用逗号分隔,可以存放n个任意类型的值 定义:students=['egon','alex','wupeiqi',] students=list(['egon','alex','wupeiqi',]) 用于标识:存储多个值的情况,比如一个人有多个爱好
字典 dict:
为何还要用字典? 存放一个人的信息:姓名,性别,年龄,很明显是多个值,既然是存多个值,我们完全可以基于刚刚学习的列表去存放,如下 info=['egon','male',18] 定义列表的目的不单单是为了存,还要考虑取值,如果我想取出这个人的年龄,可以用 info[2] 18 但这是基于我们已经知道在第3个位置存放的是年龄的前提下,我们才知道索引2对应的是年龄 即: name, sex, age info=['egon','male',18] 而这完全只是一种假设,并没有真正意义上规定第三个位置存放的是年龄,于是我们需要寻求一种,即可以存放多个任意类型的值,又可以硬性规定值的映射关系的类型,比如key=value,这就用到了字典.
在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型 定义:info={'name':'egon','age':18,'sex':18} #info=dict({'name':'egon','age':18,'sex':18}) 用于标识:存储多个值的情况,每个值都有唯一一个对应的key,可以更为方便高效地取值.
六. 布尔值:
1.布尔值,一个True一个False 计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人脑能干什么,计算机就应该能干什么,人脑的主要作用是数据运行与逻辑运算,此处的布尔类型就模拟人的逻辑运行,即判断一个条件成立时,用True标识,不成立则用False标识 a=3 b=5 a > b 不成立就是False,即假 False a < b 成立就是True, 即真 True
2.所有数据类型都自带布尔值 1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False 2、其余均为真.
七. 输入输出:
1.在python3中的input会将用户输入的任何内容都存成str类型
name=input("请输入您的用户名: ") name="egon"
pwd=input("请输入您的密码: ") pwd='123'
if name == 'egon' and pwd == '123':
print('登陆成功')
else:
print('用户名或者密码输入错误')
(在python3中 input:用户输入任何值,都存成字符串类型. 在python2中 input:用户输入什么类型,就存成什么类型raw_input:等于python3的input)
2.程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式
比如要求用户输入用户名和年龄,然后打印如下格式:
My name is xxx,my age is xxx.
很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接。
这就用到了占位符,如:%s、%d
%s字符串占位符:可以接收字符串,也可接收数字 :
print('My name is %s,my age is %s' %('egon',18))
%d数字占位符:只能接收数字 :
print('My name is %s,my age is %d' %('egon',18))
八 基本运算符 :
1 算术运算
print(10 + 1.1)
print(10 / 3) 有整数部分有余数部分
print(10 // 3) 去掉小数部分
print(10 % 3) 取余
print(2 ** 3)
2. 比较运算
比较运算只能在同类型之间进行,其中int与float同属于数字类型
print(10 > 3.1)
print(10 >= 10)
(比较字母的时候会按照顺序来比大小,顺序越往后越大)
3. 赋值运算:
增量赋值: age=18 age=age + 1 age+=1 age=age+1
链式赋值: x=10 y=x print(x is y) a=b=c=d=e=111 print(a is b is c is d is e) .
交叉赋值: x=10 y=20 temp=x x=y y=temp x,y=y,x print(x,y)
解压赋值:
a=nums[0] b=nums[1] c=nums[2] d=nums[3] e=nums[4] a,b,c,d,e=nums print(a,b,c,d,e)
(如果只想取三个值.变量名可以用_代替,_等于占位符,是一个无用的变量名)
4. 逻辑运算 and or not :
and:连接左右两个条件,两个条件必须都成立,最后结果才为True,一旦左边条件为假则最终结果就为假,没有必要再去计算右面条件的值.
or:连接左右两个条件,两个条件但凡有一个成立,结果就为True,一旦左边条件为True则最终结果就为True,没有必要再去计算右面条件的值,
一旦左边条件为False,还需要去计算右面条件的值,如果为True,最终也True .
not:取反向结果.
5.身份运算 :
is是比较id == 是比较值