博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习 第二天 python基础
阅读量:5248 次
发布时间:2019-06-14

本文共 6801 字,大约阅读时间需要 22 分钟。

一  列表

定义:在[ ]内,可以存放多个任意类型的值,并以逗号隔开。

一般用于存放学生的爱好,课堂的周期等等。

定义一个学生列表,可存放多个学生

student_info=['sjk','合计',19,['吃','睡']]#取同学的所有爱好print(student_info[3])#取同学的第二个爱好print(student_info[3][1])

 

列表优先掌握的操作

1按索引存取值(正反向取存):即可存也可以取

print(student_info[-2])          #19

2切片(顾头不顾尾)

print(student_info[0:4:2]) #['sjk', 19]

3长度

print(len(student_info)) #4

4成员运算in和not in

print('sjk' in student_info)#Trueprint('sjk' not in student_info)#False

5追加 在列表追加一个值

student_info.append('张铁柱,sanquan') #['sjk','合计', 19, ['吃', '睡'], '张铁柱,sanquan']

6删除 删除索引的值 

del student_info[1] print(student_info)#['sjk',19['吃','睡'],'张铁柱','sanquan']

 

列表需要掌握的操作

 

student_info=['sjk','合计',19,['np','yb'],19]

 

1获取列表中某个值的索引

student_info.index(19)#2

 

2获取列表中某个值的数量

student_info.count(19)#2

 

3取值 默认取列表中最后一个值

若pop()括号中写了索引,则取索引对应得值

student_info.pop()print(student_info)#19student_info.pop(0)print(student_info)#'sjk'

 

4移除    把列表中的某个值的第一个值移除

student_info.remove(19)print(student_info)#['sjk','合计',['np','yb'],19]name=student_info.remove('sjk')print(name)print(student_info)#error

 

5插入值

student_info=['sjk','合计',20,['np','yb'],56]student_info.insert(3,'888')print(student_info)#['sjk','合计',20,['np','yb'],56,3,'888']

 

6extend 合并列表

student_info1=['sji',47,['吃','睡'],47]student_info2=['djk',38,['玩','乐']]student_info1.extend(student_info2)print(student_info1)#['sji',47,['吃','睡'],47,'djk',38,['玩','乐']]

 

二 元组

定义:在()中,可以存放多个任意类型的值,并用逗号隔开 

注意: 元祖与列表不同的是,只能在定义时初始化值,不能对其修改

优点:  在内存中占用资源比列表小

 

定义

tuplel=(1, 2, 3, 'wu', 'liu')print(tuplel)#1, 2, 3, 'wu', 'liu'

 

1正反向取值 (正向取+反向取)只能取

print(tuplel[2])#3

2切片(顾头不顾尾)

print(tuplel[0:5:2]) #[1,3,'liu']

3长度 

print(len(tuplel)) #5

 

4成员运算in和not in

print(1 in tuplel) #Trueprint(1 not in tuplel)#False

5循环

for line in tuplel: #print(line) #1 2 3 'wu' 'liu' #print默认end参数是\n print(line,end='_')#1_2_3_'wu'_'liu'_

 

可变类型与不可变类型:

不可变类型(值修改后,内存地址一定不一样):
  数字类型:int,float    字符串类型:str   元组类型:tuple
可变类型(值修改后,内存地址一样):
  列表类型:list     字典类型:dict

 

三 字典

 作用:在{}内,可存放多个值,以key_value存取,取值速度快

注意:key必须是不可变类型,value可以是任意类型

dict1=dict({
'age':18,'name':'sjj'})#dict1={'age':18,'name':'tank'}print(dict1)#{'age':18,'name':'tank'}

 

取值,字典名+[],括号内写值对应的key

print(dict1['age'])#18

 

#[]取值 #print(dict1['sex']) #error #get取值 (推荐)print(dict1.get('sex')) #None #若找不到sex,为其设置一个默认值 print(dict1.get('sex','male'))

 

优先掌握的操作

1可存取

#存一个level:9的值到dict1字典中dict1['level']=9 print(dict1)       #{'age':18,'name':'tank','level':9}print(dict1['name'])        #tank

2长度

3成员运算in和not in    只判断字典中的key

print('name' in dict1)    #Trueprint('tank' in dict1)       #False

4删除

del dict1['level'] print(dict1) #{'age':18,'name':'tank'}

 

5建keys(),值 value(),键值对items()

#得到字典中所有key print(dict1.keys()) #得到字典中所有值values print(dict1.values()) #得到字典中所有items print(dict1.items()) #dict_keys(['age', 'name']) #dict_values([18, 'sjj']) #dict_items([('age', 18), ('name', 'sjj')])

 

6循环

 

for it in dict1:     print(it)     print(dict1[it]) #age #18 #name #sjj

 

四 流程控制

if 判断
语法:
if 判断条件:
  #若条件成立,则执行此处代码
  逻辑代码
elif 判断条件:
  逻辑代码
else:
  #上述条件都不符合,则执行此处代码
  逻辑代码

 

#判断两数大小x=10y=20if x>y:    print(x)else:    print(y)#20

 

缩进快捷键,tab向右移动四个空格,shift+tab向左移动四个空格

 

while循环

语法:
while 条件判断:
  # 成立执行此处
  逻辑代码
  break          #跳出本次循环
  continue     #结束本次循环,进入下一次循环

 

#限制循环次数str1='tank'#初始值num=0while num<3:   name= input('请输入猜测的字符:').strip()   if name =='tank':       print('tank success')       break       print('请重新输入')       num+=1

 

 

五 文件处理

  open()
写文件
  wt:写文本
读文件
  rt:写文本
追加写文件
  at:追加文本
注意:必须指定字符编码,以什么字符编码写,就一什么字符编码打开,如utf-8

执行python代码文件的过程

1先启动python解释器,加载到内存中
2把写好的python文件加载到解释器中
3检测python语法,执行代码

打开文件会产生两种资源:

1.python程序
2.操作系统打开文件

 

打开,读写,关闭文件方式一:

#参数一:文件的绝对路径#参数二:mode 操作文件的模式#参数三:encoding 指定的字符编码f=open('file.txt',mode='wt',encoding='utf-8')f.write('tank')f.close()#关闭操作系统文件资源f=open('file.txt',mode='rt',encoding='utf-8')f.read()f.close()#关闭操作系统文件资源f=open('file.txt',mode='a',encoding='utf-8')f.write('\n 合肥学院')f.close()#关闭操作系统文件资源

 

打开,读写,关闭文件方式二:(推荐)

# with可以管理open打开的文件# 会在with执行完毕后自动调用close()关闭文件# with open()'''文件处理之上下文管理with open() as f"句柄"'''with open('file.txt','w',encoding='utf-8') as f:    f.write('墨菲定律')with open('file.txt', 'r', encoding='utf-8') as f:        res = f.read()        print(res)with open('file.txt', 'a', encoding='utf-8') as f:            f.write('围城')

 

对图片、音频、视频读写

rb模式读取二进制,不需要指定字符编码

#读取cxk.jpgwith open('cxk,jpg','rb') as f:res=f.read()print(res)jpg=res#把cxk.jpg的二进制流写入cxk_copy.jpg文件中with open('cxk_copy.jpg','wb') as f_w:f_w.write(jpg)

 

#with管理多个文件#通过with来管理open打开的两个文件句柄f_r,f_w with open('cxk,jpg','rb') as f_r,open('cxk.jpg','wb') as f_w:  #通过f_r句柄把图片的二进制流读取出来  res=f_r.read()   #通过f_w句柄把图片的二进制流写入cxk_copy.jpg文件中  f_w.write(res)

 

六  函数 

什么是函数? 

      函数指的其实是一把工具 

使用函数的好处: 

  1解决代码冗余问题 

   2.是代码的结构更清晰 

   3.易管理

函数的使用必须遵循:先定义,后调用

函数定义语法: 

     def 函数名(参数1,参数2,...):

      注释:声明函数

     逻辑代码 

    return 返回值 

    def:defind 定义。

函数名:必须看其名知其意 

     ():接收外部传入的参数     注释:用来声明函数的作用

    return:返回给调用者的值 

定义函数的三种形式:

    1无参函数 不需要接收外部传入的参数

    2有参函数 血压哟接收外部传入的参数

    3空函数 pass

 

1.无参函数

#userame,password用来接收外部传入的值

 

def login(): user=input('请输入用户名').strip() pwd=input('请输入密码').strip() if user== 'tank' and pwd == '123':    print('login successful') else:    print('login error') #函数的内存地址#print(login) #函数调用login()

 

2.无参函数

 

def login(username,password): user=input('请输入用户名').strip() pwd=input('请输入密码').strip() if user== username and pwd == password:    print('login successful') else:    print('login error') #函数的内存地址#print(login) #函数调用login('tank','123')

 

ATM:

   1.登陆

   2.注册

   3.提现

   4.取款

   5.转账

   6.还款 '''

#登陆功能

def login():

#代表什么都不做

   pass

#注册功能

   def register():

 #代表什么都不做

   pass

#还款功能

   def repay():

   pass

函数的参数  

在定义阶段,x,y称之为形参。

def func(x,y):

  x,y print(x,y)

#在调用阶段:10,100称之为实参

   func(10,100)

''' 函数的参数 '''

#在定义阶段:x,y称之为形参 def fnnc(x,y): print(x,y)

# 在调用阶段:10,100称之为实参 func(10, 100)

 

 位置参数

    位置形参

    位置实参

   必须按照位置一一传参 '''

在定义阶段:

位置形参

  def fnnc(x,y): print(x,y)

# 在调用阶段:10,100称之为位置实参

   func(10, 100)

 

 

关键字参数

   关键字实参

   按照关键字传参     

def fnnc(x, y): print(x, y)

# 在调用阶段:10,100称之为关键字参数

   func(10, 100)

#不能少传

# func(y=111) 报错

#不能多传

# func(y=111,x=24,z=36) 报错 

 

 

默认参数

在定义阶段,为参数设置默认值

  def foo(x=100,y=111):

   print(x,y)

#不传参,则使用默认参数 foo()
#传参,使用传入的参数 foo(200,300)
''' 函数的嵌套定义

函数对象:

   函数的内存地址称之为函数对象

函数的名称空间:

        内置:python解析器自带的都称之为“内置名称空间”

   全局: 所有顶着头写的变量,函数...都称之为“全名称空间”

   局部: 在函数内部定义的,都称之为“局部名称空间” 

名称空间加载顺序:

  内置====>全局====>局部

名称空间查找顺序:

  局部=====>全局====>内置

#函数的嵌套定义

def func1():

   print('from func1...')

def func2():   

   print('from func2...')

#函数对象

 

print(func1)def f1():    pass def f2():    passdict1={
'1':f1,'2':f2}choice=input('请选择功能编号')if choice=='1':  print(dict1[choice])  dict1[choice]()elif choice=='2'  print(dict1[choice])  dict1[choice] ()

 

x =10#名称空间#函数的嵌套定义def func1():  #x=20  print('from func1...')  print(x)  def func2():    print('from func2...')func1()

 

#名称空间#函数的嵌套定义def func1():  #x=20  print('from func1...')  print(x)         #报错(代码是自上而下,print(x)无法引用x=30,所以报错)  x=30  def func2():    print('from func2...')func1()

 

转载于:https://www.cnblogs.com/101720A/p/11086995.html

你可能感兴趣的文章
实现一个简单实用的动态加载上千条目的UGUI模块
查看>>
格而知之2:UIView的autoresizingMask属性探究
查看>>
Spring3.0 AOP 具体解释
查看>>
我的Hook学习笔记
查看>>
EasyUI DataGrid 中字段 formatter 格式化不起作用
查看>>
海量数据存储
查看>>
js中的try/catch
查看>>
简单的分页
查看>>
Find them, Catch them POJ - 1703(带权并查集)
查看>>
进阶篇-安卓系统:4.安卓手机动作传感器
查看>>
CGLib动态代理原理及实现
查看>>
Rhythmk 一步一步学 JAVA (16) dom4j 操作XML
查看>>
JAVA_OA(五):SpringMVC接受传入页面的参数值
查看>>
装饰器与函数的多层嵌套
查看>>
初入web知识点(三)
查看>>
CSS样式 vertical-align:middle 垂直居中生效情况
查看>>
RESTFul API
查看>>
[导入]玫瑰丝巾!
查看>>
自动从网站上面下载文件 .NET把网站图片保存到本地
查看>>
【识记】 域名备案
查看>>