Python入门基础知识点实例分析


这篇文章主要介绍“Python入门基础知识点实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python入门基础知识点实例分析”文章能帮助大家解决问题。在 Python 中,所有标识符可以包括英文(区分大小写的)、数字以及下划线(_),但不能以数字开头。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。以双下划线开头的 __foo 代表类的私有成员,以双下划线开头和结尾的 __ foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。Python 的代码块中必须使用相同数目的行首缩进空格数python中单行注释采用 # 开头。python 中多行注释使用三个单引号(‘’’)或三个双引号(“””)。

#Python语句中一般以新行作为语句的结束符。但是我们可以使用【斜杠()】将一行的语句分为多行显示,
#语句中包含[],{}或()括号就不需要使用多行连接符。
#Python可以在同一行中使用多条语句,语句之间使用【分号(;)】分割
total=item_one+
item_two+
item_three
days=['Monday','Tuesday','Wednesday',
'Thursday','Friday']

#Python可以在同一行中使用多条语句,语句之间使用【分号(;)】分割。
importsys;x='runoob';sys.stdout.write(x+'n')

#Python可以使用【引号(')、双引号(")、三引号('''或""")】来表示字符串
word='word'
sentence="这是一个句子。"
paragraph="""这是一个段落。
包含了多个语句"""

#print默认输出是换行的,如果要实现【不换行需要在变量末尾加上逗号】。
printx,y

Python3 中有六个标准的数据类型:Number(数字)String(字符串)List(列表)Tuple(元组)Set(集合)Dictionary(字典)Python3 的六个标准数据类型中:不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。int、float、bool、complex(复数)内部函数中,strings, tuples, 和 numbers 是不可更改的对象,全局变量必须为init变量或者在函数中用self定义;而 list,dict 等则是可以修改的对象,内部函数可以直接使用函数中的局部变量。

counter=100#赋值整型变量
miles=1000.0#浮点型
name="John"#字符串

二进制转换:
int('10',2)
>2
bin(10)
>'0b1010'
bin(10)[2:]

ord(c)#c为字符
#返回值:对应的十进制整数(ASCll数值)
int(c)#c为字符,转化为对应的数字

float('-inf')#最小值
-inf

a=b=c=1
a,b,c=1,2,"john"

all()#函数用于判断给定的可迭代参数iterable中的所有元素是否都为TRUE,如果是返回True,否则返回False。

#从左到右索引默认【0开始的】,最大范围是字符串【长度少1】
#从右到左索引默认【-1开始的】,最大范围是【字符串开头】
#第三个参数,参数作用是【截取的步长】
s="a1a2an"#n>=0

向上取整:math.ceil()
向下取整:math.floor()、整除"//"
四舍五入:round()——奇数向远离0取整,偶数去尾取整;或言之:奇数进位,偶数去尾
向0取整:int()

tinylist=[123,'john']
printlist[0]#输出列表的第一个元素
printlist[1:3]#输出第二个至第三个元素
printlist[2:]#输出从第三个开始至列表末尾的所有元素

#二维数组
num_list=[[0]*5foriinrange(2)]
dp=[[1]*n]+[[1]+[0]*(n-1)for_inrange(m-1)]

clone_node.neighbors=[self.cloneGraph(n)forninnode.neighbors]

#加号+是列表连接运算符,星号*是重复操作
printtinylist*2#输出列表两次
printlist+tinylist#打印组合的列表

list.append('Google')#使用append()添加元素
dellist[2]			#可以使用del语句来删除列表的元素
list.pop(3)			#指定pop参数,将会删除该位置的元素;无参数时默认删除最后一个元素

list.append(sublist)#引用传递
list.append([]+sublist)#值传递
list.append(list(path))

len([1,2,3])	3	#长度
[1,2,3]+[4,5,6]	[1,2,3,4,5,6]	#组合
['Hi!']*4	['Hi!','Hi!','Hi!','Hi!']	#重复
3in[1,2,3]	True	#元素是否存在于列表中
forxin[1,2,3]:printx,	123	#迭代

[::-1]#数组反转

max(list)#求list的最大值

sum(sp[i]foriinrange(n))#求和
sum(sinjewelsSetforsinstones)

nums.sort()#排序
score.sort(reverse=True)
list有一个sort方法,list.sort()将list进行排序,返回None
sort(*,key=None,reverse=False)
key是一个函数,这个函数的作用是从list的每个元素中提取用于当作排序依据的属性
默认是从小到大,即reserve为False的时候,如果reserve为True,排列顺序就是从大到小
deff(item):
returnitem[1]
list.sort(key=f)
list.sort(key=lambdaitem:item[0])

sorted(iterable,*,key=None,reverse=False)#默认正序排列
sorted(dict.items(),key=lambdaitem:item[0])
res=sorted(hash,key=lambdaword:(-hash[word],word))#第一个参数-hash[word]即单词出现次数的相反数
#当词频相同时,用第二个参数word进行排序,即字母正序排列

列表解析ListComprehensions
表达式:[expressionforiter_valiniterableifcond_expr]
[expression]:最后执行的结果
[foriter_valiniterable]:这个可以是一个多层循环
[ifcond_expr]:两个for间是不能有判断语句的,判断语句只能在最后;顺序不定,默认是左到右。

print[(x,y)forxin[1,2]foryin[3,4]]

for(k1,v1),(k2,v2)inzip(dict_one,dict_two):#遍历两个list或者dict

foriteminproduct([1,2],[10,20]):#对矩阵做笛卡尔积
print(item)
fori,jinproduct(range(m),range(n)):


neighbors=[(1,0),(1,-1),(0,-1),(-1,-1),(-1,0),(-1,1),(0,1),(1,1)]
forneighborinneighbors:
	r=(row+neighbor[0])
	c=(col+neighbor[1])
foru,vinneighbors:
	
s=[1,2,3,4,5]
#从指定索引1开始
forindex,valueinenumerate(s,1):

list(str(n))#int转化为字符串,转化为list

next(wordforword,finfreq.items()iff==maxFreq)#next()取list第一个值

map(max,grid)#求每行的最大值
map(max,zip(*grid))#求每列的最大值
strs=map(str,nums)#转换为list(str)
r1,m1=map(int,num1[:-1].split('+'))#list(str)转化为list(int)
list(map(list,numSet))

>>>a=[1,2,3]
>>>b=[4,5,6]
>>>c=[4,5,6,7,8]
>>>zipped=zip(a,b)#返回一个对象
>>>zipped

>>>list(zipped)#list()转换为列表
[(1,4),(2,5),(3,6)]
>>>list(zip(a,c))#元素个数与最短的列表一致
[(1,4),(2,5),(3,6)]
>>>a1,a2=zip(*zip(a,b))#与zip相反,zip(*)可理解为解压,返回二维矩阵式
>>>list(a1)
[1,2,3]
>>>list(a2)
[4,5,6]

#元组用()标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
tinytuple=(123,'john')

#字典用"{}"标识。字典由索引(key)和它对应的值value组成。
dict={}
dict['one']="Thisisone"
dict[2]="Thisistwo"

#值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。用列表就不行
dict[tuple(count)]

#以列表返回字典中的所有值
dict.values()
list(dict.values())

forkeyindict:
print(key)

tinydict={'name':'runoob','code':6734,'dept':'sales'}
printdict['one']#输出键为'one'的值
printdict[2]#输出键为2的值

printtinydict#输出完整的字典
printtinydict.keys()#输出所有键
printtinydict.values()#输出所有值
maxFreq=max(freq.values())#求value的最大值

tinydict['Age']=8#更新
tinydict['School']="RUNOOB"#添加

deltinydict['Name']#删除键是'Name'的条目
tinydict.clear()#清空字典所有条目
deltinydict#删除字典

defaultdict(list)defaultdict(int)#defaultdict类的初始化函数接受一个类型作为参数,当所访问的键不存在的时候,可以实例化一个值作为默认值:

count.get(c,0)#默认值为0

items():返回所有(key,value)元组的数组,类似于‘列表’
[sfors,cincnt.items()ifc==maxCnt]#遍历dict

dict排序
sorted(dict.items(),key=lambdaitem:item[0])

items=[(-val,key)forkey,valincount.items()]#变更为tuple
forval,keyinsorted(items):#遍历排序后的tuple

parame={value01,value02,...}
或者
set(value)

s.add(x)

s.update(x)#参数可以是列表,元组,字典等

s.remove(x)

s.discard(x)

len(s)

s.clear()

xins

forkeyinset:
print(key)

/ 除 – x除以y
% 取模 – 返回除法的余数
** 幂 – 返回x的y次幂
// 取整除 – 返回商的整数部分(向下取整)and x and y 布尔”与” – 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
or x or y 布尔”或” – 免费云主机域名如果 x 是非 0,它返回 x 的计算值,否则它返回 y 的计算值。
not not x 布尔”非” – 如果 x 为 True,返回 False 。is is 是判断两个标识符是不是引用自一个对象
is not is not 是判断两个标识符是不是引用自不同对象
is 与 == 区别
is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。

ifnum==3:#判断num的值
print'boss'elifnum==2:
print'user'elifnum==1:
print'worker'elifnum

i=1
whilei0:#非双数时跳过输出
continue
printi#输出双数2、4、6、8、10

i=1
while1:#循环条件为1必定成立
printi#输出1~10
i+=1
ifi>10:#当i大于10时跳出循环
break

flag=1
while(flag):print'Givenflagisreallytrue!'

fruits=['banana','apple','mango']
forfruitinfruits:#第二个实例
print('当前水果:%s'%fruit)

fruits=['banana','apple','mango']
forindexinrange(len(fruits)):
print('当前水果:%s'%fruits[index])

foriinreversed(range(length-1)):#逆序

forletterin'Python':#第一个实例
ifletter=='h':
break
print'当前字母:',letter

fori,chinenumerate(s):
	iffrequency[ch]==1:
		returni

diff=[(a,b)fora,binzip(s,goal)ifa!=b]

+	字符串连接	
>>>a+b
'HelloPython'

*	重复输出字符串	
>>>a*2
'HelloHello'

[]	通过索引获取字符串中字符	
>>>a[1]
'e'

[:]	截取字符串中的一部分	
>>>a[1:4]
'ell'

in	成员运算符-如果字符串中包含给定的字符返回True	
>>>"H"ina
True
notin	成员运算符-如果字符串中不包含给定的字符返回True	
>>>"M"notina
True

r/R	原始字符串-原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。	
>>>printr'n'
n
>>>printR'n'
n

strs='abcd'
forchinstrs:
print(ch)

strs='abcd'
forindexinrange(len(strs)):
print(strs[index],end='')

res+='a'*3#'aaa'

s.split("")#将字符串分割成单词列表

"".join(list)#将单词列表转换为字符串,以空格分隔

f'{bulls}A{cows}B'#{}计算格式化

a=list(str(n))#int转成list
a[i-1]=str(int(a[i-1])-1)#操作字符
int("".join(a))#list转化为int

isdigit#函数判断是否数字
isalpha#判断是否字母

print"Mynameis%sandweightis%dkg!"%('Zara',21)
%s	格式化字符串
%d	格式化整数
%f	格式化浮点数字,可指定小数点后的精度

允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符
>>>hi='''hi
there'''
>>>hi#repr()
'hinthere'
>>>printhi#str()
hi
there

string.count(str,beg=0,end=len(string))
#返回str在string里面出现的次数,如果beg或者end指定则返回指定范围内str出现的次数

string.endswith(obj,beg=0,end=len(string))
#检查字符串是否以obj结束,如果beg或者end指定则检查指定的范围内是否以obj结束,如果是,返回True,否则返回False.

string.find(str,beg=0,end=len(string))
#检测str是否包含在string中,如果beg和end指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1

string.format()
#格式化字符串

string.index(str,beg=0,end=len(string))
#跟find()方法一样,只不过如果str不在string中会报一个异常.

string.join(seq)
#以string作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串

string.replace(str1,str2,num=string.count(str1))
#把string中的str1替换成str2,如果num指定,则替换不超过num次.

string.split(str="",num=string.count(str))
#以str为分隔符切片string,如果num有指定值,则仅分隔num+1个子字符串

在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。
可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。在Python中,数字、字符或者元组等不可变对象类型都属于值传递,而字典dict或者列表list等可变对象类型属于引用传递
如果要想修改新赋值后原对象不变,则需要用到python的copy模块,即对象拷贝。
copy.copy属于浅拷贝,拷贝的是第一层list,而copy.deepcopy属于深拷贝,对list所有子元素都进行深拷贝。

#可写函数说明
defprintinfo(name,age=35):
"打印任何传入的字符串"
print"Name:",name
print"Age",age
return
#调用printinfo函数
printinfo(age=50,name="miki")
printinfo(name="miki")


#可写函数说明
defprintinfo(arg1,*vartuple):
"打印任何传入的参数"
print"输出:"
printarg1
forvarinvartuple:
printvar
return
#调用printinfo函数
printinfo(10)
printinfo(70,60,50)

importcopy
l1=[[1,2],3]
l2=copy.copy(l1)
l3=copy.deepcopy(l1)
l2.append(4)
l2[0].append(5)
l3[0].append(6)
l1=[[1,2,5],3]
l2=[[1,2,5],3,4]
l3=[[1,2,6],3]

#可写函数说明
sum=lambdaarg1,arg2:arg1+arg2
#调用sum函数
print"相加后的值为:",sum(10,20)
print"相加后的值为:",sum(20,20)

importsupport

fromfibimportfibonacci

frommathimport*

搜索路径
1、当前目录
2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。Python中的包
包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。 __init__.py 用于标识当前文件夹是一个包。考虑一个在 package_runoob 目录下的 runoob1.py、runoob2.py、 __init__.py 文件,test.py 为测试调用包的代码,目录结构如下:
test.py
package_runoob
|– __init__.py
|– runoob1.py
|– runoob2.py

#导入Phone包frompackage_runoob.runoob1importrunoob1frompackage_runoob.runoob2importrunoob2

runoob1()runoob2()

str=input("请输入:")
print"你输入的内容是:",str

fo=open("foo.txt","w")
print"文件名:",fo.name
print"是否已关闭:",fo.closed
print"访问模式:",fo.mode
print"末尾是否强制加空格:",fo.softspace

#打开一个文件
fo=open("foo.txt","w")
str=fo.read(10)
fo.write("www.runoob.com!nVerygoodsite!n")
#关闭打开的文件
fo.close()

importos
os.rename("test1.txt","test2.txt")
os.remove("test2.txt")

os.mkdir("test")
#将当前目录改为"/home/newdir"
os.chdir("/home/newdir")
#给出当前的目录
printos.getcwd()
#删除”/tmp/test”目录
os.rmdir("/tmp/test")

try:
正常的操作
......................
except:
发生异常,执行这块代码
......................
else:
如果没有异常执行这块代码

try:
fh=open("testfile","w")
fh.write("这是一个测试文件,用于测试异常!!")
exceptIOError:
print"Error:没有找到文件或读取文件失败"
else:
print"内容写入文件成功"
fh.close()

try-finally语句无论是否发生异常都将执行最后的代码。
try:

finally:
#退出try时总会执行
raise

try:
fh=open("testfile","w")
try:
fh.write("这是一个测试文件,用于测试异常!!")
finally:
print"关闭文件"
fh.close()
exceptIOError:
print"Error:没有找到文件或读取文件失败"

classEmployee:
'所有员工的基类'
empCount=0

def__init__(self,name,salary):
self.name=name
self.salary=salary
Employee.empCount+=1

defdisplayCount(self):
print"TotalEmployee%d"%Employee.empCount

defdisplayEmployee(self):
print"Name:",self.name,",Salary:",self.salary

"创建Employee类的第一个对象"
emp1=Employee("Zara",2000)
"创建Employee类的第二个对象"
emp2=Employee("Manni",5000)
emp1.displayEmployee()
emp2.displayEmployee()
print"TotalEmployee%d"%Employee.empCount

empCount 变量是一个类变量,它的值将在这个类的所有实例之间共享。你可以在内部类或外部类使用 Employee.empCount 访问。第一种方法__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

classA:#定义类A
.....

classB:#定义类B
.....

classC(A,B):#继承类A和B
.....

登录后复制

登录后复制

classParent:#定义父类
defmyMethod(self):
print'调用父类方法'

classChild(Parent):#定义子类
defmyMethod(self):
print'调用子类方法'

classParent:#定义父类
defmyMethod(self):
print'调用父类方法'

classChild(Parent):#定义子类
defmyMethod(self):
print'调用子类方法'

类的私有属性
__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。类的方法
在类的内部,使用 def 关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,不能在类的外部调用。在类的内部调用 self.__private_methods单下划线、双下划线、头尾双下划线说明:
__foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的。_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。关于“Python入门基础知识点实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: vue下elementui轮播图自适应高度问题怎么解决

本篇内容主要讲解“vue下elementui轮播图自适应高度问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue下elementui轮播图自适应高度问题怎么解决”吧!翻了下api 没有找到对应的属性,所…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/21 18:39
下一篇 02/21 18:39

相关推荐