python编程入门读书笔记1

python适合用来做什么呢?

  1. 脚本,这些简短的程序自动执行常见的管理任务,如在系统中新增用户、上传文件到网站、不使用浏览器浏览网页等。

  2. 网站开发,作为快速创建动态网站的工具,DjangobottleZopepython项目深受开发人员欢迎。

  3. 文本处理,python在字符串和文本文件处理方面提供了强大的支持,包括正则表达式和unicode

  4. 科学计算,网上有很多卓越的python科学计算库,提供了统计、数学计算和绘图的函数。

  5. 教育,鉴于python的简洁实用,学校可以将其作为第一门编程语言。


python支持加+、减-、乘*、除/四种基本运算,而且还使用**%来分别表示乘方和求余。还有一个整除符号//,其结果总是整数。python还支持复数运算用1j表示-1的平方根。


python自带了很多编写好的代码,math模块就是其中之一。

导入模块有两种方式

#第一种更安全一些,建议使用第一种。

#如果使用第二种,函数与math中函数同名时,将被math模块中函数覆盖

import math

from math import *



ceil(x)#大于或等于x的整数

cos(x)#x的余弦

degrees(x)#将x弧度转换为度数

exp(x)#e的x次方

factorial(x)#计算n的阶乘(n!)

log(x)#以e为底的x的对数

log(x,b)#以b为底的x的对数

pow(x,y)#x的y次方

radian(x)#将x度转换为弧度数

sin(x)#x的正弦

sqrt(x)#x的平方根

tan(x)#x的正切



字符串的长度可以使用len()函数计算,字符串同样可以使用+*来进行计算。

‘123’+’abcd’= ’123abcd’

‘234’*3= ’234234234’

len(‘1234’)= 4



使用函数dir(m)可以列出模块m的所用函数,如果要查看内置函数可以使用dir(__builtins__),还可以使用help()函数查看函数的文档字符串,一般会有简易的英文说明。也可以打印函数的文档字符串。

#查看math模块的函数

import math

dir(math)

#查看所有的内置函数

dir(__builtins__)

#查看字符创包含哪些函数

dir(‘’)

#查看math模块的文档字符串

help(math)

#打印tanh函数的文档字符串

print(math.tanh.__doc__)



类型转换是一种常见的因为,python提供了很多简化这种工作的内置函数,如str()float()int()round()等等。


python命名变量规则,变量名的长度不受限制,但是第一个字符不能使数字必须是字母或下划线,区分大小写,不能将python关键字作为变量名。


对于x=expr这样的python赋值语句,可以解读为:让x指向表达式expr的值。expr可以是任何结果为值的python表达式。赋值语句并不会复制指向的值,而只是标记和重新标记既有值。数字和字符创是不可变的,看起来修改的情况下其实是python重新创建的新版本。对于没有任何变量指向的值,python会自动将其删除,一般而言python跟踪所有的值,并自动删除不在有指向的值,这称为垃圾回收。


python可以进行多重赋值,有一个很实用的用途就是交换两个变量的值。

x,y,z= 1,’qqq’,3.0

#会输出一个显示多个值的元组

x,y,z

#交换a和b的值

a,b= b,a



python3个主要部分组成,运行语句的解释器、将.py文件转换为.pyc文件的编译器以及运行.pyc文件的虚拟机。当你运行.py文件时,python会自动创建相应的.pyc文件,.pyc文件中包含目标代码。


如果想从键盘中读取数据,可以使用input()函数,我们常常使用标准输出(stdout)来表示文本被打印到的窗口。同样标准输入(stdin)是函数input从中读取字符串的地方。你有时还可以看到stderr它指的是显示错误消息的地方。print函数还可以使用sep修改它的间隔符。默认print打印完指定内容后会添加一个换行符\n,这个也可以通过end来进行修改。python2python3的主要差别就是print函数,python2print并非函数,导致修改默认分隔符合结束符比较困难。


#输出数据位a/b/c/d

print(‘a’,’b’,’c’,’d’,sep= ‘/’)

#指在同一行输出

print(‘jack123’,’4567’,end= ‘’)



python2python3的另一个不同在意输入函数,python3中的input对应于python2raw_input,而python2中的input函数可以对用户输入的字符串进行求值,但是python3中也可以使用eval(input(expr))进行模拟。


人们通常使用输入、处理、输出的组织方式进行编程,但是当程序越来越复杂的时候会导致代码混乱难以理解,所以我们一定要养成良好的习惯,使用注释指出输入、处理、输出部分。这有助于阐明程序执行的不同任务。


python里使用布尔逻辑进行决策,一共有4种逻辑运算符:notandor==。同样pythonandor支持短路求值por q如果pfalse将不再计算qpand q如果ptrue将不在计算q


python有两种主要的循环:for循环和while循环。for循环通常比while循环更容易使用,但没有while循环灵活。for循环式读取文本文件各行的最简单方式。breakcontinue语句提供了跳出的方法。


#循环10次,并将每一次的循环变量i输出

#range函数有三个参数,第一个参数和第二个参数就是开始和结束,第三个参数就是步长。

for i in range(10):

    print(i)


#while循环后面跟着循环条件

i= 0

while i < 10:

    print(i)

    i= i+1



函数是一大块可重用的代码,它是有名称的代码块,接受输入、提供输出并可存储在文件中供以后使用。python文档字符串通常使用三引号标识文档字符创的开始和结束位置,第一行是函数的简要描述接下来是详情和示例。python有一个很有用的工具doctest,可用于自动运行文档字符串中的示例代码。


import math

def area(radius):

“””

Return the area of a circle with the given radius.

for example:

>>>area(5.5)

95.033177771091246

“””

    return math.pi*radius**2




除返回值外,函数以其他任何方式所做的修改都被称为副作用,打印到屏幕、写入文件和下载网页都属于副作用。有一种名为函数式编程的编程风格,其特征是几乎消除了副作用。在函数式编程中,你只能通过返回值来完成修改。


在函数外声明的变量称为全局变量,程序中的任何函数和代码都可读取它,要访问全局变量必须使用关键字global


函数的参数,参数用于向函数传递数据,python支持多种参数,可以按引用传递,而且可以设置默认值,只有第一次调用函数时给默认参数赋值。带默认值参数不能位于没有默认值参数的前面。还可以使用关键之参数,使用关键值参数有两大好处,有助于提高程序的可读性,而且关键值的参数顺序无关紧要。


模块和普通python程序之间的唯一区别就是用途不同,模块是一个由函数组成的工具箱,用于编写其他程序,因此模块没有main函数。名称空间基本就是一组独特的变量名和函数名,要让模块中的名称在模块外面可见,你必须使用import语句。frommathimport*这种方式会把每一模块中所有的内容都加入当前的名称空间,将覆盖其他同名的内容,所以在较大的程序里不适宜使用这种导入模块语句。


字符串是一种聚合数据结构,python中字符串的索引从0开始,而且它还支持负数索引,其理念就是从右向左的方向,用负数表示字符串中的字符。还可以使用for语句来循环访问字符串。


str= ‘dengjingdong’

print(str[0])

print(str[-1])


#ord函数是将字符转换为整数

for i in str:

total= total + ord(i)




转义字符,并非所有的字符都是可视的标准符号,例如换行和回车、制表符都是不可见的,虽然它们带来的效果是可见的,为了处理空白字符和不可打印的字符python使用一种特殊的表示方法。

\\反斜杠

\’单引号

\”双引号

\n换行符

\t水平制表符

\r回车



字符串切片,可使用切片从字符串中提取子串。要对字符串进行切片操作,可指定两个索引:要提取的第一个字符的索引和要取的最后一个字符的索引+1。如果要访问索引为i的字符串,可使用s[i]或者s[i:i+1]。我们还可以使用负数索引的切片。


food= ‘apple pie’

#s[begin:end]返回从索引begin到end-1的子串

food[0:5]#apple

food[6:9]#pie


food[:5]#apple

food[6:]#pie


food[-9:-4]#apple

food[-3:0]#pie



有一个很实用的切片示例,这个函数返回的是文件的后缀名。

def get_ext(fname):

    dot= fname.rfind(‘.’)

if dot == -1:

return‘it’s a unormal filename’

else:

returnfname[dot+1:]


#rfind函数就是从右往左搜索字符



字符串测试函数

s.endswith(t) 	#s以字符串t结尾
s.startswith(t)	#s以字符串t开头
s.isalnum()	#s只包含字母和数字
s.isalpha()	#s只包含字母
s.isdecimal()	#s只包含表示十进制数字的字符
s.isdigit()		#s只包含数字
s.isidentifier()	#s是合法标识符
s.islower()	#s只包含小写字符
s.isnumeric()	#s只包含数字
s.isprintable()	#s只包含可打印字符
s.isspace()	#s只包含空白字符
s.istitle()		#s是个大小写符合要求的字符串
s.isupper()	#s只包含大写字母
t in s			#s包含字符串t



字符串搜索函数

s.find(t) #如果没有找到子串则返回-1,否则返回t在s中的起始位置

s.rfind(t) #与find相同,但从右往左搜索

s.index(t) #与find相同,但如果在s中找不到t则引发ValueError异常

s.rindex(t) #与index相同,但从右向左搜索


函数indexfind之间的差别在于没有找到指定子串时的情形。

一般而言indexfind返回传入字符串第一次出现的起始位置索引,而rindexrfind返回的是传入字符串最后一次出现的起始位置索引。


改变大小写的函数

s.capitalize() #将s[0]改写为大写

s.lower() #让s的所有字母都小写

s.upper() #让s的所有字母都大写

s.swapcase() #将小写字母改为大写,大写变小写

s.title() #让s的大小写符合头衔的要求



设置字符串格式的函数

s.center(n,ch) #包含n个字符的字符串,其中s位于中央,两边用字符ch填充

s.ljust(n,ch) #包含n个字符的字符串,其中s位于左边,右边用字符ch填充

s.rjust(n,ch) #包含n个字符的字符串,其中s位于右边,左边用字符ch填充

s.format(vars) #设置字符串


‘{0}likes {1}’ .format(‘jack’,’ice cream’) #输出’jacklikes ice cream’

‘{who}{pet} has fleas’ .format(pet = ‘dog’,who = ‘my’)#输出’mydog has fleas’



字符串剥除函数

s.strip(ch) #从s的开头和结尾删除所有包含在字符串ch的字符

s.lstrip(ch) #从s的开头删除所有包含在字符串ch的字符

s.rstrip(ch) #从s的结尾删除所有包含在字符串ch的字符



字符串拆分函数

s.partition(t) #将s拆分为三个字符串head、t、tail(head+t+tail=s)

s.rpartition(t) #与partition相同,但从s的右端开始搜索t

s.split(t) #以t为分隔符,将s划分成一系列的子串

s.rsplit(t) #与split相同,但从s的右端开始搜索t

s.splitlines(t) #返回一个由s中各行组成的列表



字符串替换函数

s.replace(old,new) #将s中的每个old替换为new

s.expandtabs(n) #将s中的每个制表符替换n个空格



其他字符串函数

s.count(t) #t在s中出现的次数

s.encode() #设置s的编码

s.join(seq) #使用s将seq中的字符串连接成一个字符串

s.maketrans(table) #创建一个转换表,用于将old中的字符改为new中相应的字符

s.zfill(width) #在s左端添加足够多的0,让字符串的长度为width

s.translate(table) #使用指定转换表(使用maketrans创建的)对s中字符进行替换



正则表达式

xy? x、xy

x|y x、y

x* ‘’、x、xx、xxx、xxxx等

x+ x、xx、xxx、xxxx等



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值