前段时间准备考研去了,没什么时间写博客,老师一番教诲,细想我这自考本的身份去考名校,万一没考上在这里白学了,到时候找工作也是个难事.细想自己的环境不容自己这么极端,也是自己把自己想的太美好了,怎么可能有那么聪明!!!
因此为了把以前的东西都捡一捡,每天复习一点,查漏补缺,这次定要这样一路走到黑了,在外面吹了自己一定要拿1.5w的工资,如果没拿到,那可就出丑了.
默认情况下,Python3源码文件以UTF-8编码,所有字符串都是unicode字符串.
可以使用
#-*-coding:utf-8-*-
这行代码为源文件自定义编码格式.
1.第一个字符必须是字母表中的字母或下划线(下划线一般意味着不引用该标识符).
2.标识符的其他部分由字母、数字和下划线组成.
3.标识符对大小写敏感.
保留字即关键字,我们不能把它们用作任何标识符名称.
Python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字:
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']
Python中单行注释以#开头:
#注释内容
Python中多行注释可以使用多个#号,还有'''和""":
#第一行注释内容
#第二行注释内容
或
'''
第一行注释内容
第二行注释内容
'''
或
'''
第一行注释内容
第二行注释内容
"""
注意:一般三引号还用于在函数的首部对函数进行一个说明
python中使用缩进来表示代码块,不需要使用{}.
注意:缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数,一般默认缩进4个空格.
python通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠(\)来实现多行语句:
total=item_one+\
item_two
注意:在[],{},或()中的多行语句,不需要使用反斜杠(\).
python中数字有四种类型:整型,布尔型,浮点数和复数
int(整数),如1
float(浮点数),如1.2
complex(复数),如1+2j
bool(布尔),如True
python中单引号和双引号使用完全相同.
使用三引号('''或""")可以指定一个多行字符串.
转义符'\'
反斜杠可以用来转义,使用r可以让反斜杠不发生转义,如r'\n',\n会显示,而不是换行.
按字面意义连接字符串,如'this''is''string'会被自动转换为this is string.
字符串可以用+运算符连接在一起,用*运算符重复.
python中的字符串由两种索引方式,从左往右以0开始,从右往左以-1开始.
python中的字符串不能改变.
python没有单独的字符类型,一个字符就是长度为1的字符串.
字符串的截取语法格式如下:变量[头下标:尾下标](顾头不顾尾).
#!/usr/bin/python3
str='Runoob'
print(str)#输出字符串
print(str[0:-1])#输出第一个到倒数第二个的所有字符
print(str[0])#输出字符串第一个字符
print(str[2:5])#输出从第三个开始到第五个的字符
print(str[2:])#输出从第三个开始的后的所有字符
print(str*2)#输出字符串两次
print(str+'你好')#连接字符串
print('------------------------------')
print('hello\nrunoob')#使用反斜杠(\)+n转义特殊字符
print(r'hello\nrunoob')#在字符串前面添加一个r,表示原始字符串,不会发生转义,r指raw,即raw string.
Runoob
Runoo
R
noo
noob
RunoobRunoob
Runoob你好
------------------------------
hello
runoob
hello\nrunoob
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始.类和函数入口之间也用一行空行分隔,以突出函数入口的开始.
空行与代码缩进不同,空行并不是python语法的一部分.书写时不插入空行,python解释器运行也不会出错.但是空行的作用在于分隔两端不同功能或含义的代码,便于日后代码的维护或重构.
注意:空行也是程序代码的一部分.
input()函数会等待用户输入:
input("按下enter键后退出.")
一旦用户按下enter键时,程序将退出.
python可以在同一行中使用多条语句,与句之间使用分号(;)分隔:
import sys;x='test';sys.stdout.write(x+'\n')
使用交互式命令行执行,输出:
test
5#5表示字符数,'\n'也算一个字符
缩进相同的一组语句构成一个代码块,我们称之为代码组.
想if,while,def和class这样的符合语句,首行以关键字开始,以冒号(:)结束,改行之后的一行或多行代码构成代码组.
我们将首航及后面的代码组称为一个子句(clause).
print默认输出是换行的,如果要实现不换行需要在变量末尾加上end="".
print打印的时候双引号和单引号都可以当做定界符使用,且可以嵌套.被嵌套的水杯解释成标点符号,但是嵌套时注意单引号只能嵌套双引号,双引号只能嵌套单引号,三引号可以嵌套双引号和单引号.
x="a"
y="b"
#换行输出
print(x)
print(y)
print('---------')
#不换行输出
print(x,end="")
print(y,end="")
print()
a
b
---------
a b
在python用import或者from...import来导入相应的模块.
将整个模块(somemodule)导入,格式为:import somemodule
从某个模块中导入某个函数,格式为:from somemodule import somefunction
从某个模块中导入多个函数,格式为:from somemodule import firstfunc,secondfunc,thirdfunc
将某个模块中的全部函数导入,格式为:from somemodule import*
很多程序可以执行一些操作来查看一些基本信息,python可以使用-h参数查看各参数帮助信息:
$python-h
usage:python[option]...[-c cmd|-m mod|file|-][arg]...
Options and arguments(and corresponding environment variables):
-c cmd:program passed in as string(terminates option list)
-d:debug output from parser(also PYTHONDEBUG=x)
-E:ignore environment variables(such as PYTHONPATH)
-h:print this help message and exit
[etc.]#Linux系统下命令
具体使用可以参照Python3命令行参数网址:
http://www.runoob.com/python3/python3-command-line-arguments.html
调用python的help()函数可以打印输出一个函数的文档字符串:
#如下实例,查看max内置函数的参数列表和规范的文档
>>>help(max)
max(iterable,*[,default=obj,key=func])->value
max(arg1,arg2,*args,*[,key=func])->value
With a single iterable argument,return its biggest item.The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
With two or more arguments,return the largest argument.
如果仅仅想得到文档字符串:
print(max.___doc___)
python中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建.在python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型.等号(=)用来给变量赋值.
等号(=)运算符左边是一个变量名,等号(=)运算符邮编是存储在变量中的值.
counter=100#整型变量
miles=1000.0#浮点型变量
name="runoob"#字符串
print(counter)
print(miles)
print(name)
100
1000.0
runoob
python允许你同时为多个变量赋值:
a=b=c=1
以上实例,创建一个整形对象,值为1,从后向前赋值,三个变量都指向同一个内存地址.你也可以为多个对象指定多个变量.
a,b,c=1,2,'test'
以上实例,两个整形对象1和2的分配个变量a和b,字符串对象'test'分配给变量c
python中有六个标准的数据类型:
Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Set(集合)
Dictionary(字典)
Number(数字),String(字符串),Tuple(元组)
List(列表),Dictionary(字典),Set(集合)
python中支持int,float,bool,complex(复数).
在python3中,只有之中整数类型int,表示为长整型,没有python2中的Long.
python支持复数,复数由实数部分和虚数部分构成,可以用a+bj或者complex(a,b)表示,复数的实部a和虚部b都是浮点型
像大多数语言一样,数值类型的赋值和计算都是很直观的.
内置的type()函数可以用来查询变量所指的对象类型:
a,b,c,d=20,5.5,True,4+3j
print(type(a),type(b),type(c),type(d))
#输出:<class'int'><class'float'><class'bool'><class'complex'>
此外,还可以用isinstance来判断(对象讲完就清楚了)
注意:
python可以同时为多个变量赋值,如a,b=1,2.
一个变量可以通过赋值指向不同类型的对象.
数值的除法包含两个运算符:/返回一个浮点数,//返回一个整数.
在混合计算时,python会把整型转换成浮点型.
>>>5+4#加法
9
>>>4.3-2#减法
2.3
>>>3*7#乘法
21
>>>2/4#除法,得到一个浮点数
0.5
>>>2//4#除法,得到一个整数
0
>>>17%3#取余
2
>>>2**5#乘方
32
type和isinstance的区别:
class A:
pass
class B(A):
pass
isinstance(A(),A)#returns True
type(A())==A#returns True
isinstance(B(),A)#returns True
type(B())==A#returns False
type()不会认为子类是一种父类类型
isinstance()会认为子类是一种父类类型
当制定一个值时,Number对象就会别创建:
var1=1
var2=10
这个时候可以使用del语句删除一些对象应用:
del var1[,var2[,var3...]]#[]的意思代表可选
即可以用del删除单个或多个对象:
del var1
del var1,var2
python中的字符串用单引号'或双引号"括起来,同时使用反斜杠\转义特殊字符.
字符串的截取的语法格式:
变量[头下标:尾下标]
字符串索引值以0为开始值,-1为从末尾的开始位置
加号+是字符串的连接符,星号*表示复制当前字符串,紧跟的数字为复制的次数.
python使用反斜杠(\)转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面加一个r,表示原始字符串.
另外,反斜杠(\)可以作为续行符,表示下一行是上一行的延续。也可以使用"""..."""或者'''...'''跨越多行.
Python没有单独的字符类型,一个字符就是长度为1的字符串.
与C字符串不同的是,朋友后字符串不能被改变.向一个索引位置赋值,比如word[0]='n'会导致错误.
注意:
1.反斜杠可以用来转义,使用r可以让反斜杠不发生转义
2.字符串可以用+运算符连接在一起,用*运算符重复
3.python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始
4.python中的字符串不能改变
str='Runoob'
print(str)#输出字符串
print(str[0:-1])#输出第一个到倒数第二个的所有字符
print(str[0])#输出字符串第一个字符
print(str[2:5])#输出从第三个开始到第五个的字符
print(str[2:])#输出从第三个开始的后的所有字符
print(str*2)#输出字符串两次
print(str+"TEST")#连接字符串
Runoob
Runoo
R
noo
noob
RunoobRunoob
RunoobTEST
List(列表)是python中使用最频繁的数据类型.
列表可以网何从大多数集合类的数据结构实现.列表汇总元素的类型可以不相同,他支持数字,字符串甚至可以包含列表(所谓嵌套).
列表时写在方括号[]之间,用逗号分科开的元素列表.
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表.
列表截取的语法格式如下:
变量[头下标:尾下标]
索引值以0位开始值,-1为从末尾的开始位置.
加号+是列表连接运算符,星号*是重复操作.
与python中的字符串不以言的是,列表中的元素是可以改变的:
>>>a=[1,2,3,4,5,6]
>>>a[0]=9
>>>a[2:5]=[13,14,15]
>>>a
[9,2,13,14,15,6]
>>>a[2:5]=[]#将对应的元素值设置为[]
>>>a
[9,2,6]
Lis和他内置了有很多方法,例如append(),pop()等等,这在后面会讲到.
注意:
List写在方括号之间,元素用逗号隔开.
2.和字符串一样,list可以被索引和切片.
3.list可以是哟红+操作符进行拼接.
4.list中的元素是可以改变的.
list=['abcd',786,2.23,'runoob',70.2]
tinylist=[123,'runoob']
print(list)#输出完整列表
print(list[0])#输出列表第一个元素
print(list[1:3])#从第二个开始输出到第三个元素
print(list[2:])#输出从第三个元素开始的所有元素
print(tinylist*2)#输出两次列表
print(list+tinylist)#连接列表
['abcd',786,2.23,'runoob',70.2]
abcd
[786,2.23]
[2.23,'runoob',70.2]
[123,'runoob',123,'runoob']
['abcd',786,2.23,'runoob',70.2,123,'runoob']
元组(tuple)与列表类似,不同之处在于元组的元素不能修改.元组写在小括号()例,元素之间用逗号隔开.
元组中的元素类型可以不相同.
元素与字符串类似,可以被索引且下标索引从0开始,-1为从末尾开始的位置.也可以进行截取(类似于列表).
其实,可以把字符串看一种特殊的元组.
修改元组的操作是非法的:
>>>tup=(1,2,3,4,5,6)
>>>print(tup[0])
1
>>>print(tup[1:5])
(2,3,4,5)
>>>tup[0]=11#修改元组元素的操作是非法的
Traceback(most recent call last):
File"<stdin>",line 1,in<module>
TypeError:'tuple'object does not support item assignment
>>>
虽然元组的元素不可改变,但它可以博爱涵可变的对象,比如list列表.
构造包含0个或1个元素的元组比较特殊,所以有一些额外的语法规则:
tup1=()#空元组
tup2=(20,)#一个元素,需要在元素后添加逗号
string,list和tuple都属于sequence(序列).
注意:
1.与字符串一样,元组的元素不能修改,
2.元组也可以被索引和切片,方法一样。
3.注意构造包含0或1各位元素的元组的特殊语法规则。
4.元组也可以使用+操作符进行拼接.
tuple=('abcd',786,2.23,'runoob',70.2)
tinytuple=(123,'runoob')
print(tuple)#输出完整元组
print(tuple[0])#输出元组的第一个元素
print(tuple[1:3])#输出从第二个元素开始到第三个元素
print(tuple[2:])#输出从第三个元素开始的所有元素
print(tinytuple*2)#输出两次元组
print(tuple+tinytuple)#连接元组
('abcd',786,2.23,'runoob',70.2)
abcd
(786,2.23)
(2.23,'runoob',70.2)
(123,'runoob',123,'runoob')
('abcd',786,2.23,'runoob',70.2,123,'runoob')
集合(set)是一个无序不重复元素的序列.
基本功能是进行成员关系测试和删除重复元素.
可以使用大括号{}或set()函数创建集合,
注意:创建一个空集合必须使用set()而不是{},因为{}是用来创建一个空字典.
student={'Tom','Jim','Mary','Tom','Jack','Rose'}
print(student)#输出集合,重复的元素被自动去掉
#成员测试
if'Rose'in student:
print('Rose在集合中')
else:
print('Rose不在集合中')
#set可以进行集合运算
a=set('abracadabra')
b=set('alacazam')
print(a)
print(a-b)#a和b的差集
print(a|b)#a和b的并集
print(a&b)#a和b的交集
print(a^b)#a和b中不同时存在的元素
{'Mary','Jim','Rose','Jack','Tom'}
Rose在集合中
{'b','a','c','r','d'}
{'b','d','r'}
{'l','r','a','c','z','m','b','d'}
{'a','c'}
{'l','r','z','m','b','d'}
字典是python中另一个非常有用的内置数据类型.
列表时有序的对象集合,字典是无序的对象集合.两者之间的区别在于:
字典当中的元素是通过键来存取的,而不是通过偏移(索引)存取.
字典是一种映射类型,字典用"{}"表示,他是一个无序的键(key):值(value)对集合.
键(key)必须使用不可变类型.
构造函数dict()可以直接从键值对序列中构建字典如下:
>>>dict([('Runoob',1),('Google',2),('Taobao',3)])
{'Taobao':3,'Runoob':1,'Google':2}
>>>{x:x**2 for x in(2,4,6)}#字典生成式,暂不用关注
{2:4,4:16,6:36}
>>>dict(Runoob=1,Google=2,Taobao=3)
{'Taobao':3,'Runoob':1,'Google':2}
字典也有一些内置的函数,例如clear(),keys(),values()等
注意:
1.字典是一种映射类型,他的元素是键值对.
2.字典的关键字必须为不可变类型,切不能重复.
3.创建空字典使用{}.
dict={}
dict['one']="1-陈有德"
dict[2]="2-有德"
tinydict={'name':'runoob','code':1,'site':'www.runoob.com'}
print(dict['one'])#输出键为'one'的值
print(dict[2])#输出键为2的值
print(tinydict)#输出完整的字典
print(tinydict.keys())#输出所有键
print(tinydict.values())#输出所有值
1-陈有德
2-有德
{'name':'runoob','site':'www.runoob.com','code':1}
dict_keys(['name','site','code'])
dict_values(['runoob','www.runoob.com',1])
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可.
以下几个内置的函数可以执行数据类型之间的转换.这些函数返回一个新的对象.表示转化你的值.
int(x[,base])将x转为一个整数
float(x)将x转换到一个浮点数
complex(real[,imag])创建一个复数
str(x)将对象x转换为字符串
repr(x)将对象转为表达式字符串,如果该对象是运算(字符串包含的运算无效),输出运算结果,相当于print(),eval(repr(obj))=obj
eval(str)用来计算在字符串中的有效python表达式,并返回一个对象,如果字符串包含运算,会输出结果
tuple(s)将序列s转换为一个元组
list(s)将序列s转换为一个列表
set(s)转换为可变集合
dict(d)创建一个字典.d必须是一个序列(key,value)元组
frozenset(s)转换为不可变集合
chr(x)将一个整数准换为一个字符
ord(x)将一个字符准换为它的整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串
在命令提示符输入'python'启动python解释器,然后输入python语句
该方法较脚本式执行效率高,开发效率较之低
通过该命令
python hello.py
执行脚本
该方法执行效率较交互式式低,开发效率较之高
一般都用pycharm这类IDE工具进行编程.
python中单行注释以#开头.
三单引号'''
'''
第一行注释内容
第二行注释内容
'''
三双引号""",与单引号同理
注意:一般三引号注释还用于函数的注释
range()函数可创建一个整数列表
range()函数的语法:range(start,stop[,step])
计数从start开始,默认是从0开始
计数充stop结束,但不包括stop
step步长默认为1,可选项
>>>range(10)#从0开始到10
[0,1,2,3,4,5,6,7,8,9]
>>>range(1,11)#从1开始到11
[1,2,3,4,5,6,7,8,9,10]
>>>range(0,30,5)#步长为5
[0,5,10,15,20,25]
>>>range(0,10,3)#步长为3
[0,3,6,9]
>>>range(0,-10,-1)#负数
[0,-1,-2,-3,-4,-5,-6,-7,-8,-9]
>>>range(0)
[]
>>>range(1,0)
[]
#在for循环上的使用
>>>x='runoob'
>>>for i in range(len(x)):
...print(x[i])
...
r
u
n
o
o
b
>>>
sum()函数的作用是对一系列数进行求和计算
sum()函数的语法:sum(iterable[,start])
iterable指可迭代对象,如列表,元素,集合
start指指定相加的参数,默认为0
sum()函数的返回值:返回计算结果
>>>sum([0,1,2])
3
>>>sum((2,3,4),1)#元组计算总和后再加1
10
>>>sum([0,1,2,3,4],2)#列表计算总和后再加2
12
陈某不才,有问题的地方还望各位高仁指出,先谢啦!!!