demoのpython学习笔记【1】

学习任务

TSK.1 python基础

TSK.2 循环语句

TSK.3 常见数据类型及相应的操作方法

TSK.4 基本函数知识

TSK.5 模块文件操作


目录

学习任务

TSK.1 python基础

TSK.2 循环语句

TSK.3 常见数据类型及相应的操作方法

TSK.4 基本函数知识

TSK.5 模块文件操作

前言

一、python基础

1.第一个程序——经典的“hello world”

2.注释

3.标识符与关键字

3.1标识(zhì)符

3.2关键字

4.输入与输出

5.运算

5.1算术运算

5.2赋值运算

5.3复合运算

5.4比较运算符

5.5逻辑运算

二、循环语句

1.条件控制语句(if)

1.1 if---else语句

1.2 elif语句

1.3语句嵌套

2.循环语句(while&for)

2.1 while循环

2.2 for循环

3.break&continue

三、常见数据类型及处理方法

1.Number(数字)类型变量

2.String()

2.1 输入与输出

2.2 下标与切片

 2.3运算&转义字符

2.4 常见操作

3.List()

4.Tuple()

5.Dictionairy()

6.Set()

四、函数

1.相关量: 

1.1参数:

1.2返回值

1.3变量类型

2.函数类型

2.1按参数与返回值的有无进行分类

2.2其他类型

五、模块文件的操作

1.函数的导入

2.其他操作

3.自定义模块

4.包的导入

5.第三方库的安装

6.相关库

6.1PIL库(图像处理模块)

 6.2time库(时间相关的模块)

总结


前言

python是个神奇的工具,可以帮助我们进行数据分析,科学计算等等功能,这里是我根据川川大佬所供资料的学习笔记,萌新一枚,还望大家多多指点QAQ


一、python基础

1.第一个程序——经典的“hello world”

print("hello world") #打印输出"hello world"

2.注释

注释,即加注的解释,其内容不会被运行,仅对程序代码起说明作用,方便后期代码的维护。

有单行注释和多行注释两种形式:

#这是单行注释
"""
这是多行注释
引号内的内容都不被运行
"""
'''
这也是多行注释
引号之内同样不被运行
'''

3.标识符与关键字

3.1标识(zhì)符

开发人员在程序中自定义的一些符号和名称,例如变量名或则函数名。

定义规则:字母/下划线/数字组成,且数字不能开头。

命名方法:为了增强代码的可读性,尽可能采取有意义的名字去命名。

#常见的非法变量类型
2abc#不可以数字开头
a@mkae#不可含有其他特殊符号
#驼峰式命名法(单词大写)其中小驼峰法指第一个单词首字母小写,其后单词均大写
#大驼峰法则全部单词均大写
getNewList
GetNewList
#下划线链接词法
stu_name
stu_age

3.2关键字

python中一些具有特殊功能的标识符:print,import...

#查看关键字
import keyword
print(keyword.kwlist)

4.输入与输出

输入:将信息与数据输送到程序、计算机之中的过程。

输出:程序将信息、数据反馈给我们的过程。

格式化:将变量、数据按一定形式输出的方法,python中的变量格式化是通过占位符%来实现的:“%+特定的字母”可代表指定的输出类型,%的作用是替后面的变量值占一个位置,并在文本内容之后以“%+变量名”的形式注明变量。

特别需要注意的是一段文本内同时有多个变量需要进行格式化时,变量以“%(变量1,变量2…)”的形式统一标注。

格式符号变量类型
%d有符号的十进制整数
%s字符串的格式化
%c字符
%u无符号的十进制整数
%o八进制整数
%x/X十六进制整数
%e/E索引符号
%f浮点实数
#输入函数----input函数
mobile = input('请输入你的手机号:')#会出现一个输入框,括号内为在框前显示的文本内容
#输出函数----print函数
print('hello world')
#编辑一个名片
Name = '张三'
QQ = 1234567
PN = 1234567
AD = '北京市'
print ("姓名:%s\nQQ号:%d\n电话号码:%d\n地址:%s"%(Name,QQ,PN,AD))

5.运算

5.1算术运算

运算符描述
+
-
*
/
//取整
%  取余  
**
#基本的算术运算
a = 3
b = 10
sum = a + b
sum2 = b / a
sum3 = b // a
sum4 = a ** b
sum5 = b % a
print(sum,sum2,sum3,sum4,sum5)

5.2赋值运算

定义:计算等号右侧的表达式的值,赋值给等号左边的变量。

基本格式:变量 = 表达式

基本赋值方式
单独赋值

a = 5

b = 3

交互赋值a,b = 5,3
连续赋值a = b = 5

5.3复合运算

python中以“ a 算术运算符 = b”的形式来表示,其效果等价于“a = a 运算 b”,个人认为python中的复合运算,类似于一种迭代,让a与b进行一次运算再将值赋给a,下面是一些常用的复合运算符:

符号等价形式
+=b = b + a
-=b = b - a
*=b = b * a
/=b = b / a
//=b = b // a
%=b = b % a
**=b = b ** a

5.4比较运算符

就是比大小~唯一需要注意的有两点

  • 比较运算为判断式,其运算结果为布尔值(true&false------1&0)下面展示部分比较运算符:
运算符  描述  
==相等
!=不等
<小于
>大于
<=小于等于
>=大于等于
  • 严格区分赋值运算" = "和相等判断" == "

5.5逻辑运算

就是“与、或、非”三大类运算,具体如下:

运算符含义运算结果
and

x and y: 如果x为false,返回false,否则返回y的计算值

or

x or y: 如果x为True ,返回True 反之返回y的计算值

not

not x: 如果x为True,返回的False,如果x为False返回的True

二、循环语句

1.条件控制语句(if)

简单来说就是为了实现满足特定条件时执行特定操作而出现的循环语句,例如:

if 今天发工资:

    先还信用卡

    if 还有剩余:

        可以出去happy下

    else:

        喝风...吃土

 常见格式:

1.1 if---else语句

格式:

if 条件:

    满足条件,做事情1

    满足条件,做事情2

    满足条件,做事情3

else:

    不满足条件,做事情1

    不满足条件,做事情2

    不满足条件,做事情3  

#EX:密码核验
PS = input('password:')
PST = '1234567'           #用户的密码
if PS == PST:
    print("密码正确")
else:
    print("密码错误")

1.2 elif语句

格式:

if 条件1:

        事情1

elif 条件2:

        事情2

elif  条件3:

        事情3

else: #执行条件为假的结果

        要做的事情

说明:

当条件1满足时,执行事情1,然后整个if语句结束

当条件1不满足,那么需要判断条件2,如果条件2满足,执行事情2,然后整个if语句结束

当条件1和2都不满足,如果条件3满足,执行事情3,然后整个if语句结束

如果以上条件都不满足,最终执行else条件为假的结果

#EX:猜拳游戏
import random
computer = random.randint(0,2) #第一个参数是起始值 第二个参数是结束值
player = int(input('请输入0~2之间的正整数,剪刀(0),石头(1),布(2):'))
#先考虑用户赢的情况
if (player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1):
    print('用户赢了')
elif player == computer:
    print('平局')
else:
    print('电脑赢了')

1.3语句嵌套

格式:

if 条件1: #条件1为真

        满足条件1,做事情1

        满足条件1,做事情2

        满足条件1,做事情3

        .....(省略)

        if 条件2: #条件2为真

                满足条件2,做事情1

                满足条件2,做事情2

                满足条件2,做事情3

        else: #如果条件2为假

        执行条件2为假的结果

else: #如果条件1为假

        执行条件1为假的结果

#EX:火车站售票系统
#规则:须有票且持有刀具长度小于10cm
ticket = 1 #1有票 0无票
knife = 9 #单位cm
if ticket == 1:
    print('有票可以进站了')
    print('心里美滋滋,可以看到她')
    if knife <= 10:
        print('允许上火车')
    else:  #刀子长度超过10cm
        print('不允许上火车')
        print('先打一顿,再报警')
else:  #无票
    print('请先买票再进站')

2.循环语句(while&for)

在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句,这些重复出现的语句被成为循环语句。需要注意,循环不是必须的,但为了降低代码的重复使用率,一般在软件开发中使用循环。

2.1 while循环

基本格式:        

while(循环的条件): 如果循环条件满足

        做事情1,

        做事情2,

        做事情3

#EX:计算1~100之间偶数的累计和(包含1和100)
j = 1    
sum = 0  #定义变量接受最终的累积和
while j < 101:
    if j % 2 == 0:
        sum += j
    j += 1
print(sum)

 while...else语句格式

格式:

while 判断表达式:

     语句1

else:

     语句2

判断表达式为false时,执行else的语句2

#EX:循环输出数字1-3
i = 3
while i <= 1:
    print(i)
    i += 1
else:
    print('没有数据')

while嵌套语句格式:

while 条件1:

        条件1满足,做事情1

        条件1满足,做事情2

        条件1满足,做事情3

while 条件2:

        条件2满足,做事情1

        条件2满足,做事情2

        条件2满足,做事情3

#EX:打印三角形
while i < 5:  #外层循环控制行
    j = 0
    while j <= i:  #里层循环控制打印*号
        print('*',end='')
        j += 1
    print()
    i += 1

2.2 for循环

格式:

for 临时变量 in 序列:

        执行循环对应的结果

else:

        执行不满足循环条件的结果

嵌套:

for 临时变量1  in 字符串或者列表:

    for 临时变量2 in 字符串或者列表:

        执行的代码

#案例:输出5*5的矩形
for i in range(5):
    for j in range(5):
        print('*',end='')
    print()

3.break&continue

break:终止目前循环,后续代码不执行

print("猜一个幸运数字,游戏开始!")
while True:
    guess=int(input("请输入你觉得对的数字:"))
    if guess>8:
        print("大了")
    elif guess<8:
        print ("小了")
    else:
        print("猜对了")
        break

continue:跳出循环,后续代码继续执行

三、常见数据类型及处理方法

python中的常见数据类型共有6种:数字、字符串、列表、元组、字典、集合。

print(type(x))'''查看变量类型的方法'''

1.Number(数字)类型变量

常见数字类型
int整形
float浮点数(小数)
bool布尔值
complex复数
常用的数据类型转换方式
函数说明
hex(x)

将一个整数转换为一个十六进制的字符串

int(x)

将x转换为一个整数

float(x)

将x转换为一个浮点数

complex(real,[,imag])

创建一个复数

str(x)

将对象x转换为字符串

repr(x)

将对象x转换为表达式字符串

tuple(x)

将序列转换为元祖

list(x)

将序列x转换为列表

chr(x)

将一个整数转换为一个字符

unichr(x)

将一个整数转换为unicode字符

ord(x)

将一个字符转换为整数

 PS:此处没有太多需要注意的点,只有复数的输出和其他类型稍有不同,因为复数还分为实部和虚部,所以在打印时,可以采用"complex.real"&"complex.imag"的方式分别单独打印。

2.String()

字符串是由数字、字母、下划线组成的一串字符。其在存储方式上比较特殊,每一个单个元素都可以提取,所以可以进行切片操作,后面会详细说明。

2.1 输入与输出

a = input("请输入账号名称")  #输入
print(a)                    #输出

2.2 下标与切片

正如之前所提到的,字符串变量的每个元素都可以单独提取,因此产生了切片操作——截取指定元素的操作。想要进行“定向”截取,就需要“位置信息”来进行定位,下标便是这一位置信息,简单来说下标表示元素在变量中的所在位数,比如“我叫:demo”这一字符串中“:”这一符号的所在位数为3, 但是!它的下标是2,因为在python中,下标是从0开始的,而不是从1开始的,一定要注意!

语法格式:[开始值:结束值:步长]

  • 步长:可以理解为隔步长值减一个元素进行切片
  • 这三个参数不是必填的,不填默认取全部值
#EX1:检查下标
name = 'zhangsan'
for temp in name:     #temp表示元素
    if temp == 'g':
        break         #结束循环后面会细说
    print(temp)
#EX2:切片
print(name[::])
print(name[3::])  #从下标3开始,返回后面所有元素
print(name[:3:2])
#从后往前切  最后一个元素下标-1
print(name[:-2:])
print(name[::-2])

 2.3运算&转义字符

基本运算
运算名称调用格式(str='one')运算结果
加法str + stroneone
乘法str*3oneoneone
元素替换str[1]='y'oye
常见转义字符
符号含义
\n换行
\\反斜杠符号
\'单引号
\"双引号
\t空格
r取消全部转义

2.4 常见操作

命令定义调用格式

find

检测str是否包含在myStr中,如果是返回开始元素的索引值,否则返回-1

myStr.find(str,start,end)

index

跟find方法一样,只不过如果str不在myStr中,或直接报错

myStr.index(str,start,end)

count

返回str在start和end直接在myStr中出现的次数

myStr.count(str,start,end)

replace

把myStr中str1(旧元素)替换为str2(新元素),如果指定了count,则替换不超过count次

myStr.replace(str1,str2,count)

split

分割,以str为分隔符切片myStr#返回的是列表

myStr.split("",maxsplit)

capitalize

把字符串中的第一个大写

myStr.capitalize()

titile

把字符串中的每一个单词的首字母大写

myStr.title()

swapcase

转换字符串中字母的大小写,小变大,大变小

myStr.swapcase()
startswitch

检查字符串是否以object开头,如果是返回True,反之返回False

myStr.startswith(obj)

endswitch

检查字符串是否以object结尾,如果是返回True,反之返回Flase

myStr.endswith(obj)

lower

转换myStr中所有大写字符为小写

myStr.lower()

upper

转换myStr中所有小写字符为大写

myStr.upper()

ljust

返回一个原字符串左对齐,使用空格填充长度width,形成一个新的字符串

myStr.ljust(width)

#没有指定字符串长度的话默认为原字符串的长度

rjust

返回一个原字符串右对齐,使用空格填充长度width, 形成一个新的字符串

myStr.rjust(width)

ceter

返回一个原字符串居中,使用空格填充长度width, 形成一个新的字符串

myStr.center(width)

lstrip

删除myStr左边的空白字符

myStr.lstrip()

rstrip

删除myStr右边的空白字符

myStr.rstrip()

strip

删除myStr两端的空白字符

myStr.strip()

rfind

类似与find函数,从右边开始查找,如果找到返回元素的开始索引,反之返回-1

myStr,rfind(str,start,end)

rindex

类似与index(),从右往左找

myStr.rindex(str,start,end)

splitlines

按照行进行分割,返回一个包含每行作为元素的列表

myStr.spiltlines()

isalpha

如果myStr所有的字符都是字母,返回True,反之返回False

myStr.isalpha()

isdigit

如果myStr所有的字符都是数字,返回True,反之返回False

myStr.isdigit()

isalnum

如果myStr中所有的字符是字母或者数字,返回True,返回false

myStr.isalnum()

isspace

如果myStr中只包含空格,返回True,返回False

myStr.isspace()

join

myStr中每一个字符后面都会插入str,构造出一个新的字符串(不包含最后一个)

myStr.join(str)

eval

函数用来执行一个字符串表达式,并返回表达式的值。

eval(str)

len

返回字符串的长度(字符个数)

len(str)

chr

函数使用一个范围range(256)内(0~255)整数作为参数,返回对应的字符

chr(0~255)

unichr

和chr一样,区别在于unichr返回的是unicode(将整数返回成unicode字符)

3.List()

简单来说就是在[]内存储不同类型的多个数据的变量,数据与数据之间用,隔开。

格式:

   列表名 = [列表选项1,列表选项2,....,列表选项n]

例如:

   nameList = ["xiaoming","xiaowang",1,True,3.14,4+3j,None]

下标和切片、元素查找与替换、相加和重复和字符串基本相同,这里就不多赘述了,下面展示列表的一些相关函数:

函数名作用调用格式
append添加元素name.append(temp)'''temp为待添加元素,在列表后添加该元素'''
extendextend(b)'''b为待添加元素"
insert

insert(index,object)'''在指定的位置index前插入元素object'''

in查找元素

A in(list)'''A为待查找元素,list为待查找列表'''

not inA not in(list)'''同上'''
index

nameList.index('xiaoli')

count

nameList.count('xiaoli')

del删除元素del list[num]'''根据下标删除'''
poplist.pop()'''删除最后一个元素'''
removelist.remove(b)'''b为待删除元素的值'''
sort排序listname.sort()'''顺序'''
reverselistname.reverse()'''逆序'''
len求个数len(listname)
max求最值max(list)'''求最大值'''
minmin(list)'''求最小值'''
#EX:把八个老师分进3个办公室
offices = [[],[],[]]
#定义一个列表存储8位老师的名字
nameList = ['张学友','刘德华','黎明','郭富城','王菲','张柏芝','张韶涵','杨颖']
import random
#循环获取每个老师的名字
for name in nameList:
    #使用随机数产生3个办公室
    index = random.randint(0,2)
    #offices[0] offices[1] offiices[2]
    offices[index].append(name)
print(offices)
i = 1  #办公室编号
for tempNames in offices:
    print('办公室%d的人数是%d'%(i,len(tempNames)))
    i += 1
    for name in tempNames:
        print('老师的名字是%s'%name)

4.Tuple()

和列表差不多,区别是不能更改,元素放在()内,相关函数和操作和列表相近,这里就不再过多叙述了。

5.Dictionairy()

和列表也挺像的,和名字一样,内部存储了很多数据,我们查字典,是通过查找词条然后才能查询到内涵,字典变量则是将词条称为“键”,详细解释称为“值”。

常见操作:

查找元素:根据键找值:字典变量名[键的名字]

                  get函数:get('key','value')                        '''不确定想确认的键时可以使用'''

修改元素:变量名[修改键名] = 新的值

添加元素:变量名["键"] = 数据时,如果该键在字典中不存在,会自动创建

删除元素:del  :删除指定的元素

                  clear():清空字典

其他操作:len():测量字典中,键值对的个数

                  keys():返回一个包含字典中所有key的列表

                  values():返回一个包含字典中所有值value的列表

                  items():返回一个包含所有(键   值)元祖的列表

6.Set()

和数学上的集合很像,元素种类不限,同样具有无序性,不可重复性等等。

常见操作:

创建:set函数创建        eg:res = set([1,2])

           大括号创建{}       eg:fruit = {'apple','orange','banana'}

添加:add函数              set.add()

           update函数         set.update()'''可将list、tuple、string等变量打碎插入(无序、去重)'''

删除:clear函数

集合的运算:交:&;差:-;并:|

 7.可变类型与不可变类型

可变类型: 列表   字典   集合

不可变类型: 数字  元祖   字符串

四、函数

我的个人理解是为了程序的后期维护等工作,会将功能性代码单独提取出来,作为函数,后面如需使用不需要再重复输入代码,直接调用函数即可。

 格式:

def 函数名(参数1,参数2...):

                执行代码

调用格式:

                函数名(参数1,参数2...)

1.相关量: 

#案例:求两个数的总和
def add(a,b): #形参,相当于临时占了两个位置
    print(a+b)
#调用函数
add(5,10)  #实参,具体的值

1.1参数:

形参和实参:通过上面的例子可以看到,很多函数是需要参数的,我们将函数定义时括号内的参数叫做形式参数,仅起到传递的作用与临时占位的作用,在调用函数时输入的参数为实际参数,因为是根据其值进行运算的。

关键字参数:私人为就是在调用时指明形参对应的值,一般函数在调用是按顺序进行赋值的,而关键字函数则通过指明关系而无视顺序。

#案例:获取学生的姓名,年龄等信息
def get_stu_info(name,age):
    print('姓名是:%s,年龄是:%d'%(name,age))
get_stu_info(age = 24,name = '杨超越') #age,name就是关键字

 默认参数: python为了简化函数的调用,提供默认参数机制,调用函数时,缺省参数的值如果没有传入,则会被认为是默认值。

def getStuInfo(name,sex,age = 18):        #age便是默认参数
    print(name)
    print(age)
    print(sex)
getStuInfo('欧阳娜娜','女')                #此处没有输入新的age值,便取默认值18

 不定长参数:我的个人理解为当一个函数我们也不知道会被输入多少参数时,便会使用他,*args会将所有未命名变量储存进一个元组中,**kwargs则将所有的命名变量则会被存储进字典中。

格式:

def function(args,*args,**kwargs)        #args,kwargs代指变量名称

def fun(a,b,c,*args,**kwargs):
    print('a=',a)
    print('b=',b)
    print('c=',c)
    print('args=',args)
    print('kwargs=',kwargs)
    for key,value in kwargs.items():
        print('key=',key,'value=',value)
fun(1,3,5,6,name='鹿晗',age=20,height=180)

1.2返回值

就是程序中函数完成一件事后将结果返回给调用者,可以理解为return后面的东西。 

def add(m,n):
    return m + n
res = add(10,2)
print(res)

1.3变量类型

局部变量:只在函数内部起作用的变量

def test():
    a = 10            #局部变量
    print(a)

全局变量:在函数外声明的变量,可在所有函数里起作用(必须在函数上方声明)

s = 100                #全局变量
def test():
    print(s)
test()

相关操作:

全局变量的修改:

        global 需要修改变量名                        #注意:那个全局变量首先也得能改才行

x = 10
def test():
    global x
    x = 1010
    print(x)
test()

局部变量的上层调用:

        nonlocal:使用函数的外层变量

def test():
    num = 2
    def test2():
        nonlocal num
        num *= 2
        print(num)
    return test2()
test()

2.函数类型

2.1按参数与返回值的有无进行分类

个人觉得没有太多阐述的必要,不做过多叙述:

类型功能

无参数,无返回值

打印提示等类似的功能

无参数,有返回值

数据采集

有参数,无返回值

变量设置数据,不需要结果

有参数,有返回值

最常见的~(可能)

2.2其他类型

匿名函数:不在前面单独命名的函数(大概)

格式:

lambda[args1,args2....]:expression                #方括号加不加都可以

特点:

1.lambda只是一个表达式,比函数def声明简单

2.lambda的主体也是一个表达式,而不是代码块,

   只能在lambda表达式中封装简单的逻辑

3.lambda函数有自己的命名空间,

   且不能访问自由参数列表以外或者全局命名空间的参数  

4. lambda函数能够接受任何数量的参数,只能返回一个表达式的值

#匿名函数的应用场景(作为参数进行传递)
def test(a,b,opt): #opt当做参数传递
    print(a)
    print(b)
    print(opt(1,8))
test(10,100,lambda x,y:x+y)
#案例:下面的数据如何排序,按照指定的name,age排序
stus = [
    {"name":"zhangsan","age":18},
    {"name":"wangwu","age":20},
    {"name":"laowang","age":35}]
#根据名称进行排序
print(stus)
print('排序之前的数据:')
stus.sort(key=lambda y:y['name'])
print(stus)
#根据年龄进行排序
stus.sort(key=lambda c:c['age'])
print(stus)

偏函数:函数在执行时,要带上所有必要的参数进行调用。但是,有时参数可以在函数被调用之前提前获知。这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调用。

from functools import partial
#求两个数之和
def add(a,b):
    return a + b
#偏函数调用
plus = partial(add,100) #提前获知第一个参数的值
res = plus(9)
print(res)
#总结:调用add函数的时候,已经提前获知了一个参数的值,
#通过这个参数绑定partial(add,100)返回一个新的函数,
#再调用执行
#好处:将函数里面部分参数固定起来(默认值),后面再进行调用
#简化函数的调用

#案例2:求数字1010的二进制值是多少
#print(int('1010',base = 2))
#int(字符串或者整形,进制数) #不写默认十进制
def int2(str,base=2):
    return int(str,base)
# print(int2('111'))
res = partial(int2,base=2)
print(res('1111'))

五、模块文件的操作

 模块就是别人写好的工具包,导入之后,我们可以直接使用其内的函数。

1.函数的导入

import方法:import module1,module2....

from...import方法:from 模块名 import 函数名1,函数名2.....

                               from...import *                                #导入全部函数

2.其他操作

as::重命名        import modName as newName

sys:定位路径        需要先导入sys库

3.自定义模块

个人理解就是自己写了一些函数然后打包封装成单独的.py文件(自定义库),然后正常的进行导入和相关操作。

4.包的导入

个人的理解是包就是装了很多个自定义库的文件夹导入方法:from 文件夹的名字 import 文件名

5.第三方库的安装

DOS  -->  pip install 第三方的模块名(前提都是要求联网下载)

6.相关库

6.1PIL库(图像处理模块)

convert:

将当前图像转换为其他模式,并且返回新的图像。

Mode

图像的模式,常见的mode 有 “L” (luminance) 表示灰度图像,“RGB”表示真彩色图像,和 “CMYK” 表示出版图像,表明图像所使用像素格式。如下表为常见的nodes描述:

modes 描述

1            1位像素,黑和白,存成8位的像素

L            8位像素,黑白

P            8位像素,使用调色板映射到任何其他模式

RGB      3× 8位像素,真彩

RGBA    4×8位像素,真彩+透明通道

CMYK    4×8位像素,颜色隔离

YCbCr    3×8位像素,彩色视频格式

I              32位整型像素

F            32位浮点型像素

from PIL import Image
img = Image.open(r'1.jpg')
#获取图片类型,大小
print(img.format,img.size)
#保存图片
img.save('2.png')
#生成缩略图  里面参数是宽和高
img.thumbnail((100,200))
#图片转换
img2 = img.convert('F')

#显示图片
img2.show()

 6.2time库(时间相关的模块)

时间字符串的格式化
%a

本地简化的星期的名称

%A

完整的星期的名称

%b

简化的月份的名称

%B

完整的月份的名称

%c

本地对应的日期表示和时间表示

%d

月内中的天数(0~31)

%H

24小时制小时数(0~23)

%m

月份(01~12)

%M

分钟数(00~59)

%w

星期(0~6) 星期天开始

元组类型
索引属性
0

tm_year(年)

2018
1

tm_mon(月)

1~12
2

tm_mday(日)

0~31
3

tm_hour(时)

0~23
4

tm_min(分钟)

0~59
5

tm_sec(秒)

0~61
6

tm_wday(weekday)

0~6
7

tm_yday(一年中的第几天)

1~366
8

tm_isdst(是否是夏令时)

默认-1
import time
curtime = time.time()                        #获取时间戳
t = time.strftime('%Y/%m/%d %H:%M:%S')       #格式化
local = time.localtime()                     #返回当前元组格式时间
time.sleep(3)                                #让程序“睡”3s
now = datetime.datetime.now()                #获取当天时间
today = datetime.date.today()                #获取当天日期
calendar.month(x,y)                          #获取某个月的日历

总结

以上就是笔记的第一部分了,本文仅仅简单介绍了包含循环语句,函数,库的应用等等基本知识,后面会补一些面向对象语言,在python内进行文件的读写、程序调试等等工作(大概)。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值