python

python笔记

一.概述

python: 1989 12.25 开始研究 abc–>语言的基础上 荷兰 吉多.范罗苏姆 1991 发表v1.0
python的主要应用:数据采集 , 数据分析 ,web , 自动化,运维测试

二.数据类型:

1)数据:信息
2)int-整数 float-浮点 str-字符串 bool-布尔 tuple-元组 list-列表 dict-字典 set-集合 complex(复数)
3)类型的确定是由值决定的
4) 取值范围:无限制

三.变量

变化的量,起名字
规则:
1)必须是字母,数字,下划线
2)数字不能开头
3)不能是关键字 33
(查看所有关键字)

import keyword
print(keyword.kwlist)
      ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else',
      'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or',
      'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

4)多个单词 中间用 _
(驼峰不推荐使用) jiaGe jianKangZhuangKuang
5)见名知意
6)大小写敏感

四.运算符:

1)算数运算符: +    -   *   /     %    **    //(向下取整)         结果:数
2)比较运算符: >   >=    <   <=     ==   !=                       结果:bool
3)逻辑运算符:and(与,并且)   or(或者)   not(非)              结果:bool
and:男的 活的
or:要么漂亮,要么有钱
not: 不要男的
4)成员运算符:in      not in
5)身份运算符:is      is not
6)赋值运算符:+=  -=  *=  /==  //=  %=  ==

五.turtle包 (画图)

六.注释:解释说明

单行注释:#
多行注释:三个单引号或三个双引号

七.分支语句:

if 条件|bool :
    执行代码1
elif 条件|bool
    执行代码
else:
     执行代码2

八.Python Calendar的部分用法

1.打印全年的日历

import calendar
print(calendar.calendar(2020))

2.显示某天对应的星期(0-星期一,。。。,6-星期日)

import calendar
print(calendar.weekday(2019, 12, 2))

3.打印某年某月日历

import calendar
print(calendar.month(2019, 1))

print(s.isdigit()) #用isdigit函数判断s中是否包含数字
print(s.isalpha()) #isalpha判断s中是否包含字母

有五顶帽子,两顶红的,三顶黑的.拿其中三顶给三个人戴上(颜色不让他们看到),然后让他们根据所看到的另外两个人头上的帽子的颜色,
判断自己头上帽子的颜色.有两个人看到另一个人头上戴的帽子是红帽子,过了一会这两个人中有一个猜出了自己头上的帽子的颜色,他是如何猜出的呢?
答案:关键在于过了一会这个字眼,如果另一个人看到我也是红帽子,那他一定立刻能猜出他自己是黑帽子,因为他迟疑了,所以判断他带的是红帽子,而我带的是黑帽子

计算 -13//2==-7 or (1/0)>0 的结果?
答案:True

九.字符串

print(name1.isalpha()) 是否包含字母(汉字也算字母)
print(name1.isdigit()) 是否包含数字
print(name1.isalnum()) 是否包含字母和数字
print(name1.isupper()) 是否包含大写字母
print(name1.islower()) 是否包含小写字母
print(name1.isspace()) 是否包含空格
print(name1.lower()) 转小写
print(name1.upper()) 转大写
print(name1.index(“B根自从c进城”,4,12)) 查找元素所在的下标
bs = name1.encode(encoding=“utf-8”(编码格式)) 给字符串编码
print(bs.decode(encoding=“gbk”)(解码格式)) 给字符串解码
print(",".join(name1)) 分隔字符串
print(name2.split("-")) 以指定字符分割字符串 以列表形式返回分割后的结果
print(name1.replace(“刘老根”,“大辣椒”,1)) 替换指定的字符
print(name1.count(“刘老根”,1)) 查找子串在字符串中出现的次数 默认从第一个查找到最后一个
print(name1.strip(‘c’)) 默认去掉字符串前后的空格 如果指定字符也可以去掉前后指定的字符
print(name1.lstrip()) 去除左侧空格
print(name1.rstrip()) 去除右侧空格
print(name1.format())
print(name1.find(“国”)) 找指定字符在字符串中的起始下标 若不包含则返回-1
print(name1.index(“国”)) 找指定字符在字符串中的起始下标 若不包含则报错
print(name1.endswith(".jpg")) 是否以指定字符结尾 返回bool类型
print(name1.startswith(“刘老根”)) 是否以指定字符开头 返回bool类型
print(name1.rjust(15,"*")) 以右侧为基准 左侧补齐
print(name1.ljust()) 以左侧为基准 右侧补齐
sorted(s) 从小到大排列字符串
s.title() 首字母变大写

遍历

s = "sdfghjk"
for i in range(len(s)):
     print(s[i])

for s1 in s:
    print(s1)

str1 = “abcdefghjklertg”
str2 = “abefghjkltrtg”
#找最大公共子串

10.元组:tuple

1,定义:() 当只有一个元素的时候,元素后加","
2,索引(下标)
3,不允许被修改
4,切片
5,内置函数
6,操作
7,遍历

for i in range(len(t1)):
     print(t1[i])

 for t in t1:
     print(t)

t1 = (1,26,3,44,1,5,1)

t2 = (1,)

print(t1.count(1)) 计算元素在元组中的数量

print(t1.index(5)) 查找某个元素在元组中的下标

11.列表:list

1,定义:[]
2,索引(下标)
3,允许被修改
4,切片
5,内置函数
6,操作 排序(冒泡排序,选择排序,插入排序,基数排序,快速排序,希尔排序,归并排序,堆排序(大根堆和小根堆)) copy
7,遍历

for i in range(len(my_list)):
     print(my_list[i])

 for s in my_list:
     print(s)

my_list = [‘a’,1,3,‘b’,‘b’,3.14,5,True]
print(my_list.index(‘b’,2,6)) 查找元素所在的下标
print(my_list.count(‘b’)) 计算元素在列表中的次数
my_list.append(“曲昌宏总迟到”) 在列表最后追加元素
print(my_list.pop()) 删除最后一个元素 并返回改元素
my_list.sort() 排序
print(sorted(my_list)) 排序并返回排序后的结果

my_list1 = my_list.copy() 复制
my_list.reverse() 翻转
my_list.remove(7) 删除
my_list.insert(2,“a”) 插入
my_list.clear() 清除所有元素
my_list = [8,6,1,7,4,7,6,2]
my_list.extend((1,2,3))迭代添加
冒泡排序

my_list = [8,6,1,7,4,0,6,2]
for i in range(len(my_list)-1):
    flag = False
    for j in range(len(my_list)-1-i):
        if my_list[j]<my_list[j+1]:
            flag = True
            my_list[j],my_list[j+1] = my_list[j+1],my_list[j]
    if not flag:
        break
print(my_list)

12.字典

1,定义: key – value
2,没有下标,可以使用键来获取值 d[“age”]
3,value允许被修改
4,没有切片
5,内置函数 len type max min sorted
6,操作
7,遍历

for key,value in d.items():
    print(key,value)

for key in d.keys():
    print(key,d.get(key))

for value in d.values():
    print(value)

d = {“age”:“88”,“name”:“小三”,“sex”:“男”,“height”:“150”}
d.clear() 清除字典中所有元素
f = d.pop(“weight”,"-1") 删除字典中的元素
f = d.get(“name1”,"-1") 获取字典中的值
print(d.keys()) 获取字典中所有的键
print(d.items()) 获取字典中所有的键值对
d.update(age1=18) 更新字典中的元素 如没有 则新添加
print(d.values()) 获取字典中所有的值
d.popitem() 删除字典中最后一个键值对

13.集合

1,定义: {}
2,没有下标
3,value允许被修改
4,没有切片
5,内置函数 len() type max min sorted sum
6,操作
7,遍历

for d in s:
    print(d)

s = {1,8,3014,False}
print(id(s)) 输出集合的地址
s.update(“b”) 添加元素
print(sum(s)) 求和
print(s.pop()) 删除
s.remove(3014) 删除
s.add(200) 添加
s = {1,2,3,4,5,6}
ss = {1,8,3.14,True}
print(s.difference(ss)) 获取s中不同于ss的元素
s.difference_update(ss)
print(s)
def login(username,password):
if “admin”==username and “123”==password:
return “登录成功”
else:
return “登录失败”

14.函数

def 函数名(参数列表):
函数体
[return]

例:

def login(username,password):
    if "admin"==username and "123"==password:
        return "登录成功"
    else:
        return "登录失败"
 result = login(input("请输入用户名:"),input("请输入密码:"))
 print(result)

15.excel表读取查询添加

(1)查询

import xlrd
#from xlutils.copy import copy
path = "a.xlsx"
book = xlrd.open_workbook(path)
#第一页的的下标
#sheet = book.sheet_by_index(0)
#第一页的名字 (下标和名字选择一种)
sheet = book.sheet_by_name("Sheet1")
#打印第三行第三列的数据
print(sheet.cell(2,2).value)
#打印一共几行几列
print(sheet.nrows,sheet.ncols)
#循环输出所有数据
 for i in range(0,sheet.nrows,1):
     for j in range(0,sheet.ncols,1):
         print(sheet.cell(i,j).value,end="  ")
     print()

(2)添加

path = "test6.xlsx"
book = xlrd.open_workbook(path)
sheet = book.sheet_by_index(0)
nrows = sheet.nrows
#建立副本
book_copy = copy(book)
sheet_copy = book_copy.get_sheet(0)
data = ["104","123456","刘能","哈尔滨银行",12345,"1"]
for i in range(0,len(data),1):
   sheet_copy.write(nrows,i,data[i])
#保存
book_copy.save("test6.xls")

(3柱状图

from pyecharts import Bar
def read_excel(filename):
    book = xlrd.open_workbook(filename)
    sheet = book.sheet_by_index(0)
    columns0 = []
    data0 = []
    for i in range(1,sheet.nrows,1):
        columns0.append(sheet.cell(i,2).value)
        data0.append(sheet.cell(i,3).value)
    return columns0,data0
#
def show_bar(columns,data):
    # //设置柱状图的主标题与副标题
    bar = Bar("柱状图", "象牙山排行榜")
    bar.add("余额", columns, data)
    # //生成本地文件(默认为.html文件)
    bar.render()
columns,data = read_excel("a.xlsx")
show_bar(columns,data)

(4)饼图

from pyecharts import Pie
def read_excel(filename):
    book = xlrd.open_workbook(filename)
    sheet = book.sheet_by_index(0)
    columns0 = []
    data0 = []
    for i in range(1,sheet.nrows,1):
        columns0.append(sheet.cell(i,2).value)
        data0.append(sheet.cell(i,3).value)
    return columns0,data0
def show_pie(columns,data):

    # // 设置主标题与副标题,标题设置居中,设置宽度为900
    pie = Pie("饼状图", "象牙山排行榜", title_pos='center', width=900)
    # // 加入数据,设置坐标位置为【25,50】,上方的colums选项取消显示
    pie.add("余额", columns, data, center=[25, 50], is_legend_show=False)
    # // 保存图表
    pie.render()
columns,data = read_excel("a.xlsx")
show_pie(columns,data)

(5)散点图

from pyecharts import Scatter
import xlrd
book = xlrd.open_workbook("housing.xls")
sheet = book.sheet_by_index(0)
data1 = []
data2 = []
for i in range(1,sheet.nrows,1):
    data1.append(sheet.cell(i,0).value)
    data2.append(sheet.cell(i,1).value)
print("数据读取完毕!")
print("生成散点图...")
scatter = Scatter("散点图", "经纬度")
# //xais_name是设置横坐标名称,这里由于显示问题,还需要将y轴名称与y轴的距离进行设置
scatter.add("经度与纬度的散点分布", data1,data2,xaxis_name="精度",yaxis_name="维度",yaxis_name_gap=40)
scatter.render()
print("生成完毕!")

16.参数列表:

1,必须参数:调用时必须传值
2,默认参数:调用时可以不传值
3,不定长参数:元组 字典
顺序:必须参数 默认参数 不定长-元组 不定长-字典
注意:可以通过指定参数赋值

17.装饰器

闭包:1,嵌套函数 2,内部函数使用外部函数的变量 3,外部函数返回内部函数名
意义:已知一个函数,对函数功能进行改变,但不想修改原函数

def outter(args):
    print("-------------")
    def inner():
        print("=============")
        args()
        print("=============")
    return inner

@outter
def demo():
    print("1233")

demo()

def outer(args):
    def inner(username,password):
        val = input("请输入验证码:")
        if val=="1234":
            args(username,password)
        else:
            print("验证码错误")
    return inner


@outer
def login(username,password):

    if username=="admin" and password=="123456":
        print("登录成功")
    else:
        print("登录失败")

username = input("请输入用户名:")
password = input("请输入密码:")
login(username,password)

18.作用域

global:函数内改变函数外的变量值
nonlocal:内层函数改变外层函数变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值