python之路 2020/2/18
这是第一篇随笔,记录今天的内容,我不知道什么是成功,因为我没有成功过,但是,我想成功一次!
python 多练吧!
一、编程语言的分类
机器语言:01001010,高低电平,计算机懂的语言。
汇编语言:命令对应01010011的机器语言,翻译到机器语言进行执行。
高级语言:比如 python ,代码需要用编译器编译成机器语言,再执行。
编译型:把代码全部编译后,再执行,比如C语言
解释型:解释一句,执行一句,比如python
二、代码执行方式
交互式:黑框边编写边执行,不能存放代码
脚本的方式: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',))
一个量格式化
print('my name is %s'%'wl')
%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
身份运算符
待补充
九、流程控制之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 :输入是什么类型,就是什么类型
十一、流程控制之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长度方法
python之路 2020/2/18的更多相关文章
- Python之路【第十九篇】:爬虫
Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...
- Python之路【第十八篇】:Web框架们
Python之路[第十八篇]:Web框架们 Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...
- Python之路【第十七篇】:Django【进阶篇 】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- Python之路【第十六篇】:Django【基础篇】
Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...
- Python之路【第十五篇】:Web框架
Python之路[第十五篇]:Web框架 Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 ...
- Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...
- Python之路【第八篇】:堡垒机实例以及数据库操作
Python之路[第八篇]:堡垒机实例以及数据库操作 堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient ...
- Python之路【第七篇】:线程、进程和协程
Python之路[第七篇]:线程.进程和协程 Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
- Python之路【第六篇】:socket
Python之路[第六篇]:socket Socket socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字&quo ...
随机推荐
- 一文看懂Java序列化
一文看懂Java序列化 简介 Java实现 Serializable 最基本情况 类的成员为引用 同一对象多次序列化 子父类引用序列化 可自定义的可序列化 Externalizable:强制自定义序列 ...
- criteria.setCacheable(true);这个方法是干什么用的
criteria.setCacheable(true); 一下是Criteria的底层源代码 /** * Enable caching of this query result, provided q ...
- python之迭代器 生成器 枚举 常用内置函数 递归
迭代器 迭代器对象:有__next__()方法的对象是迭代器对象,迭代器对象依赖__next__()方法进行依次取值 with open('text.txt','rb',) as f: res = f ...
- 05 Linux目录速查表
/:根目录,一般根目录下只存放目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始 当在终端里输入 /home,其实是在告诉电脑,先从 /(根目录)开始,再进入到 home 目录 /b ...
- 测试 - 某网站ACCESS数据库注入漏洞
元宵节 团团圆圆总少不了一篇文 测试是否有注入 测试数据库类型 后面不用注释猜到可能是access 验证一下 这里说一下MySQL和ACCESS以及MSSQL的判断语句 MySQL:and len ...
- h5 移动端适配方案思考
基础概念 CSS像素(CSS pixels) 这个是浏览器使用的抽象单位,用来精确度量网页上的内容.平时经常写的width:100px;height:100px;都是与设备无关的. 设备独立像素(de ...
- Java集合01——List 的几个实现类,了解一下?
从本文起,我们将开始分享 Java 集合方面的知识,关注公众号「Java面典」了解更多 Java 知识点. List 是继承于 Collection 的接口,其实现类有 ArrayList,Linke ...
- python对接elasticsearch的基本操作
基本操作 #!/usr/bin/env python # -*- coding: utf-8 -*- # author tom from elasticsearch import Elasticsea ...
- Struts UI标签的使用
先来看一下日期控件 html5标签中其实已经有日期的类型,用<input type="date">便可调用. struts里面也自带了日期控件,其使用步骤为: 1. 导 ...
- search(2)- elasticsearch scala终端:elastic4s
上篇谈到:elasticsearch本身是一个完整的后台系统,对其的操作使用是通过终端api进行的.elasticsearch本身提供了多种编程语言的api,包括java的esjava.而elasti ...