首页 > 编程语言 > 详细

python学习 第二天 python基础

时间:2019-06-25 22:41:11      阅读:135      评论:0      收藏:0      [点我收藏+]

一  列表

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

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

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

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)
#True
print(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)
#19
student_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) 
#True
print(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)    #True

print(‘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=10
y=20
if x>y:
    print(x)
else:
    print(y)
#20

 

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

 

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

 

#限制循环次数
str1=tank
#初始值
num=0
while 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.jpg
with 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(): 

   pass

dict1={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()

 

python学习 第二天 python基础

原文:https://www.cnblogs.com/101720A/p/11086995.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!