python之路

python 多练吧!

 

一、编程语言的分类

机器语言:01001010,高低电平,计算机懂的语言。
​
汇编语言:命令对应01010011的机器语言,翻译到机器语言进行执行。
​
高级语言:比如 python ,代码需要用编译器编译成机器语言,再执行。
​
分类:
编译型:把代码全部编译后,再执行,比如C语言
解释型:解释一句,执行一句,比如python

比较:
1、执行效率:机器语言>汇编语言>高级语言(编译型>解释型)  
2、开发效率:机器语言<汇编语言<高级语言(编译型<解释型)  
3、跨平台性:解释型具有极强的跨平台型

 

二、代码执行方式

交互式:黑框边编写边执行,不能存放代码
​
脚本的方式:python3 文件的路径
​
 
python3 test.py
​
1、启动解释器python3
2、将test.py由硬盘读入内存
3、python3解释器执行读入内存的代码

 

三、环境变量

系统查找文件的第二优先目录,当在当前目录找不到时,就到环境变量中找,顺序查找。
​
注意:exe文件不能对原文件直接进行重命名,要建立备份后重命名,否则,原程序不能运行。

 

四、快捷键

Ctrl + z :撤销
​
Ctrl + alt + l:代码格式标准化
​
Ctrl + ?:注释
​
Tab:向后缩进
​
shift + Tab:向前缩进

 

五、变量

what:变化的量
why:用于表示量的状态
how:a = 1(a是个变量,指向整数1)
​
 
变量名的命名规则:
​
1 变量命名规范:数字、字母、下划线(“_”)
2 数字不能开头
3 不能命名为关键字,比如:print;重写覆盖了print,不能使用print的原有功能了。
​
​
命名风格:
age_of_boy;AgeOfBoy
见名知意

 

六、数据类型

就是变量的类型,用于表示不同类型的数据的状态,所以有不同的类型。

变量的数据类型:

1)string 字符串类型:
单行:'字符串'、"字符串"
​
三引号可以定义多行内容:"""多行字符串"""
​
'''
 字符串
 字符串
 字符串
'''
引号嵌套邻近配对,注意不能混用,比如:'字符串"
​
    1) 索引取值
    2) 不可更改
    3) 切片
      list1[0:3:1]
      取出list中的索引 0 到 2 的元素,1 为步长
    4)in 成员运算符
    5)移除空白 strip
      a.strip('*')
        移除两边的 * 
      b.strip('*/><?')
      isdigit()
      int()
    6)split 以什么未分割符,将字符串切割为列表
      res.split(':')
      split('+*/') 三个符号当一个分割标志
2)int 整型:数字 整数类型
3)float浮点型:小数
数字类型:Int、float
​
    1) 比较运算
    2) 数学运算
      字符比大小,编码的大小比较
      不同类型不能比,int 和 float可以,都是数字
4)list 列表:a = [1,2,"3"]
a[0] = 1
a[1] = 2
从 0 开始,索引取值
反向取值,最后一个元素索引为 -1,倒数第二个 -2
a[-1] = "3"
​
    1) 追加,append
      list1.append('*')
    2)插入,insert
      list1.insert(1,'*')
    3)删除,del remove
      del list1[0]
      list1.remove('aaa')
      没有返回值,返回None,不会返回被删除的值
5)dict 字典类型:a = {'name':'wl','age':24,}
{key : value}
key 键;value 值;
key 对应 value
取值:a['name'] = 'wl'
​
dict1.get(key),不存在 返回None
​
dict1.get(key,"自定义的默认值”)
​
 
​
    1)按key取值
      dict1['key'] = 'no'
      有则索引,没有则创建
    2)删除 pop
      dict1.pop('key')
      有返回值,返回删除的值 
    3)Python2
      dict1.keys() key 的列表
      dict1.values() value 的列表
      python3 迭代器?
      老母鸡与鸡蛋
​
      for k in dict1.keys():
        print(k)
      for k in dict1:
        print(k)
      for in dict1.values():
        print(k)
    4)dict1.items() 键值对
      for k,i in dict1.items():
        print(k,i)
      k,i = ('age',1) 组成的数组(python2)
      python3还是母鸡

 

6) bool 布尔类型
只有True 和 False两个值

 

七、输入和输出

 
输入:input
str1 = input('请输入:') str1是输入的内容,且为字符串类型

类型强制转换,比如,str1 = int(str1)


python2:input:输入时,必须明确输入的数据类型,比如, age = input('age:') age: 'egon' 表示是个字符串,python3已经废除,因为不方便使用者输入

python3:input 都转化为str类型 python2 : raw_input 都转化为str类型 input :输入是什么类型,就是什么类型
输出:print
print('my name is %s,my age is %s'%('wl','23',))

格式化输出相关转义字符:
%s :接收字符串类型,但是可以接受任何类型
%d :接收整型
%f :接收浮点型
%t:制表符,按列对齐

print(a,end = '')  # 不换行了
isdigit() 判断是否是数字 
strip() 去除两边空格

 

八、基本运算符

算数运算符

+ - * / %(取余数)
10 / 3 = 3.3333
10 // 3 = 3
10 % 3 = 1

比较运算符

>,<,>=,<=,!=(不等于),==(相等)
注意:=是赋值,不是等于

赋值运算符

=
增量赋值
a = a + 1 等同于 a += 1
交叉赋值
a = 1 
b = 2
a,b = b,a
链式赋值
x = 7 
y = x
z = y
a = z
x = y = z = a = 7
​
如果是[],改变其中一个就改变所有,因为指向同一个地址
解压赋值
l = [1,2,2,3,1,4]
a = l[0]
b = l[1]
c = l[2]
d = l[3]
e = l[4]
f = l[5]
a,b,c,d,e,f = l
正常情况:左边值的个数 = 右边包含的值的个数
取前两个值
a,b,*abc = l
可以避免写多个变量(*的符号)abc 是剩下的值 习惯上,写做 *_
取后面两个值
*_,m,n = l
取前面三个,后面两个值
a,b,c,*_,m,n
取中间,只能用索引,,,
​
解压赋值与切片的结合
​
a,b,c = list1[0:3]

逻辑运算符

与:and 取交集,同时成立,则为True
或:or 取并集,其中一个成立,则True
非:not 取反
混用,用括号区分优先级就好了
not 3 < 4 等同于 not (3 < 4)
​
not > and > or
not 取反紧跟其后的那个条件,优先级高
从左到右判断,除去优先级

短路运算:

条件1 and 条件2
如果条件1 为假,则整个and都为假,不用再往后判断了
条件1 or 条件2
如果条件1 为真,则整个or都为真,不用再往后判断了
​
a = 0 or 1
a = 1
a =1 > 0
a = True

身份运算符:

 is :判断变量之间id是否相同

成员运算符:

in

list1 = [111, 2, 3]
if 111 in list1:
    print('yes')
    
# 判断111是否在list1里
# not in :判断不在里面

 

九、流程控制之if判断

if num > 90:
  代码
elif num > 80:
  代码
elif num > 70:
  代码
else:
  代码
前面的不成立,才执行后面的
​
​
if True:break  # 一行代码,可以写成一行

 

补充十

Cpython解释器:用C写的python解释器。
​
计算机硬件:三大核心:CPU、内存、硬盘
应用软件、操作系统、计算机硬件
​
关于集合set()类型:https://www.cnblogs.com/liuxu2019/p/11173986.html
​
python 规范:不要用检查len(list1) == 0的方式来判断列表是否为空,直接if list:
​
True转换成数字,进而判断是真还是假,所以 1 比 True 快
​

python2 与 python3:  
​
python3 :input 都转化为str类型
python2 :
raw_input 都转化为str类型
input :输入是什么类型,就是什么类型

IDE集成开发环境:写代码的高级编辑器,在python解释器的基础上,提供各种强大的功能。比如:pycharm,vscode

空语句:用于保证 Python 代码结构完整,正常运行
... 或 pass  # 两者作用相同

 

十一、流程控制之while循环

while 条件:
  代码
tag = True
  while tag:
    while tag:
      while tag:
        tag = False
终结所有循环
while count <5:
  代码
else:
  代码
当循环不被break打断,执行else
​
break:直接跳出循环,最近的一层循环
continue:跳出本次循环,执行下一次循环
pass:跳过,执行之后的代码
​
while True:
  input()
  print()
有停顿,涉及I/O操作
单纯的计算的死循环有害
continue > 1 + 1

 

十二、流程控制之for循环

for循环:
for i in list1:
  代码
​
遍历字典,
for i in dic:
  print(i)
i 是字典的key
​
for i in range(3):
  语句
else:
  语句
else循环正常结束,没有被break结束时,运行
循环体有最大次数限制的时候,用for有奇效。。。
​
取值用for , 通常
循环某一段代码用while,通常
​
range(0,3)
取出0,1,2
取左不取右
range(3)
默认第一个参数为 0 
range(0,3,1)
第三个参数默认是 1 ,步长,比如 -1 
len(list1) 得到list1长度方法

 

十三、代码注释

1、注释是对关键代码的解释说明


单行注释:#
多行注释:''' ''' 或 """ """


2、被注释的代码不会被执行

 

posted @ 2020-02-18 19:05  pythoner_wl  阅读(282)  评论(0编辑  收藏  举报