字典

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

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

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

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

以下是函数的几种:

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

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

 total =
def sum3(a,b):
total = a+b
print("函数内(局部变量)的值为:",total)
return total
# total = sum3(,)
sum3(,)
print("函数外(全局变量)的值为:",total)
count =
def do_st():
global count #全局变量:global
for i in (,,): #循环三次
count +=
# print(count)
do_st()
print(count)
# 思路:当count=1时进入循环+1并赋值给count
# 在for循环三次后为3+=
# 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

python自动化--语言基础三字典、函数、全局/局部变量的更多相关文章

  1. Python自动化--语言基础3--字典、函数、全局/局部变量

    字典 dict1 = {'name':'han','age':18,'class':'first'} print(dict1.keys()) #打印所有的key值 print(dict1.values ...

  2. Python自动化--语言基础5--面向对象、迭代器、range和切片的区分

    面向对象 一.面向对象代码示例: 1 class Test(): #类的定义 2 car = "buick" #类变量,定义在类里方法外,可被对象直接调用,具有全局效果 3 def ...

  3. python自动化--语言基础五面向对象、迭代器、range和切片的区分

    面向对象 一.面向对象简单介绍: class Test(): #类的定义 car = "buick" #类变量,定义在类里方法外,可被对象直接调用,具有全局效果 def __ini ...

  4. Python自动化--语言基础8--接口请求及封装

    基于http协议,最常用的是GET和POST两种方法. 接口文档需要包含哪些信息: 接口名称接口功能接口地址支持格式 json/xml请求方式请求示例请求参数(是否必填.数据类型.传递参数格式)返回参 ...

  5. Python自动化--语言基础4--模块、文件读写、异常

    模块1.什么是模块?可以理解为一个py文件其实就是一个模块.比如xiami.py就是一个模块,想引入使用就在代码里写import xiami即可2.模块首先从当前目录查询,如果没有再按path顺序逐一 ...

  6. python自动化--语言基础1--数据类型及类型转换

    Python中核心的数据类型有哪些?变量(数字.字符串.元组.列表.字典) 什么是数据的不可变性?哪些数据类型具有不可变性数据的不可变是指数据不可更改,比如: a = ("abc" ...

  7. python自动化--语言基础四模块、文件读写、异常

    模块1.什么是模块?可以理解为一个py文件其实就是一个模块.比如xiami.py就是一个模块,想引入使用就在代码里写import xiami即可2.模块首先从当前目录查询,如果没有再按path顺序逐一 ...

  8. python自动化--语言基础一数据类型及类型转换

    Python中核心的数据类型有哪些?变量(数字.字符串.元组.列表.字典) 什么是数据的不可变性?哪些数据类型具有不可变性数据的不可变是指数据不可更改,比如: a = () #定义元组 #a[]= # ...

  9. Python自动化--语言基础6--模块操作之re、MySQL、Excel

    1.Python自有模块正则 import re # re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None print(re.match("aaa ...

随机推荐

  1. fetch各种报跨域错误,数据无法获取的解决方案

    1.介绍 fetch 提供了一个获取资源的接口 (包括跨域). fetch 的核心主要包括:Request , Response , Header , Body 利用了请求的异步特性 --- 它是基于 ...

  2. linux以下安装dnw

    [root@embedded secbulk]# make -C /lib/modules/`uname -r`/build M=`pwd` modules make: *** /lib/module ...

  3. 合并链表 —— 剑指Offer

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则.     思路: 也在考虑能不能更优雅的代码写法,但是最后,还是两边都写一下,能增加代码清晰度. ...

  4. Creating A Simple Web Server With Golang

    原文:https://tutorialedge.net/post/golang/creating-simple-web-server-with-golang/ -------------------- ...

  5. YII数据流程浅析

    MVC就不解释,直接上代码分析数据流程: 数据库图: 模型部分介绍: <?php /* * 前两个方法必须写 * 继承自CActiveRecord类 这个类位于 \framework\db\ar ...

  6. cocos2d-x 2.2.3 建project

    2.2以后不再使用模板安装了. 打开终端,进入cocos2d-x文件夹下的tools/project-creator,运行命令 ./create_project.py -project [项目名] - ...

  7. Codechef Racing Horses题解

    找一个数组中两数之间最小的不同值. 思路: 1 排序 2 后前相减,比較得到最小不同值 三个数甚至很多其它数之间的不同值都是这么求了,时间效率都是O(nlgn) -- 排序使用的时间 原题: http ...

  8. C++ - 使用copy函数打印容器(container)元素

    使用copy函数打印容器(container)元素 本文地址: http://blog.csdn.net/caroline_wendy C++能够使用copy函数输出容器(container)中的元素 ...

  9. HDU4403 A very hard Aoshu problem DFS

    A very hard Aoshu problem                           Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  10. 【HNOI模拟By lyp】Day1

    1 xlk1.1 题目描述 给定一棵大小为 n 的无根树,求满足以下条件的四元组 (a, b, c, d) 的个数: 1. 1 ≤ a < b ≤ n 2. 1 ≤ c < d ≤ n 3 ...