内置函数
print input len type str int float list range
pop append insert keys split replace strip
remove clear
函数的特点:可以重复使用
函数的语法:def 关键字
函数名命名的规范:小写字母 不能以数字开头,不同的字母之间用下划线隔开
语法:
def 函数名:
函数体: #你希望这个函数体为你实现什么功能,
函数的调用: 函数名()
练习:
# 请把1-100连续的整数相加求和,写成一个函数
def sum(m,n):
sum=0
for item in range(m,n+1):
sum+=item
print("sum={0}".format(sum))
sum(1,100)
return 当你调用函数的时候,就会返回一个值,return后面的表达式
return 在函数里面相当于一个结束符号 表示函数到此为止,后面的代码不会被执行
#写函数,检查传入列表的长度,如果大于2,那么仅仅保留前两个长度的内容,并将新内容返回
def check_list(L):
if (len(L)>2):
new_list=L[0:2]
return new_list
L=[1,2,3,4]
res=check_list(L)
print(res)
动态参数 不定长参数 *args arguments
def make_sandwich(*args):
print(args)
make_sandwich("生菜","鸡蛋","培根")
关键字参数 key-value **kwargs key word 必须加**
def kw_function(**kwargs):
print(kwargs)
kw_function(x=1,y=2) // 运行结果为:{'x': 1, 'y': 2}
变量作用域
全局变量和局部变量
1、作用范围不一样 全局 在模块里面都能用 函数的局部只能用于函数
2、当全局和局部变量同名且同时存在的时候,函数优先调用局部变量
3、当局部变量没有 就优先用全局的
4、global 声明这是一个全局变量
a=1 #全局变量
def add(b):
a=5 #局部变量
print(a+b)
add(10) #运行结果为:15
print(a) #运行结果为:1
#输入num为四位数,对其按照如下的规定进行加密:
#(1) 每一位分别加5,然后分别将其替换为该数除以10取余后的结果
#(2) 将该数的第1位和第4位互换,第二位和第三位互换
#(3) 最后合起来作为加密后的整数输出
num=print("请输入四位数") #input是控制台获取数据,都是字符串形式
new_num=""
for item in num:
new_num+=str((int(item)+5)%10)
print(new_num[::-1])
为什么要学python ?
因为python中有非常丰富的库
怎么引入不同的模块?
第一步安装:
a.在线安装 打开cmd
1) pip install 模块名
2)使用国内源去进行安装
pip install 国内源地址 模块名
3)file——setting——project interpreter
b.离线安装
自己去python的官网或者是网上找到离线安装包
1)解压
2)拷贝解压后 的文件 到python安装路径
3) win+R 在cmd里面利用cd 一级一级的进入到安装包文件的路径 安装文件 setup.py
python setup.py install
文件安装到哪了?
lib-->sitepackage
#import email.mime.python_math
#一层一层的剥开
# email.mime.python_math.add(1,11)
from email.mime import python_math #推荐大家使用
file=open("python11.txt")
# mode 打开这个文件的模式
# r(只读) w(只写) a(追加)
# r+ w+ a+
# rb rb+ wb wb+ ab ab+ 做单元测试的时候
res=file.read()
print(res)
\n 换行转义符
file.read() #读取所有内容
file.readLine() #按行读取
file.readLines() #读取多行,返回的是列表
#输出一个由*组成的直角三角形
#*
#**
#***
#****
#*****
#方式一:
for item in range(5):
print("*"*i)
#方式二:
for i in range(1,6):# 控制行数
for j in range(1,i+1):
print("*",end="") #end="" 不换行输出
print("") # print语句会换行
#写一段代码,分别求出0-100之间的所有偶数和和所有奇数的和
j_sum=0
o_sum=0
for item in range(0,101):
if item%2==0:
o_sum+=item
if item%2==1:
j_sum+=item
print("0-100之间的所有偶数和为:{0}".format(o_sum))
print("0-100之间的所有奇数和为:{0}".format(j_sum))
# 新建一个目录/新建一个文件夹
os.mkdir("Lisa") # 新建一个文件夹
# 跨级新建目录 用/符号来代表路径的不同层级 必须确保上面的层级是存在的
os.mkdir("Lisa/vict")
#删除文件夹
os.rmdir("Lisa/vict")
os.getcwd() #获取当前的工作目录
os.path.realPath(__file__) #获取当前文件所在的绝对路径
#拼接路径
#方式一:
new_path=os.getcwd()+"/python"
print(new_path)
#方式二:(前提:必须保证python目录存在)
new_path_2=os.path.join(os.getcwd(),"python","vict")
print(new_path_2)
#判断是否是文件 返回值是布尔类型
print(os.path.isfile(__file__)) #true
print(os.path.isfile(os.getcwd()))#false
#判断是否是目录:print(os.path.isdir(os.getcwd())) True
#怎么判断文件是否存在?返回布尔值
print(os.path.exists(os.path.realPath(__file__)))
#罗列出当前路径的所有文件和目录
print(os.listdir("路径"))
异常:你在运行代码过程中遇到的任何错误 带有error字样的 都是异常
异常处理:我们对代码中所有可能会出现的异常进行的处理
import os
try:#警察
os.mkdir("Lisa") #FileExistsError 嫌疑人
catch FileExistsError:#警力出动
print("捉拿归案,等待进一步处理")
#try....expect....else else跟随try,你好我就好,你不好我就不好
#try...expect....finally 无论try、catch是如何运行的,finally都会执行
#try...expect try相当于警察,它里面的内容相当于嫌疑人,expect相当于警力出动
#等腰三角形,每个边都是5个*号
# *
# * *
# * * *
# * * * *
# * * * * *
for i in range(1,6):
for j in range(1,6-i):
print(" ",end="")
for k in range(1,i+1):
print("* ")
print("")
# 输出99乘法表
for i in range(1,10): # 控制行数
for j in range(1,i+1): # 控制列数
print("{0}*{1}={2} ".format(j,i,j*i),end="")
print("")
# 经典冒泡排序,利用for循环,完成a=[1,7,4,89,34,2]的冒泡排序
# 冒泡排序,小的排前面,大的排后面
# 排序最终使得数组中的这几个数字按照从小到大的顺序排序
# 冒泡比较 一般最多比较n-1趟就完成 n是元素的个数
a=[1,7,4,89,34,2]
for i in range(1,len(a)):
if j in range(i,len(a)-1)
if a[j]>a[j+1]:
a[j],a[j+1]=a[j+1],a[j]
print(a)
#1、写一个函数,可以完成任意指定整数的相加,并返回结果
#2、自动贩卖机,只接受1元、5元、10元的纸币或者硬币,可以1块、5块或者10块,最多不超过10块,饮料只有橙汁、椰汁、矿泉水和早餐奶,售价分别为3.5,4,2,4.5,写一个函数用来表示贩卖机的功能,用户投钱和选择饮料,并通过判断之后,给用户吐出饮料和找零
def buy_drink:
drinks={"1":3.5,"2":4,"3":2,"4":4.5}
total=0 #存储我们购买饮料的总金额
用户选择饮料
while True:
choose=input("请选择你要购买的饮料: 1:橙汁 2:椰汁 3:矿泉水 4:早餐奶 q 退出")
if choose in drinks.keys():
total+=drinks[choose]
elif choose=="q":
print("退出选择饮料")
break
else:
print("您输入的选项不存在")
while True:
money=input("请投币:只能投1元、5元、10的硬币或纸币,按q 退出投币")
if money=="1" or money=="5" or money=="10
toubi+=int(money)
if toubi>total:
print("您刚刚购买了{0}元饮料,你已支付{1}元,找零{2}元".format(total,toubi,toubi-total))
break
elif toubi<total:
print("您刚刚购买了{0}元饮料,你已支付{1}元,还需支付{2}元".format(total,toubi,total-toubi))
else:
print("您刚刚购买了{0}元饮料,你已支付{1}元,支付完毕".format(total,toubi))
elif money=="q":
print("退出投币")
break
else:
print("您输入的选项不存在")
buy_drink()
类 关键字class def 函数名(参数):函数的关键字
类语法:
class 类名: # 类名的规范是:数字 字母 下划线组成,不能以数字开头 首字母大写 驼峰命名
类属性
类方法
class boyfriend:
age="25"
def cooking(self): #类里面的方法,都必须带self这个参数,self 是一个固定的占坑符号
print("会做饭")
#实例对象 具体的一个例子
#实例对象语法:类名()
#实例具有类里面所有的属性和方法的使用权限
#调用属性: 实例.属性名
#调用方法: 实例.方法名() 实例.函数名() def开头的才是函数
#类的概念:具有某一类共同属性和特性的事物
#类一般包含属性以及方法
类里面的方法分为三种:
实例方法 self
类方法 cls
静态方法 普通方法
1、实例和类名都可以直接调用
2、不同点
类方法和静态方法,不可以调用类里面的属性值,如果你要参数,请自己传递参数
3、什么时候可以定义类方法和静态方法,当你的某个函数与其他的类函数 类属性没有半毛钱关系
就可以定义类方法和静态方法
初始化函数
def init(self):
pass
def __int__(self): # 千万不要手残,这个不是初始化函数
pass
class Teacher:
def __init__(self,name,age):
elf.name=name
self.age=age
teacher=Teacher("小王",18)
#什么时候可以使用初始化函数?
#想用就用
#如果某个属性值是多个函数共用的 就可以用初始化函数