简明的python基础"/>
简明的python基础
简明的python基础
一、简单的输出
-
print的基础用法:print默认换行,如果要实现不换行,需要指定结尾符号 end=’’
print("Hello"); print("Hello",end=' ') print("world!");
二、变量与基本数据类型
-
每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,赋值号是“=”。
-
python中 的变量赋值不需要数据类型的声明,数据类型根据具体的赋值确定。
-
标识符:
- 在python中,标识符由字母、数字、下划线组成
- 在python中,所有的标识符可以包括英文、数字以及下划线_,但不能以数字开头。
- 标识符是区分大小写的
- python3中直接支持中文符号,包括标识符名
-
保留字: 保留字不能作常数或变数,或任何其它标识符名称。所有python的关键字只包含小写字母。
-
Numbers(数字)数据类型:用于存储数值。python支持不同 的数字类型:int,float,complex(复数),布尔类型。python支持很长的整数。
三、注释
- 单行注释用“#”
- 多行注释用‘’‘或者“”“
四、基本运算
-
算术运算
运算符包括:+,-,*,/,//(取整除,返回商的整数部分),%
-
比较运算
比较运算符:>,<,==,<=,>=,!=
比较运算符的结果为True,或者是False。
-
赋值运算
运算符:=,+=,-=,*=。/=,%=,**=,//=
-
逻辑运算
运算符: and(与),or(或),not(非);
逻辑运算中,非0 的值视作True。
逻辑运算中,False的值就是0.
逻辑运算中,True的值就是1.
逻辑运算中,非0 的值只是视作True,但并不等于True。只有1等于true。
逻辑”或“ or : x or y如果x是true,则返回True,否则返回y的计算值。
逻辑”非“ not: not x ,如果x为true,则返回false;如果x为False,则返回True。
五、字符串
-
字符串可以用双引号,也可以用单引号。
-
能够通过某一种标示的字符串中使用另外一种标示符。
print("He said 'Hello'") 输出:He said 'Hello'
-
转义字符是反斜杠"", 如果不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串。
-
多行字符串可以通过三个连续的单引号(’’’)或是双引号(""")来进行标示。
-
使用+ 进行字符串链接。
"Hello"+" World" 输出:Hello World
-
使用* 进行字符串链接
“Bye” * 2 输出:ByeBye
-
python中没有单独的单个字符类型,要注意字符串和数字之间的区别。
4+5 输出:9 "4"+"5" 输出:45
六、list列表
-
列表是python中使用最频繁的数据类型。列表是写在方括号[]之间、元素之间用逗号分隔开。
list1= [1,2,3,4,5,6] print(list1) 输出:[1,2,3,4,5,6]
-
列表中元素的类型可以不相同,它支持数字,字符串,甚至可以包含列表(嵌套)。
list2=[1,2,3,4,5,6,"Hello World",[8,9,10,11,12]] peint(list2) 输出:[1,2,3,4,5,6,"Hello World",[8,9,10,11,12]]
-
列表元素访问:可以通过索引(下标)来访问列表元素。单个列表元素访问的语法格式为:列表名[下标]。注意:下标访问不要越界。
-
列表截取(切片)的语法格式为:列表名[头下标:尾下标]
list3=[1,2,3,4,5,6] list3[0:3] 输出:[1,2,3] #列表截取(切片)返回一个包含所需内容的新列表。 #结果不包含尾下标那个元素。 list3[-3:-1] 输出:[4,5] #切片步长 list3[::2] 输出:[1,3,5]
-
访问嵌套列表:层层深入
list4 = [1,2,3,4,5,6,"hello python",[8,9,10,11,12]] print(list4[-1][1:]) 输出:[9,10,11,12]
-
字符串元素访问
-
字符串是一种特殊列表,可以按照列表元素的访问方法来访问字符串中的元素。
str1= "hello,changsha!" print(str1[2:5]) 输出:llo
-
七、tuple元组
-
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号()里,元素之间用逗号隔开。元组中元素的类型可以不同,和列表类似,也支持嵌套。
tuple1=(1,2,3,4,5,6,"hello python",[8,9,10,11,12],(13,14)) print(tuple1) 输出:(1,2,3,4,5,6,"hello python",[8,9,10,11,12],(13,14))
-
元组的元素访问和截取方式和列表相同,通过下标来操作。
-
元组一旦定义好不能修改,是只读的。
八、set集合
-
集合(set)是一个无序、且不含重复元素的序列。集合主要用来进行成员关系测试和删除重复元素。可以用大括号{}或者set()函数创建集合。
#自动去除重复元素 set1={1,2,35,5,3,1} print(set1) 输出:{1,3,5}
-
集合的操作:交,并,差,补。
set1={1,2,3} set2={2,4,5} #集合的并 set1|set2 输出:{1,2,3,4,5} #集合的交 set1&set2 输出:{2} #集合的差 set1-set2 输出:{1,3} #集合的补,两个集合中不同时存在的元素集合 set1^set2 输出:{1,3,4,5} #集合的计算 (set1|set2)-(set1&set2) 输出:{1,3,4,5}
九、Dictionary字典
- 字典是一种映射类型,用"{}"标识,它是一个无序的建(key):值(value)对 集合建(key)必须使用不可变类型,在同一个字典中,建(key)是唯一的字典当中的元素是通过建来存取的。
dict1= {"name":"giggle","height":176,"weight":72}
dict1["height"]
输出:176
#修改字典某项的值
dict1["weight"]=73
print(dict1)
输出:{'weight':73,'name':'giggle','height':176}
#在字典中增加一项
dict1["set"]="M"
print(dict1)
输出:{'weight':73,'name':'giggle','height':176,'sex':'M'}
-
构建字典
#构建空字典 dict2= {} print(dict2) 输出:{} #通过元组序列构建字典 dict2=dict({('name','giggle'),('height',176)}) print(dict2) 输出:{'name':'giggle','height':176}
-
字典内建方法
字典类型也有一些内置的函数,例如:clear()、keys()、values()
dict2.keys() 输出:dict_keys({'name','height'}) dict2.values() 输出:dict_values({'giggle',176}) dict2.clear() print(dict2) 输出:{}
十、类型转换
-
数据类型转换,只需要将数据类型作为函数名即可使用。这些函数返回一个新的对象,标示转换的值,如:int(),float()和str()
x= "6" print(x,type(x)) x=int("6") print(x,type(x)) 输出: 6 <class 'str'> 6 <class 'int'>
-
字符和数字的转换要使用 ord()和chr()
ord("a") 输出:97 chr(65) 输出:'A'
-
表达式计算:表达式字符串到数值的转换
x = 8 calc = "5*x+9" eval(calc) 输出”49
十一、python的行规则
- python中没有强制的语句终止字符
- python语句中一般以新行(换行)作为语句的结束符
- 直接把一条长语句中间断开成多行不行!可以使用斜杠()将一行的语句分为多行显示。
- 语句中包含[],{},()括号就不需要使用多行连接符
十二、流程控制
-
三种基本结构:顺序、条件(选择、分支)、循环
-
条件语句
- 语句结构1
if 条件表达式:
语句块1
-
代码块是通过缩进来指示的
-
缩进表示一个代码块的开始,逆缩进则表示一个代码块的结束。
-
声明以冒号:字符结束,并且开启一个缩进级别
print("请输入体重(kg):") weight=float(input())if weoght >90 :print("胖子,你该减肥了!!!")
输出:
请输入体重(kg):
100
胖子,你该减肥了!!!
70
-
语句结构2
if 条件表达式:
语句块1
else:
语句块2
print("请输入体重(kg):") weight=float(input())if weoght >90 :print("胖子,你该减肥了!!!") else:print("小样,身材保持不错呀!")
输出:
请输出体重(kg):
100
胖子,你该减肥了!!!
70
小样,身材保持不错呀!
-
语句结构3
if 条件表达式1:
语句块1
elif 条件表达式2:
语句块2
else:
语句块3
#条件语句:计算BMI指数
print("请输入体重(kg):")
weight=float(input())
print("请输身高(m):")
height=float(input())BMI=weight/height**2if BMI<20:print("你的 BMI指数是%.2f,太轻了哟!" %BMI)
elif BMI>25:print("你的BMI指数是%。2f,太重了哟!"%BMI)
else:print("你的BMI指数是%。2f,非常正常,请保持!"%BMI)
请输入体重(kg):
72
请输入身高(m):
1.76
你的BMI指数是23.24,非常正常,请保持!
十三、循环语句
循环语句允许执行一条语句或语句块多次python提供了while循环和for循环
-
while循环
-
语句结构
while 条件表达式:
语句块
#统计6出现在2的100次方中的次数 num = 2**100 print(num) count=0 while num >0:if num % 10 == 6:count +=1;num =num //10print(count)
1267650600228229401496703205376
5
-
-
for循环语句
-
语句结构
for 循环变量 in 序列:
语句块
#统计5出现在2的100次方中的次数 num = 2**100 count = 0 for digit in str(num):if digit=="6":count+=1 print(count)
5
-
-
使用for和range来枚举列表中的元素
#第一种:输出从0 开始的十个数 for i in range(10)print(i) #输出:0,1,2,3,4,5,6,7,8,9 #第二种:输出从1开始到10号位置的数 for i in range(1,10)print(i) #输出:1,2,3,4,5,6,7,8,9
-
列表推导式
-
列表推导式(list Comprehension)提供了一个创建和操作列表的有力工具。
-
列表推导式由一个表达式以及紧跟着这个表达式的for语句构成,for语句还可以跟0个或多个if或for语句
lst1 = [1,2,3]
lst2 = [3,4,5]
[x*y for x in lst1 for y in lst2]
#输出:[3,4,5,6,8,10,9,12,15]
- 数值判断可以链接使用,例如1<x<3能够判断变量x是否在1和3之间
[x for x in lst1 if 4 >x >1]
#输出:[2,3]
-
循环嵌套(多重循环)
#九九乘法表 for i in range(1,10):for j in range(1,i +1):result = j * iprint('%s x %s = %-5s' % (j,i,result), end=' ')print()
十四、break语句
-
break语句用在while和for循环中
-
break语句用来终止循环语句,即循环条件没有False或者序列还没被完全递归完,也会停止执行循环语句
#统计第一个9在2的100次方中出现的位置 num = 2 **100 pos =0 for digit in str(num):pos+=1;if digit == "9":break print("2**100 is : %d \n the first posion of 9 is pos.%d" %(num,pos))
-
如果在嵌套循环中,break语句将停止执行本层的循环
十五、continue语句
continue语句用来跳过当前循环的剩余语句,然后继续进行下一轮循环
#求在2 的100次方中删除所有的9后的数字
num = 2**100
without9 = ''
for digit in str(num):if digit =='9':continuewithout9+=digit
print("2**100 is :%d \n without 9 is :%s" %(num,without9))
十六、pass语句
pass语句是空语句,是为了保持程序结构的完整性,一般用做占位语句
#求在2 的100次方中删除所有的9后的数字
num = 2**100
without9 = ''
for digit in str(num):if digit =='9':passelse:without9+=digit
print("2**100 is :%d \n without 9 is :%s" %(num,without9))
十七、函数
-
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
-
函数能提高应用的模块性,和代码的重复利用率
-
python提供了许多内建函数,比如:print()
-
开发者也可以自己创建函数,这被叫做用户自定义函数
-
函数定于语法:
def functionname(parameters):
"函数_文档字符串"
function_suitr
return [expression]
-
函数通过"def"关键字进行声明,后接函数标识符名称和圆括号()
-
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数
-
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None
#定义一个求n!的函数 def fact(n):result=1for i in range(1,n+1):return resultfact(5) #输出:120
#打印一张从0-9的阶层表,每2个一行 for i in range(0,9+1):item = fact(i)print("%i !=%-10d" %(i,item),end=" ")if i%2==1:print()
-
可选参数以集合 的方式出现在函数声明中并紧跟着必须参数,可选参数可以在函数声明中被赋予一个默认值。已命名的参数需要赋值。
-
函数的第一个语句可以选择性地使用文档字符串——用于存放函数说明
-
函数可以返回一个元组(使用元组拆包可以有效返回多个值)
十八、全局变量与局部变量
- 全局变量在函数之外声明
- 局部变量在函数内声明
- 函数参数也是局部变量,不需要在函数内部重复定义!
- 全局变量可以不需要任何特殊的声明即能读取,但如果想要修改全局变量的值,就必须在函数开始之处用global关键字进行声明,否则Python将此变量按照新的局部变量处理
十九、类class
-
类(class) 用来描述具有相同的属性和方法的对象的集合
-
它定义了该集合中每个对象所共有的属性和方法
-
对象是类的实例
-
使用class语句来创建一个新类,class之后为类的名称并以冒号结尾:
class ClassName:
‘类的帮助信息’ #类文档字符串
class_suite #类体
class_suite 由类成员,方法,数据属性组成
#定义一个叫做DeepLearner的类 class DeepLearner(object):'DeepLearner是深度学习者的类,这是有关这个类的帮助文档'#learnerCount变量是一个类的属性,它的值将在这个类的所有实例之间共享。你可以在内部类或着外部类使用DeepLearner.learnerCount访问learnerCount = 0#__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法#类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,按照惯例它的名称是self#self代表类的实例,参数self在定义类的方法时是必须要的,虽然在调用是不必传入相应的参数def __init__(self , name, schoolName):self.name = name self.schoolName =schoolNameDeepLearner.learnerCount =DeepLearner.learnerCount+1def getName(self):return self.namedef getschoolName(self):return self.schoolNamedef displayCount(self):print("Total DeepLearner count is %d" % DeepLearner.learnerCount)def displayLearner(self):print("Name: %s,school: %s" % (self.name,self.schoolName))
-
打印类帮助文档信息
print(DeepLearner.__doc__)
-
实例化和调用
#实例化其他编程语言中一般用关键字new,但是在python中并没有这个关键字,类的实例化类似函数调用方式 #新建一个对象newLearner1 = DeepLearner('giggle','zhejiang University') newLearner2 = DeepLearner('sherry','zhejiang University') #使用点号.来访问对象的属性和方法print(DeepLearner.learnerCount) newLearner1.displayCount() newLearner2.displeyCount() print(newLearner1.getName(),newLearner1.getschoolName()) print(newLearner2.getName(),newLearner2.getschoolName()) newLearner1.displayLearner() newLearner2.displayLearner()
输出:
2
Total Deeplearner count is 2
Total Deeplearner count is 2
giggle zhejiang University
sherry zhejiang University
Name:giggle,School:zhejiang University
Name:sherry,School:zhejiang University
二十、文件
python针对文件的处理有很多内建的函数库可以调用
-
写文件
#写文件 with open("text.txt","wt") as out_file:out_file.write("该文本会写入到文件中\n看到我了吧!") #读文件read a file with open("text.txt","rt") as in_file:text= in_file.read() print(text)
输出:
该文本会写入到文件中
看到我了吧!
二十一、异常
Python中的异常由try-excrpt[exceptionname]块处理
def except_function():try:#故意除零10/0except ZeroDivisionErrot:print("发生除零异常啦。")else:#正常情况print("一切正常啦。")passfinally:#无论是否发生异常都将执行最后的代码print("finally 必须被执行,不管有没有发生异常。")except_function()
发生除零异常啦。
finally必须被执行,不管有没有发生异常。
二十二、导入外部库
-
外部库可以使用import[libname]关键字来导入
-
可以用from [libname] import [funcname] 来导入所需要的函数
improt random form time import clock import numpy as np import matplotlib.pyplot as pltrandomint = random.randint(1,100) print(randomint)
77
二十三、获取帮助信息
-
调用dir()来显示该对象的所有方法
dir(1)
-
调用help()会显示其文档
help(init)
更多推荐
简明的python基础
发布评论