1.语言的分类
-- 机器语言:直接编写0,1指令,直接能被硬件执行
-- 汇编语言:编写助记符(与指令的对应关系),找到对应的指令直接交给硬件执行
-- 高级语言:编写人能识别的字符,要通过编译器或解释器转换为汇编语言最终转换为机器语言的指令交给硬件执行
运行效率最高:机器语言
开发效率最高:高级语言
维护成本
2.计算机组成:控制器 + 运算器 + 存储器 + 输入input设备 + 输出output设备
3.三大核心:cpu + 内存 + 硬盘
4.环境的搭建:环境变量:python解释器 | pip install 工具
5.两种执行方式: 交互式 | 脚本式
6.变量:
-- 声明: 变量名 = 变量值
-- 变量值:变量名 类型:type(变量名) 地址:id(变量名)
-- == | is: == 值比较 | is地址比较
7.pycharm安装于创建项目
今日内容
'''
1.变量(标识符)的命名规范 *****
2.常量
3.格式化输入输出
4.注释
5.基本的数据类型:int long float bool str list dict *****
6.运算符:算术运算符 | 关系运算符 | 逻辑运算符 | 成员运算 *****
变量名的命名规范
1.只能以字母,数字,下划线组成
2.不能以数字开头
3.避免出现python关键字
比如:['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
以上关键字为变量名时会直接报错
4.以 _ 开头的都有特殊的含义
5.以为 __开头与结尾的在python中叫做魔法变量:内置变量
6.建议使用 _ 来连接声明长变量名:比如:owen_name old_boy_edu
7.支持使用小驼峰与大驼峰命名规范:owenName(小驼峰,第一个首字母小写,后面的首字母都是大写,OwenName(大驼峰,每个首字母都是大写))
8.多个单词的简写建议写成全是大写的缩写。比如 : URL HTTP HTML
9.用全大写来标识常量: PI = 3.1415926 OWEN_SALARY = 88888
常量
在python中没有严格的常量语法,一般常量的定义是在程序运行过程中,值不能被改变的量,而在python中所有的量在运行过程中其实都能发生改变,只能自我保障不去改变全大写去定义变量的值
输入输出
输出
python2 中可以使用带括号执行也可以加空格执行
print (10) => 10
print 10 => 10
此功能在python3中被遗弃
python3中所有输出一律带括号
py2 py3
print (10) print(10)
print 10
输入
在python中使用input 来进行输入
info = input ( ' 提示信息: ' )
在python2中输入的值必须按照指定值的类型进行输入(输入10,就是10,输入‘abc’就是字符串,
如果输入的是abc(变量名),那么解释器会默认将abc作为变量来解读,如果abc没有定义,就会报错)
在python3中优化了输入功能,他将所有的信息全部转换为字符串存储。
py2 py3
input('>>>:') inout('>>>:')
abc (报错) abc (存为字符串)
在python2中有一个功能是raw_input() 它会把所有的输入信息全部转换为字符串存储
注释
被注释的内容不会被python解释器解释执行,是提供给开发者阅读代码的提示
在需要注释语句的开头使用#用来表示为单行注释
出现在文件最上方,用''''''包裹的语句,是多行注释,多行注释一般都用在文件的最上方
在pycharm中单行注释快捷键为:ctrl + /
数据类型
整型:
python2中,数字数据过长的整型使用 long 类型存储,数字数据小的整型使用 Int 存储
python3中,long 类型被遗弃,所有的整形都用 int 存储,(数据过大时,python3采用字符串存储,如果需要运算,可以直接拿来运算)
浮点型:
float: 用来存放小数
如 salary = 8.123456789
print (type ( salary ))
>> (calss, 'float' )
浮点型可以通过格式化方式来决定输出格式:
print( '%.6f ' % salary)
>>8.123456
print ( '%015.6f ' % salary) 右对齐,左侧不足拿0补充
print ( '%-15.6f' % salary) :左对齐输出,右侧默认拿空格填充
%f对浮点型数据进行占位 ,f 前面可以添加一个小数点,小数点前后都可以添加数字,添加到后面的数字表示所输出小数的精度,
添加到小数点前的数字是输出的长度,小于或等于输出数字的长度不起作用,超出就采用规定的最大长度
布尔类型
bool类型: True (真) False (假)
逻辑型变量的定义符,判断成立或着不成立
需要注意的是:空列表 空字符串 空字典和0都为False
字符串类型
单行字符串用一个单引号或者一个双引号开头以及结尾
多行字符串用三个单引号或者三个双引号开头以及结尾
%s是万能占位符 %是用来连接有占位符的字符串与需要占位的变量,多个变量用小括号 () 包裹
案例:
name = input('name: ')
age = input('age: ') 注:%s是万能占位符, %是用来连接有占位符的字符串与需要占位的变量,多个变量用()包裹
info = """信息:
name: %s
age: %s""" % (name, age)
print(info) 下图实例:
列表
1列表是变量名 = 加一个中括号,中括号中间可以存放多个值,之间用逗号隔开
ls = [3, 1, 2]
2、列表的变量名访问的是列表整体
print(ls) >>> [3, 1, 2]
3、通过索引(index)来访问具体的值,index从0开始编号: ls[index]
print(ls[0]) >>> 3
4、ls的嵌套及值的访问
ls = [[1, 2, 3], [4, 5, 6], [7, 8, [9]]]
访问数字9
print(ls[2][2][0]) >>>9
重点:list存放值的方式: eg:[3, 1, 2] => 列表的0号位存放的不是数字3,而是堆区3空间的地址
列表中的数字存放的不是数字,而是堆区数字的空间地址
字典
列表能存放多个值,但多个值只能通过inde区分,但是index没有语义
需要找到可以存放多个值,而且每个值有一个语义描述 所以就有了dict 字典类型 =>dict类型
python使用大括号用来定义字典的语法,用 key 来描述最终需要访问的value值,key对于开发者来说是已知的
我们还可以通过字典 dic[key]来访问key描述的值
dic = {'key': 'value'}
案例:
people = {
'name': 'Liuxx',
'age': 68,
'gender': '哇塞'
}
整体访问
print(people)
访问年龄的值,[将key原样拿下来] => ['age']
print(people['age'])
字典的嵌套
info = {
'name': 'egon',
'hobbies': ['play', 'sleep'],
'company_info': {
'name': 'Oldboy',
'type': 'education',
'emp_num': 40,
}
}
求:拿到40 , 拿到 'sleep'
res = info['company_info']['emp_num']
print(res) # 拿到 40
res = info['hobbies'][1]
print(res) # 拿到 ’sleep'
案例:
students=[
{'name':'alex','age':38,'hobbies':['play','sleep']},
{'name':'egon','age':18,'hobbies':['read','sleep']},
{'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']},
]
求第二个学生的第一个爱好
print(students[1]['hobbies'][0])
算术运算符
+ - * / 两个除号 // 是整除 两个**号是求幂 %是取余
有负数参与的取余 符号跟着百分号后面那个数
字符串和list可以做 加法和乘法
/非整除,// 为整除
# 3.**求幂:5 ** 2 => 25
# 4.任意数 % n => [0, n-1]
# 5.有负数参与的取余:符号跟着 % 后面那个数
比较运算符
> , < , ==是等于 , !=是不等于 , >= , <=
比较运算符运算结果为bool类型
print(3 > 5)
可以连比
num = 10
print(1 < num < 20)
赋值运算符
赋值运算符
=赋值运算符,+=加法赋值运算符 , -=减法赋值运算符 , *=乘法赋值运算符 , /=除法赋值运算符 , %=取余赋值运算符 , **=幂赋值运算符 , //= 整除赋值运算符,
num = 10
num += 1 # num = num + 1 => 11
1.链式赋值
a = b = num
2.交叉赋值
x = 10
y = 20
x, y = y, x
3.解压赋值
ls = [3, 1, 2]
a, b, c = ls
_ 是合法的变量名,会接受值,但我们认为_代表该解压位不用接收,用_来接收表示
_, _, g = ls # g才存放2,其他标示不接受
逻辑运算符
逻辑运算符有
and , or , not
1.and: 左右都成立才成立,有不成立的就不成立
2.or: 左右都不成立才不成立,有成立的就成立
3.ont: 成立则不成立,不成立则成立
res = 0 and 20 # and前为假,整个式子就可以确定为假了,and后就不需要执行(短路)
print(res) # 0
res = 10 or 20 # or前为真,整个式子就可以确定为真了,or后就不需要执行(短路)
print(res) # 10