博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python笔记
阅读量:5977 次
发布时间:2019-06-20

本文共 3082 字,大约阅读时间需要 10 分钟。

hot3.png

pymysql笔记

1. connection对象

host – MySQL的地址(主机名)
user – MySQL登录用户名
password – MySQL登录密码,别名:passwd
database – 要连接的数据库名称,别名:db
port – MySQL的端口,默认是3306
charset – MySQL数据库的字符集,一般是utf8或者是utf8mb4//这个是可以存储emoji表情的
cursorclass – cursor的类,主要用户返回结果的展示方式,一般使用字典的方式

autocommit_mode = None  是否自动提交,就是执行了sql语句之后是否

                        立即提交到数据库
close() 关闭连接
begin() 开启事务
rollback() 回滚事务,比如事务过程中失败了,那么就可以通过回滚撤销之前的操作,必须要在commit之前
commit() 提交更改到数据库,默认情况下,执行之后是不会马上提交到数据库的,需要调用commit提交
cursor(cursor=None) 创建一个游标,用来执行MySQL语句的
open 测试连接是否打开,如果打开,那么就返回True
ping(reconnect=True) 测试服务器连接

2.游标对象cursor

close() 关闭游标
execute(query, args=None) 执行sql语句,如果有参数的,那么就填入参数
    参数:
        query (str) – 要执行的sql语句
        args (tuple, list or dict) – sql语句中要用到的参数就可以填写在这里
fetchall() 获取所有的结果,一般是用于查询语句的
fetchmany(size=None)就是获取指定条数的结果
fetchone() 每次获取一条数据

3. pymysql.cursors.DictCursor 将返回的结果转为字典(dict)

--------------------------------------------------------------------------------------------------------------------------------

 

 

标准Python风格是每个缩进级别是使用4个空格,永远不要使用Tab制表符!

出错一

def sayHello():
    print('Hello World!')

    sayHello()

正确:(上面定义,下面执行,缩进了就不执行了)

def sayHello():
    print('Hello World!')

sayHello()

Linux直接指向py文件

1.添加特殊注释:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
print('hello, world')

2.通过命令给hello.py以执行权限:

$ chmod a+x hello.py

Python的字符串类型是str,在内存中以Unicode表示,如果要在网络上传输,或者保存到磁盘上,就需要把str变为bytes。

Python对bytes类型的数据用带b前缀的单引号或双引号表示:
x = b'ABC'

以Unicode表示的str通过encode()方法可以编码为指定的bytes,【纯英文ASCII编码是不能带中文的】

反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法:

ASCII编码:英文字母、数字符号,统一 于是各国做了GB2312编码,日本做 了Shift_JIS编码,韩国把韩文编到Euc-kr
Unicode:Unicode把所有语言都统一到一套编码里
UTF-8编码:Unicode浪费储存空间,Unicode编码转化为“可变长编码”的UTF-8编码

格式化字符串替换:
%s表示用字符串替换,%d表示用整数替换,有几个%?占位符
format()方法 也用来格式化

list
list里面元素数据类型可以不同:L = ['Apple', 123, True,['asp', 'php']](还可以包含另外一个list,二维,三维。。。)

classmates = ['Michael', 'Bob', 'Tracy']
classmates[0]='Michael';
classmates[-1]='Tracy';【最后一个元素可以用-1来表示】,以此类推

list中插入元素:

classmates.insert(1, 'Jack')
得到['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

要删除指定位置的元素,用pop(i)方法

classmates.pop(1)
得到['Michael', 'Bob', 'Tracy']

要把某个元素替换成别的元素,可以直接赋值给对应的索引位置:

classmates[1] = 'Sarah'
得到['Michael', 'Sarah', 'Tracy']

tuple元组

元组不能改

classmates = ('Michael', 'Bob', 'Tracy')
只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:
t = (1,)(否则就计算了)

元组包含了list,list还是能改:

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

判断:(注意判断不要少写了个冒号!!!)

if age >= 18:

if判断条件还可以简写,比如写:(因为if是 为true就执行,后面部分全部忽略!)

if x:
    print('True')
只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。

循环:
一种是for...in循环

names = ['Michael', 'Bob', 'Tracy']
for name in names:
    print(name)

range()函数,从1写到100 

range(5)=[0,1,2,3,4,]

while循环
break
continue

dict 是一组key的集合  高速查找,以空间换取时间

d['Jack'] = 90

'Thomas' in d  返回False

set 一组key的集合
s = set([1, 2, 3])
添加,删除key:
s.add(4)
s.remove(4)

s1 & s2 交集

s1 | s2 并集

函数:

help(abs)  查看函数方法

int()函数

str(1.23)
bool(1)

def my_abs(x): (记得带冒号!!)

跳过2章,递归函数

高级函数

L[0:3] 取前3个函数

L[1:3]
L[:3]

L[-2:]

正则:

re.search
re.findall

去重很简单,就要 keyword=set() 就不会重复了

整型,不能用jion,可以用字符串拼接代替:
line = "%s\t%s\n" %(item[0],item[1])

exit()

转载于:https://my.oschina.net/afengzxf/blog/2989805

你可能感兴趣的文章
刨根问底——Handler
查看>>
H5活动刮刮卡功能的实现与注意事项
查看>>
搞定Go单元测试(三)—— 断言(testify)
查看>>
web前端—面试2
查看>>
设计模式之 - 简单工厂模式
查看>>
前端如何搭建一个成熟的脚手架
查看>>
vue中v-for循环如何将变量带入class的属性名中
查看>>
PHP 安全问题入门:10 个常见安全问题 + 实例讲解
查看>>
Leetcode03
查看>>
Mysql常用命令
查看>>
Vuex的基本使用
查看>>
在DigitalOcean玩Kubernetes(K8S)
查看>>
双机概念
查看>>
php excel
查看>>
一些设计思想的汇集(2)
查看>>
GRUB and LVM and EVMS
查看>>
List集合的迭代器方法
查看>>
ECShop替换FCKeditor编辑器为KindEditor
查看>>
oracle 11g EM停止后无法启动
查看>>
面向对象是软件开发范式的根本性颠覆: 主体建模, 非目标导向, 松耦合, 非逻辑分解, 软件进化...
查看>>