21天学通Python笔记(一)

一、

如果含中文:

1、要不在文件头加上:   # coding=gbk

2、要不文件改为         以UTF-8无BOM格式编码

二、

python区分大小写

python可以单双引号相互嵌套而不用转义

python程序要求最好是全部使用缩进来分层

行尾的":"表示下一行代码缩进的开始,如果缩进行只有一条语句,也可以直接写在“:”之后的

处于同一级的代码所尽量要保持一致

python的编程规范指出:缩进最好采用空格的形式,每一层最好向右缩进4个空格

单行注释采用#

块注释使用三个单引号或者三个双引号包围程序即可

python也可以将两条语句书写在同一行而中间用分号隔开的

如果一行写不下可以像C一样使用‘\‘,如果在圆括号中,例如很多参数\也是可以去掉的,和C一样

python算式中的乘号不可以省略

要比较两个浮点数是否相等,应看他们的差是否小于一个极小的数即可

三、

字符串可以通过序号来取出其中某个字符,如:‘abcde‘[1]取得的值为b。

python字符串是可以用"+"、"*"进行运算的。

string的split函数返回以指定的字符将字符串分割成列表形式返回,但并不改变原字符串 。

string的join函数将原字符串插入参数字符串中的每两个字符之间,如果参数字符串只有一个字符,那么返回参数字符串。同样join不改变原字符串,只是返回一个新的字符串。

/运算符的运算结果为浮点数,即使两个整数相除。

//为整除运算符

原始字符串就是在字符串前以r或R作为标志,这种表示法常用来在windows系统下表示路径中的分隔符如r‘c:\windows\system‘,原始字符串不得以"\"结尾

python字符串格式化:   print("i am a %s.", % "programer")

python中默认的都是utf-8编码字符串,在网络上发送字符串时要求必须转换为字节串(bytes)形式,那么就要是用字符串的encode()方法,它返回的是字节串(bytes),其形式如下:

encode(encoding=‘utf-8‘, errors=‘strict‘), encoding 默认编码方式为utf-8, 也可以使用gbk、gb2312等方式编码,编码和解码所指定的编码类型应该相同,这样才能正确还原字符串。

在python中"="作用是将对象引用与内存中某对象进行绑定,如果对象已经存在,就简单的进行绑定,以便引用右边的对象;若对象不存在就由“=”操作符创建对象并绑定

在任何时刻,某个对象引用都可以重新引用一个不同(类型)的对象

python会在运行时执行类型检查的,一旦不能运算会引发错误

列表支持加法运算、乘法运算

元组可以看成是一种特殊的列表,与列表不同的是元组一旦建立就不能改变,也可以通过序号来引用其中的元素

字典中通过键来访问成员,而不能通过其位置来访问该成员

python中的逻辑假包括:None、False、0、‘‘(空字符串)、()、[]、{}其余任何值都视为真

python中的逻辑运算符包括:and、or、not

not的结果只能为True或者False

or为“或”运算符,如果第一个操作数为真则直接返回第一个操作数,如果为假则返回第二个操作数或表达式的值

and为“与”运算符,如果第一个操作数为假则直接返回第一个操作数,如果为真则返回第二个操作数或表达式的值

is 和 is not 都是二元操作符,用于判断左端与右端对象引用是否指向同一个对象

in和not in称为成员操作符,用于检查某个数据是否存在于某包含多个成员的数据类型之中,成员操作符对于字典来说检查的是键成员而不是值成员

序列表示索引为非负整数的有序对象集合,包括前面所介绍的字符串、列表、和元组。字符串是字符的序列,列表和元组则是任意Python数据类型或对象的序列。字符串也是不可以变的,修改字符串就是重新创造了一个字符串

序列的切片是指用形如[start:end:step]来取序列中的部分成员数据项,意思是从序列中start序号开始到end前一个结束,每隔step个取一个成员,切片所取的元素从start开始,到end前一个结束,不包括序号为end的元素

sum(s[,start])   返回s中各项的和

all(s)                s中所有项为真,则返回真,否则返回假

any(s)              s中有一项为真,则返回真,否则返回假

四、

if语句不带括号,末尾用 : 结束,else语句后面也是 : 结束 elif 同样,嵌套没有什么特别点。尽量少使用嵌套,难以阅读。

if语句可以使用在一个单语句之中,实现三元运算符,基本形式如下:

<表达式1> if <条件> else <表达式2> 其语义是当条件为真时取得表达式1的值,否则取得表达式2的值

a = None

b = 3

x = b if a is not None else 0当a的值不为None时,x取值为3,否则x取值为0

for语句不带括号,末尾用 : 结束。

for i in [1,2,3,4,5]:

print(i, "的平方是:", i*i)

else:

print(‘循环结束!‘)

可以在for语句中使用continue和break,后面不用带冒号,和C的用法类似

adct = {‘apple‘:15, ‘banana‘:20, ‘pear‘:35}

for key,value in adct.items():

print(key, ‘:‘, value)

for key in adct.keys():

print(key)

for value in adct.values():

print(value)

for循环经常使用到的range函数有三个参数,第一个为初始值,第二个为最大值不包含该值,第三个为每次递加的值。

enumerate 函数用于遍历序列中的元素的下标以及它们:

a=[1,2,3]

for i, d in enumerate(a):

print(i,":",d)

0:1

1:2

2:3

zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。

b = (2,4,6)

for i,j in zip(a,b):

print(i,":", j)

1:2

2:4

3:6

因为字典既有键又有值,在遍历时不能直接对字典进行遍历二十通过字典的额items()、keys()、values()等方法分别遍历其键和值、键、值。如果同时遍历键和值,在遍历时可以使用两个循环变量来分别接收键和值。

range()函数并不是在调用时一次生成整个序列,而是遍历一次才产生一个值,以减少内存的占用,其本质是一个迭代器。

while循环不像for循环可以遍历某一对象的集合

while循环不带括号,末尾用 : 结束,也可以和for一样用else来判断循环结束的时候执行什么。

alst = [1,2,3,4,5]

total = len(alst)

i = 0

while i < total:

print(i, "的平方是:", i * i)

i = i + i

else

print(‘循环结束!‘)

结果打印出0到4的平方。

推导,使用原来序列来生成新的序列的一种方式

>>>a = [1,2,3,4]

>>>[2*i for i in a]

[2, 4, 6, 8]

>>>b = [‘a‘, ‘b‘, ‘c‘]

>>>{k:v for k,v in zip(b, a)}

{‘b‘:2, ‘c‘:3, ‘a‘:1}

>>>[2*i for i in a if i % 3 != 0]

[2, 4, 8]

>>> a = [1,2,3,4]

>>> [5+i for i in a if i % 3 != 0]

[6, 7, 9]

Python内置了几种常用的迭代函数,既方便又实用。

enumerate(seq) 编号迭代

sorted(seq)排序迭代

reversed(seq)反转迭代

zip(seq1,seq2,...)并行迭代

编号迭代在迭代时既返回序列中的元素,又返回该元素在序列中的编号(编号从0开始),for语句进行编号迭代时,应使用两个循环变量分别接收编号和元素的值。

排序迭代的作用是使得在for的遍历时先遍历序列中的较小的值,后遍历序列中较大的值,当然这要求序列中的数据可以是排序的同类数据。只需要一个变量即可

反转迭代就是将迭代序列中的元素从尾至头进行遍历

并行迭代也是一种很使用的迭代函数它在遍历时是同时遍历函数中给出的seq1、seq2等序列中同一序号的元素

并行迭代函数中序列值的长度不一致时,只遍历到最短的序列的长度

典型的列表推导基本形式如下:

[ <i 相关表达式> for i in aiterator]

aiterator是指一个可遍历的对象,比如列表,元组,也可以是range()函数。其语义为用循环变量i去遍历aiterator,并将i相关表达式的值放入一个列表中。

字典也是可以实现其推导式语法的,其基本格式如下:

{key_exp:value_exp for key_exp, value_exp in aiterator}

列表推导式和字典推导式不仅可以对遍历的元素进行全部处理,还可以使用if语句实现有选择的处理遍历序列中的元素其基本形式如下:

[ <i 相关表达式> for i in aiterator if <条件>]

{key_exp:value_exp for key_exp, value_exp in aiterator if<条件>}

如果要获得一个1~10中所有数的平方,且平方值为偶数的一个列表,就可以使用如下代码来实现:

square_odd = [i**i for i in range(1, 11) if i**i %2 == 1]

如果在推导式中的求值表达式或条件表达式中应用函数,则可以构造更加复杂的推导式来实现对序列中的数据进行批量的处理(这也常被称为声明式编程)。

时间: 2024-09-30 14:43:54

21天学通Python笔记(一)的相关文章

21天学通Python笔记(二)

五. >>> def hello(): print('123123') >>> hello() 123123 >>> def hello1(v): print(v) return v >>> a = hello1(123) 123 >>> a 123 >>> def hello2(v1, v2): print(v1) return v2 >>> b = hello2(1, 3) 1

福利分享:《21天学通Python》电子书籍分享

本书共分三篇 第一篇介绍Python语言的特点.安装.语法基础.程序流程控制.面向过程的编程方法.面向对象的编程方法.程序异常的处理: 第二篇介绍了Python语言中的包与模块.迭代器.生成器.装饰器.上下文管理器等进阶语法,同时介绍了使用Python标准库中的文件系统处理.图形化界面编程.正则表达式.网络编程.多进(线)程编程.数据库编程.此外,还介绍了运用第三方库的Web网站编程.图片处理: 第三篇通过两个案例介绍Python的综合编程技术. 在内容上涉及面广,从基本操作到高级技术及综合案例

21天学通Visual.Basic pdf

下载地址:网盘下载 <21天学通Visual Basic(第2版)>是Visual Basic 6.0的入门教程,主要针对没有程序设计基础的读者,详细介绍了Visual Basic 6.0的基本概念和编程技术.书中通过大量的范例及综合练习来介绍Visual Basic 6.0的基本概念.语言特点.基本的程序设计方法,以及小型应用程序的设计步骤.<21天学通Visual Basic(第2版)>在内容讲解上力求形象生动.深入浅出,使读者能够较为轻松地理解基本概念.读者可以在较短时间内通

21天学通C++_Day6

0.指针&数组 数组是指向其第一个元素的指针,即数组变量就是指针.故可将(*)用于数组,也可将([])用于指针,eg: int MyNums[5] = {0}; int* pNums = MyNums; 可以使用*(MyNums+1),也可以使用pNums[1]. 1.指针使用时要注意的点 ①务必初始化指针变量为NULL: ②使用前要确认指针是否有效(检查是否为NULL): ③new和delete要配套,不然会造成内存泄露: 2.检查new发出的分配请求是否满足 法一:使用异常处理,catch(

《21天学通C#》Write和WriteLine的区别

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace WriteLine和Write的区别{ class Program { static void Main(string[] args) { //WriteLine输出后鼠标显示在下一行开头 //Write输出后不开始一个新行 System.Console.

108节课彻底学通Python-2.2节: 开发工具中的青龙偃月-VS Code

这是一本教同学们彻底学通Python的高质量学习教程,认真地学习每一章节的内容,每天只需学好一节,帮助你成为一名卓越的Python程序员: 本教程面向的是零编程基础的同学,非科班人士,以及有一定编程水平的中高级程序员. 2.2.1 VS Code简介 VS Code的全称是Visual Studio Code,是微软开发的一款垮平台的IDE工具.与“笨重”的PyCharm相比,VS Code非常轻量,启动速度很快. PyCharm之所以“笨重”,是因为它支持更多易于提升开发效率的特性,对初学者比

Python笔记(四)

在<Python笔记(三)>中,我记录关于Python中序列问题的知识.个人觉得确实比Java中的集合框架简单.之前也说了,Python是一种高级面向对象的语言,它的每一个变量都称为对象.今天我接触了面向对象的编程.下面是这篇博客的目录: 1.类与对象 2.输入输出 3.异常 类与对象: 我们都知道面向对象的语言具备四个特性:抽象,继承,封装,多态.Java,C++是这样,Python也不例外.在Python中,我们定义一个类,使用关键字class.形式如下:class classname:.

运维的我要学开发--Python(4)

本文均来自Python Cookbook,本博文励志将Cookbook中的string部位,文件,面向对象编程部分完成,本系列博文陆续还会介绍flask框架,每篇博文都以一个个小例子展示. #-*- coding: utf-8 -*- ''' 文件相关的操作: read() open() 两个参数: 第一个:文件路径 第二个:打开文件的模式 常用的文件打开模式: r:文本模式读取 rb:二进制模式读取 w:创建文件并文本模式 wb:创建文件,二进制模式写 rU:通用换行符的文本模式读取文件(独立

玩蛇(Python)笔记之基础Part3

玩蛇(Python)笔记之基础Part1 一.集合 1.set 无序,不重复序列 {}创建,直接写元素 2.set功能 __init__()构造方法,,使用强制转换就会调用此方法 1 set1 = {'year', 'jiujiujiu'} 2 print(type(set1)) 3 # 创建集合 4 s = set() # 创建空集合 5 li = [11, 22, 11, 22] 6 s = set(li) set 3.集合的基本操作 1 # 操作集合 2 s1 = set() 3 s1.a