zoukankan      html  css  js  c++  java
  • Python自动化--语言基础3--字典、函数、全局/局部变量

    字典

    复制代码
     1 dict1 = {'name':'han','age':18,'class':'first'}
     2 print(dict1.keys())       #打印所有的key值
     3 print(dict1.values())     #打印所有的values值
     4 print("dict1['name']:",dict1['name'])      #打印name相对应的value值
     5 print(dict1.get('name'))   #通过字典的get方法得到name相对应的value值
     6 
     7 dict1['age']=28    #字典的修改相当于重新赋值!!!
     8 
     9 dict1['address']='beijing'    #字典的增加是:dict[key] = value 这样的形式
    10 
    11 del dict1['name']    #删除字典中的一个元素
    12 dict1.clear()        #字典的清空,返回一个空字典
    13 # del dict1          #删除字典,字典就完全删除了
    复制代码

    字典用法注意:
    1、键是不允许相同的,如果相同,后面的会覆盖前面的
    2、键是不可变的,所以只能用数字、字符串、元组来担当

    复制代码
    1 dict2 = {(1,2):5,"元组":(4,5)}   #字典里的元素只能用不可变的数据类型!!!
    2 print(dict2)
    3 print(dict2['元组'])
    4 print(dict2[(1,2)])
    5 
    6 for i in dict2.keys():           #取出的数值更干净!!!谨记老师教导
    7     print("字典中的key值为:",i)
    8 for j in dict2.values():
    9     print("字典中的values值为:",j)
    复制代码

    函数

    1、函数的定义
     函数是实现特定功能而封装起来的一组语句块,可以被用户调用
    2、函数的分类
     自定义函数;预定义函数(系统自带,lib自带)
    3、使用函数的好处
     降低编程难度、将大问题分解为若干小问题、可以多次调用
    4、函数语法
     定义
     def 函数名字(参数):
       函数体
     return 语句      #不带表达式的return相当于返回none
     调用
     函数名字

    以下是函数的几种:

    复制代码
    1 #定义函数,函数名最好以_分割
    2 def print_str(str):
    3     print(str)
    4     return
    5 # 调用函数
    6 print_str("调用一下")
    复制代码
    复制代码
     1 # 函数传递
     2 #所有参数在python里都是按引用传递
     3 #一句话:要变都变!!!
     4 def charge_me(mylist):
     5     mylist.append([1,2,3,4])
     6     print("函数内取值:",mylist)
     7     return
     8 mylist = [10,20,30]
     9 charge_me(mylist)
    10 print("函数外取值:",mylist)      #函数外和函数内打印是相同的!!!
    复制代码
    复制代码
    1 #函数的赋值引用
    2 def print_info(name,age=3):
    3     print("name",name)
    4     print("age",age)
    5     return
    6 # print_info(name="xiao",age=18)
    7 print_info(age=50,name="xiao")       #python中颠倒是可以的!!!
    8 print_info(name='haha')
    复制代码
    复制代码
    1 #函数的不定长参数
    2 def p_info(arg1,*vartuple):
    3     print("输出:",arg1)
    4     for var in vartuple:
    5         print(var)
    6     return
    7 p_info(10)
    8 p_info(70,60,50,40,30)
    复制代码
    1 #匿名函数lambda,了解即可
    2 # 1、lambda只是一个表达式,而不是一个代码块,函数体比def简单很多。仅仅能在lambda表达式中封装有限的逻辑
    3 # 2、lambda[arg1[,arg2,...argn]]:expression
    4 sum1 = lambda arg1,arg2:arg1+arg2
    5 print("相加后的值为:",sum1(10,20))
    复制代码
    1 # return语句
    2 def sum2(arg1,arg2):
    3     total = arg1+arg2
    4     print("函数内:",total)
    5     return total                     #把total去掉之后返回none
    6 abc = sum2(10,40)
    7 print("函数外:",abc)
    复制代码

    #全局变量和局部变量
    #全局变量比较容易出问题,能不用就不用

    复制代码
    1 total = 0
    2 def sum3(a,b):
    3     total = a+b
    4     print("函数内(局部变量)的值为:",total)
    5     return total
    6 # total = sum3(10,400)
    7 sum3(20,70)
    8 print("函数外(全局变量)的值为:",total)
    复制代码
    复制代码
     1 count = 1
     2 def do_st():
     3     global count         #全局变量:global
     4     for i in (3,4,5):    #循环三次
     5         count += 1
     6         # print(count)
     7 do_st()
     8 print(count)
     9 # 思路:当count=1时进入循环+1并赋值给count
    10 #          在for循环三次后为3+1=4
    11 #          count是全局变量,最后打印出的结果为4
    复制代码

    小练习

    # 不能创建字典的语句是C (字典中的元素不能以列表作为key)
    # A、dict1 = {}
    # B、dict2 = { 3 : 5 }
    # C、dict3 = {[1,2,3]: “uestc”}
    # D、dict4 = {(1,2,3): “uestc”}

    #以下代码输出什么?输出的是6
    # 思路:原始key的值为1,
    #     copy给另一个字典值为1,
    #     重新赋值原来的字典值为5,
    #     所以相加等于6
    dict1={'1':1,'2':2}
    theCopy=dict1.copy()
    dict1['1']=5
    sum=dict1['1']+theCopy['1']
    print(sum)

    # 合并生成新的字典
    dict1 = {3:"c", 4:"d"}
    dict2 = {1:"a", 2:"b"}
    dict2.update(dict1)       #更新添加dict1进dict2
    print(dict2)

    # 标准日期输出
    a = "20170303"
    b = a[:4]
    c = a[4:6]           #构思:通过列表分割的方式实现
    d = a[6:]
    print("格式化后输出的日期是:%s年%s月%s日"%(b,c,d))

    无return函数,返回什么?
    答:在函数中无return函数,返回none

    如何在一个function里面设置一个全局的变量?

    答:在函数体内定义一个全局的函数global

    #随机生成验证码的两种方式:

    复制代码
     1 import random
     2 list1=[]
     3 for i in range(65,91):
     4     list1.append(chr(i))   #通过for循环遍历asii追加到空列表中
     5 for j in range(97,123):
     6     list1.append(chr(j))
     7 for k in range(48,58):
     8     list1.append(chr(k))
     9 ma = random.sample(list1,6)
    10 print(ma)          #获取到的为列表       
    11 ma = ''.join(ma)   #将列表转化为字符串
    12 print(ma)
    复制代码
    复制代码
    1 import random,string
    2 str1 = "0123456789"
    3 str2 = string.ascii_letters
    4 str3 = str1+str2
    5 ma1 = random.sample(str3,6)
    6 ma1 = ''.join(ma1)
    7 print(ma1)         #通过引入string模块和random模块使用现有的方法
    复制代码
  • 相关阅读:
    七、阿里巴巴中文站商品信息如何存放
    四、为什么要使用NOSQL NOT ONLY SQL
    二、数据库架构发展历程
    十三、负载均衡
    三、MySQL的扩展性瓶颈
    一、秒杀架构设计
    数据库概述
    五、传统RDBMS VS NOSQL
    PHP框架开发:三、MVC设计模式及本框架的实现方式
    PHP Iterator的使用
  • 原文地址:https://www.cnblogs.com/zhanleishang/p/10565462.html
Copyright © 2011-2022 走看看