Python字典、函数与全局变量核心用法解析
本文深入解析Python中字典、函数及全局变量的核心用法。详细阐述字典键值不可变性与覆盖规则,介绍自定义与预定义函数的定义、分类及调用语法。重点讲解全局变量与局部变量的作用域差异,以及如何通过global关键字在函数内修改全局变量,并附带验证码生成的两种实现方式。
字典
dict1 = {'name':'han','age':18,'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']=28 #字典的修改相当于重新赋值!!!
dict1['address']='beijing' #字典的增加是:dict[key] = value 这样的形式
del dict1['name'] #删除字典中的一个元素
dict1.clear() #字典的清空,返回一个空字典
# del dict1 #删除字典,字典就完全删除了
在使用Python字典时,需注意以下关键事项:
首先,字典中的键(key)必须唯一。若出现重复键,后定义的键值对将覆盖先前的值。
其次,作为字典键的对象必须是不可变类型。因此,通常仅使用数字、字符串或元组来充当键,而列表等可变类型不能作为键。
dict2 = {(1,2):5,"元组":(4,5)} #字典里的元素只能用不可变的数据类型!!!
print(dict2)
print(dict2['元组'])
print(dict2[(1,2)])
for i in dict2.keys(): #取出的数值更干净!!!谨记老师教导
print("字典中的key值为:",i)
for j in dict2.values():
print("字典中的values值为:",j)
函数
关于函数的定义,需明确其基本概念:
函数是将实现特定功能的一组语句封装起来的代码块,用户可以在程序中随时调用这些函数以执行相应操作。
函数的分类主要包含两类:
一是自定义函数,由用户根据需求编写;二是预定义函数,即Python系统或标准库(lib)内置提供的函数。
使用函数具有显著优势:
它能有效降低编程复杂度,将复杂的大问题分解为多个易于处理的小问题,并且支持多次调用,提高代码复用率。
函数的语法结构如下:
定义函数时,使用关键字def后接函数名及括号内的参数列表。
具体格式为:def 函数名(参数):
随后编写函数体,即执行具体逻辑的代码块。
最后使用return语句返回值。若return不带表达式,则默认返回None。
调用函数时,只需使用函数名并传入相应参数即可。
调用示例:函数名(参数)
以下是几种常见的函数类型及示例:
#定义函数,函数名最好以_分割
def print_str(str):
print(str)
return
# 调用函数
print_str("调用一下")
# 函数传递
#所有参数在python里都是按引用传递
#一句话:要变都变!!!
def charge_me(mylist):
mylist.append([1,2,3,4])
print("函数内取值:",mylist)
return
mylist = [10,20,30]
charge_me(mylist)
print("函数外取值:",mylist) #函数外和函数内打印是相同的!!!
#函数的赋值引用
def print_info(name,age=3):
print("name",name)
print("age",age)
return
# print_info(name="xiao",age=18)
print_info(age=50,name="xiao") #python中颠倒是可以的!!!
print_info(name='haha')
#函数的不定长参数
def p_info(arg1,*vartuple):
print("输出:",arg1)
for var in vartuple:
print(var)
return
p_info(10)
p_info(70,60,50,40,30)
匿名函数lambda,了解即可
# 1、lambda只是一个表达式,而不是一个代码块,函数体比def简单很多。仅仅能在lambda表达式中封装有限的逻辑
# 2、lambda[arg1[,arg2,...argn]]:expression
sum1 = lambda arg1,arg2:arg1+arg2
print("相加后的值为:",sum1(10,20))
# return语句
def sum2(arg1,arg2):
total = arg1+arg2
print("函数内:",total)
return total #把total去掉之后返回none
abc = sum2(10,40)
print("函数外:",abc)
关于全局变量与局部变量的区别:全局变量容易引发状态混乱,建议尽量避免在函数中随意修改全局变量。
total = 0
def sum3(a,b):
total = a+b
print("函数内(局部变量)的值为:",total)
return total
# total = sum3(10,400)
sum3(20,70)
print("函数外(全局变量)的值为:",total)
count = 1
def do_st():
global count #全局变量:global
for i in (3,4,5): #循环三次
count += 1
# print(count)
do_st()
print(count)
# 思路:当count=1时进入循环+1并赋值给count
# 在for循环三次后为3+1=4
# 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。
如何在函数内部设置或修改一个全局变量?
答案:在函数体内使用global关键字声明该变量为全局变量,即可对其进行修改。
随机生成验证码的两种常见实现方式:
import random list1=[] for i in range(65,91): list1.append(chr(i)) #通过for循环遍历asii追加到空列表中 for j in range(97,123): list1.append(chr(j)) for k in range(48,58): list1.append(chr(k)) ma = random.sample(list1,6) print(ma) #获取到的为列表 ma = ''.join(ma) #将列表转化为字符串 print(ma)
import random,string str1 = "0123456789" str2 = string.ascii_letters str3 = str1+str2 ma1 = random.sample(str3,6) ma1 = ''.join(ma1) print(ma1) #通过引入string模块和random模块使用现有的方法
总结:
以上就是本文关于Python字典、函数及全局变量代码解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













