<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[idwhl的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/idwhl</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; idwhl]]></copyright><item><title><![CDATA[python和json的转换]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/107092131</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/107092131</guid><author>idwhl</author><pubDate>Thu, 02 Jul 2020 20:08:27 +0800</pubDate><description><![CDATA[import json

1.什么是json
“”"
1)存在的意义
json就是不同编程语言之间进行数据交流的一种通用格式
2)概念
json是一种数据格式：a.一个json有且只有一个数据  b.这个数据是json支持的数据类型的数据
3)json支持的数据类型: 数字类型、字符串、布尔、数组、字典/对象、null(空值)
a.数字类型： 所有的数字（19， 90， 802， -23，0.34，3e4）
b.字符串：用双引号引起来的文本数据（支持转义字符） - 必须是双引号
c.布尔: 只有 true ]]></description><category></category></item><item><title><![CDATA[面向对象的继承、多继承...]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/107091576</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/107091576</guid><author>idwhl</author><pubDate>Thu, 02 Jul 2020 19:40:33 +0800</pubDate><description><![CDATA[一、继承
1.什么是继承
“”"
让子类直接拥有父类的属性和方法的过程就是继承
父类  -  被继承者(又叫超类)
子类  -  继承者
“”"
2.怎么继承
“”"
class 类名(父类1,父类2,…):
类的说明文档
类的内容
注意: 默认情况下，定义的类继承自 object
“”"
class Person:
    num = 61

    def __init__(self):
        print('Person中init')
        self.name = '小明'
    ]]></description><category></category></item><item><title><![CDATA[面向对象基础]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/107091268</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/107091268</guid><author>idwhl</author><pubDate>Thu, 02 Jul 2020 19:33:16 +0800</pubDate><description><![CDATA[一、类和对象
1.什么是类、什么是对象
“”"
类就是拥有相同属性和相同功能的对象的集合（抽象）
对象就是类的实例(具体)
从生活的角度：
如果人是类， 余婷就是对象，骆老师是另一个对象
如果杯子是类，我桌上的这个杯子就是对象
“”"
2.定义类(说清楚共同属性和功能是哪些)
“”"
语法：
class 类名:
类的说明文档
类的内容(包含属性和方法)
说明：
class  -  关键字
类名   -   程序员自己命名
要求：标识符,不能是关键字
规范：驼峰式命名，并且首字母大写;见名知义；不适用系统的函]]></description><category></category></item><item><title><![CDATA[异常捕获、正则基础、re模块]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/107068892</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/107068892</guid><author>idwhl</author><pubDate>Wed, 01 Jul 2020 18:02:55 +0800</pubDate><description><![CDATA[一、异常捕获
1.什么是异常捕获
“”"
让程序执行过程中出现异常的时候不崩溃可以继续运行。
注意：不是任何时候都要使用异常捕获，是在你明明知道某个位置可能会出现异常，又不想让程序崩溃的时候才使用
“”"
2.异常捕获的语法
“”"
语法一：获取所有异常
try:
    代码段1
except:
    代码段2

说明：
try、except  -  关键字，固定写法
:            -  固定写法
代码段1       -  和try保持一个缩进的一条或者多条语句; 可能会出现异常的代码(需]]></description><category></category></item><item><title><![CDATA[文件操作相关内容]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/107068533</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/107068533</guid><author>idwhl</author><pubDate>Wed, 01 Jul 2020 17:47:51 +0800</pubDate><description><![CDATA[一、文件操作
1.计算机数据的存储
“”"
计算机的存储系统分为 运行内存 和 硬盘 两种：
运行内存：用来保存程序运行过程中产生的数据，程序运行结束后会自动销毁
硬盘: 硬盘是用来保存文件的，保存在文件中的数据就是保存在硬盘中的。除非手动删除，否则数据会一直存在
“”"
2.数据持久化
“”"
数据持久化就是讲数据以各种形式保存到硬盘中(保存到本地文件中)
“”"
3.文件操作
“”"
文件操作基本步骤：打开文件 -&gt; 操作文件(读、写) -&gt; 关闭文件
“”"
打开文件
open(file,]]></description><category></category></item><item><title><![CDATA[模块及原理和包的使用]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/107064336</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/107064336</guid><author>idwhl</author><pubDate>Wed, 01 Jul 2020 17:30:43 +0800</pubDate><description><![CDATA[一.模块
#1. 什么是模块
“”"
一个模块就是一个py文件, py文件的文件名就是模块名
“”"""
#2. 在一个模块中使用另外一个模块的内容
“”"

哪些能用：所有在指定if语句外的全局变量
怎么使用: 需要先导入模块

import 模块名     -     导入后可以使用所有的全局变量；以 ‘模块名.变量’ 来使用变量
from 模块名 import 变量1, 变量2, 变量3,…    -  导入后可以使用指定的变量; 直接使用变量
from 模块名 import *     -  导入后]]></description><category></category></item><item><title><![CDATA[生成器和生成式]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106941762</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106941762</guid><author>idwhl</author><pubDate>Wed, 24 Jun 2020 16:20:22 +0800</pubDate><description><![CDATA[1.什么是生成器
a。概念1
生成器就是迭代器
b.概念2
调用一个带有 yield 关键字的函数就可以得到一个生成器
def func1():
    print('+++')
    print('---')
    if  2 &gt; 3:
        yield

result = func1()
print('result:', result)        # result: &lt;generator object func1 at 0x000001A76E91BAC8&gt;

2.生]]></description><category></category></item><item><title><![CDATA[迭代器基础]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106941743</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106941743</guid><author>idwhl</author><pubDate>Wed, 24 Jun 2020 12:39:11 +0800</pubDate><description><![CDATA[1.什么是迭代器(iter)
迭代器是容器型数据类型，只能通过类型转换和生成器来获得迭代器对象
迭代器存储数据特点：同时可以保存多个数据，没有办法直接查看，而是需要先将数据从迭代器中取出来（取出来之后不能再放回去）
1）所有的容器都可以转换成迭代器
iter1 = iter([10, 20, 30, 40])
print(iter1)

iter2 = iter('abc')
print(iter2)

iter3 = iter({'name': '张三', 'age': 18, 'gender': '男']]></description><category></category></item><item><title><![CDATA[装饰器基础]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106931930</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106931930</guid><author>idwhl</author><pubDate>Tue, 23 Jun 2020 21:01:19 +0800</pubDate><description><![CDATA[1.装饰器的作用
在不修改函数的情况下给函数添加新的功能
2.什么是装饰器
装饰器的本质就是一个函数（这个函数是一个实参高阶函数也是返回值高阶函数）
无参装饰器的写法：
def 函数名1(函数名2):
    def 函数名3(*args, **kwargs):
        新功能代码
        返回值 = 函数名2(*args, **kwargs)
        return 返回值
    return 函数名3

说明:
函数名1  -  装饰器名字，命名的时候和这个装饰器要添加的功能进行]]></description><category></category></item><item><title><![CDATA[高阶函数]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106931833</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106931833</guid><author>idwhl</author><pubDate>Tue, 23 Jun 2020 20:57:47 +0800</pubDate><description><![CDATA[1、 函数就是变量(**)
python中定义函数其实就是定义一个类型是 function 的变量，函数名就是变量名
def func1():
    print('函数1')

1)查看变量的类型
a = 10
print(type(a))    # &lt;class 'int'&gt;
print(type(func1))    # &lt;class 'function'&gt;

2)用一个变量给另外一个变量赋值
b = a
print(b+20)
c = func1
c()

3)查看变量的地址]]></description><category></category></item><item><title><![CDATA[函数进阶]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106907771</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106907771</guid><author>idwhl</author><pubDate>Mon, 22 Jun 2020 18:52:42 +0800</pubDate><description><![CDATA[一、函数的返回值
1.什么是返回值
返回值是从函数里面传递到函数外面的数据

怎么返回数据
返回值就是 return 关键字后面的表达式的值

语法：
return 表达式1,表达式2,....

说明:
return - 关键字，只能出现在函数体中
作用：a.将数据从函数内容扔到函数的外部   b. 结束函数(执行函数的时候只要遇到return函数直接结束)

表达式  - 可以一个都没有(相当于 None)，可以有一个(返回值就是指定数据)，也可以有多个(本质返回的是一个元组)

注意： 如果一个函数中]]></description><category></category></item><item><title><![CDATA[函数基础和函数参数]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106895445</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106895445</guid><author>idwhl</author><pubDate>Mon, 22 Jun 2020 09:16:17 +0800</pubDate><description><![CDATA[一、函数基础
1.什么是函数
1）概念
函数就是对实现某一特定功能的代码段的封装（机器）
2）分类
系统函数 - 系统已将定义了，程序员可以直接使用的函数，比如：print, input, type, ord, chr, bin, len, id等（别人造好的机器）
自定义函数 - 程序员自己定义使用的函数（自己造机器）
2.函数的定义
语法：
def 函数名(形参列表)：
函数说明文档
函数体
说明：
def - python定义函数的关键字，固定写法
函数名 - 程序员自己命名
标识符，不能是关键字（要]]></description><category></category></item><item><title><![CDATA[字符串相关方法及格式字符串]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106895349</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106895349</guid><author>idwhl</author><pubDate>Mon, 22 Jun 2020 09:10:53 +0800</pubDate><description><![CDATA[一、字符串相关方法
1.计算次数
1）count
字符串1.count(字符串2) - 统计字符串1中字符串2出现的次数
字符串1.count(字符串2，开始下标=0，结束下标=字符串1的长度) - 在字符串1中指定范围内统计字符串2出现的次数
str1 = 'how are you? Im fine, Thank you!'
str2 = 'you'
print(str1.count(str2))     # 2

num = str1.count(str2, 0, 11)       # 1
print]]></description><category></category></item><item><title><![CDATA[字符串与相关操作]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106889533</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106889533</guid><author>idwhl</author><pubDate>Sun, 21 Jun 2020 19:38:53 +0800</pubDate><description><![CDATA[一、字符串基础
1.什么是字符串（str）
“”"
字符串是容器型数据类型，将单引号或者双引号作为容器的标志，元素不需要用逗号隔开：‘元素1元素2元素3…’
字符串是不可变的（不支持增删改），字符串是有序的（支持下标操作）
字符串中的元素：只能是文本符号（所有计算机能表达出来的符号都可以作为字符串的元素），一个符号对应一个元素
字符串中每一个独立的元素又叫’字符’，python中只有字符的概念，没有字符对应的数据类型
“”"
空串
str1 = ''
str2 =""
str3 = """"""
print]]></description><category></category></item><item><title><![CDATA[集合基础]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106863577</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106863577</guid><author>idwhl</author><pubDate>Fri, 19 Jun 2020 20:57:47 +0800</pubDate><description><![CDATA[1.什么是集合(set)
集合是容器型类型，将{}作为容器标志，里面有多个元素用逗号隔开：{元素1, 元素2, 元素3, …}
集合是可变的（支持增删改），集合是无序的
集合中元素是不可变并且唯一的
1.空集合
empty = set()       # {}是空字典

非空集合
set1 = {1, 23, 34}

set2 = {(1, 2), 3, 4}

set3 = {[1, 2], 3, 4}         # 列表不能作为集合的元素

set4 = {1, 2, 3, 1, 4, 1}

]]></description><category></category></item><item><title><![CDATA[字典基础]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106863240</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106863240</guid><author>idwhl</author><pubDate>Fri, 19 Jun 2020 20:51:11 +0800</pubDate><description><![CDATA[一、字典基础
1.什么是字典(dict)
字典是容器型数据类型，将{ }作为容器的标志，多个元素用逗号隔开（字典的元素都是键值对）：{键1:值1, 键2:值2, 键3:值3, …}
字典是可变的（支持增删改），字典无序（不支持下标操作）
字典中元素：键值对
键 - 不可变，唯一  （一般是字符串）
值 - 任何类型的数据，可以重复
字典在保存数据的时候，真正想保存的是值，键是用来对值进行区分和说明
空字典
dict1 = {}

dict2 = {2: 23, "abc": "hello",(1, 2): ]]></description><category></category></item><item><title><![CDATA[元组基础]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106840113</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106840113</guid><author>idwhl</author><pubDate>Fri, 19 Jun 2020 20:09:09 +0800</pubDate><description><![CDATA[1.什么是元组（tuple）
1)元组就是不可变的列表
2)元组也是容器型数据类型，将()作为容器的标志，多个元素之间用逗号隔开：(元素1， 元素2， 元素3，元素4，…)
3)元组不可变(不支持增删改)，元组是有序的(支持下标操作)
4)元组中的元素的要求和列表一样

...]]></description><category></category></item><item><title><![CDATA[列表推导式]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106797506</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106797506</guid><author>idwhl</author><pubDate>Tue, 16 Jun 2020 23:04:07 +0800</pubDate><description><![CDATA[1、列表推导式 - 创建列表的表达式
1）格式1
[表达式 for 变量 in 序列]

让变量去序列中取值，每取一个值就创建列表中的一个元素，元素的值就是表达式的值
for 变量 in 序列：
    产生元素

list1 = [1 for x in range(4)]
print(list1)        # [1, 1, 1, 1]

list2 = [x for x in range(4)]
print(list2)        # [0, 1, 2, 3]

list3 = [2*x for]]></description><category></category></item><item><title><![CDATA[列表相关方法]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106793281</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106793281</guid><author>idwhl</author><pubDate>Tue, 16 Jun 2020 22:59:58 +0800</pubDate><description><![CDATA[1.clear
列表.clear() - 清空列表
list1 = [23, 89, 90, 128, 56]
list1.clear()
print(list1)		#清空列表

2.copy
列表.copy() - 复制列表中所有的元素，产生一个新的列表
列表.copy() == 列表[:] ==列表+[] ==列表*1 -&gt;浅拷贝
直接赋值 - 赋值后两个列表的操作相互影响
list1 = [23, 89, 90, 128, 56]
list2 = list1
print(list2)

lis]]></description><category></category></item><item><title><![CDATA[列表相关操作]]></title><link>https://blog.youkuaiyun.com/idwhl/article/details/106792250</link><guid>https://blog.youkuaiyun.com/idwhl/article/details/106792250</guid><author>idwhl</author><pubDate>Tue, 16 Jun 2020 18:42:16 +0800</pubDate><description><![CDATA[1、数学运算：+ *
列表1 + 列表2 - 将列表1和列表2中的元素合并产生一个新的列表
列表N / N列表 - （这的N是正整数）将列表中的元素重复 N 次产生一个新的列表
list1 = [1, 2, 3]
list2 = [10, 20, 30]
print(list1 + list2)
print(list1 * 3)

2、比较运算
1)==和!=
补充：is 和 == 的区别：
== 判断的是值是否相等
is 判断的是地址是否相等
print(list1 == [1, 2, 3])  		 #]]></description><category></category></item></channel></rss>