![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
从小不爱学习~
这个作者很懒,什么都没留下…
展开
-
几个模块介绍
几个模块介绍os模块os 全称 OperationsSystem操作系统os 模块里提供的方法就是用来调用操作系统里的方法import os# os.name ==> 获取操作系统的名字 Windows ==> nt / 非Windows ==> POSIXprint(os.name) # ntprint(os.sep) # 路径的分隔符 Windows \ 非Windows /# os 里的path会经常使用# 获取文件的觉得对路径print原创 2022-02-08 14:05:34 · 792 阅读 · 0 评论 -
装饰器的介绍
装饰器的介绍装饰器的基本使用import timedef cal_time(fn): print('我是外部函数,我被调用了!!!') print('fn = {}'.format(fn)) def inner(): start = time.time() fn() end = time.time() print('代码耗时', end - start) return inner@cal_ti原创 2022-02-08 13:43:12 · 610 阅读 · 0 评论 -
函数的嵌套以及闭包概念
函数的嵌套以及闭包的概念函数的嵌套def outer(x): m = 100 print('我是outer函数') def inner(): # inner函数定义在outer函数内部 print('我是inner函数') if x > 18: inner() return 'hello'outer(21)闭包的概念如果在一个函数里,对外部作用域(但不是全局作用域)的变量进行引用,那么内部函数就被认为是闭包(原创 2022-02-08 13:39:39 · 187 阅读 · 0 评论 -
内置方法sort、filter、map、reduce的使用
几个内置方法的使用有几个内置函数和内置类,用到了匿名函数1.sort 方法的使用列表的sort方法,会直接对列表进行排序sorted 内置函数,不会改变原有数据,而是生成一个新的有序列表nums = [4, 8, 2, 1, 7, 6]nums.sort()print(nums)ints = (5, 9, 2, 7, 3, 8, 1, 4)x = sorted(ints)print(x)# 字典和字典之间不能使用比较运算# students.sort()# foo() ta原创 2022-02-08 11:44:56 · 688 阅读 · 0 评论 -
匿名函数介绍
匿名函数def add(a, b): return a + bprint('0x%X' % id(add))x = (add(4, 5)) # 函数名(实参)作用是调用函数,获取到函数的执行结果,并赋值给变量 xprint(x)fn = add # 相当于给函数起了一个别名 fnprint(fn(3, 7))除了使用 def 关键字定义一个函数以外,我们还能使用 lambda 表达式定义一个函数。匿名函数,用来表达一个简单的函数,函数调用的次数很少,基本上就是调用一次。原创 2022-02-08 10:35:40 · 269 阅读 · 0 评论 -
递归函数的使用及练习
递归函数的使用及练习1.递归来说,就是函数内部自己调用自己。2.递归最重要的就是找到出口(停止的条件)。count = 0def tell_story(): global count count += 1 print('从前有座山') print('山上有座庙') print('庙里有个老和尚') print('还有一个小和尚') print('老和尚在给小和尚将故事') print('故事的内容是') if count原创 2022-01-20 22:02:37 · 295 阅读 · 0 评论 -
函数的注意事项
函数的注意事项函数的三要素:函数名、参数、返回值在有一些编程语言里,允许函数重名,在Python里不允许函数的重名如果函数重名了,后一个函数会覆盖前一个函数# def test(a,b):# print('hello,a = {},b = {} '.format(a,b))# test ==> 对应的是一个函数def test(x): print('good,x = {}'.format(x))test = 5test(3)# Python 里,原创 2022-01-20 21:57:30 · 140 阅读 · 0 评论 -
可变类型和不可变类型穿参
可变类型和不可变类型穿参def test(a): print('修改前a的内存地址0x%X' % id(a)) a = 100 print('修改后a的内存地址0x%X' % id(a))def demo(nums): print('修改前nums的内存地址0x%X' % id(nums)) nums[0] = 10 print('修改前nums的内存地址0x%X' % id(nums))# x = 1# print('调用前x的内存地址0x%X原创 2022-01-20 21:54:24 · 61 阅读 · 0 评论 -
函数的多个参数与可变参数
函数的多个参数与可变参数函数的多个参数def add(a, b): return a + bdef many_add(iter): x = 0 for i in iter: x += i return xnums = [1, 2, 4]result = many_add(nums)print(result)print(many_add((1, 2, 3)))# 一次 input 只能接受一次用户的输入x = input('请一次性输原创 2022-01-20 21:48:34 · 350 阅读 · 0 评论 -
函数默认参数的使用
函数默认参数的使用# 缺省参数要放在最后面,也可以称之为关键字参数(通过变量名来进行赋值的)# def say_hello( city='襄阳',name, age,): def say_hello(name, age, city='襄阳'): # 形参 city 设置了一个默认值 print('大家好,我是{},我今年{}岁了,我来自{}'.format(name, age, city))say_hello('jack', 19) # 如果没有传递参数,就是用默认参数say_hel原创 2022-01-20 21:42:38 · 559 阅读 · 0 评论 -
函数的总结
函数总结1.函数的声明,使用关键字 def 来声明一个函数。2.函数的格式 def 函数名(形参1、形参2…)。3.函数的调用 函数名(实参1、实参2…)。4.函数的返回值 使用 return 语句返回函数的执行结果。5.函数返回多个结果,就是将多个数据打包成一个整体返回,可以使用列表和字典,通常情况下选择使用元祖。6.函数名也是一个标识符。7.由数字、字母下划线组成,不能以数字开头;严格区分大小写;不能使用关键字。8.遵守命名规范,使用下划线连接;顾名思义。def get_sum(a,原创 2022-01-20 21:39:44 · 327 阅读 · 0 评论 -
多个返回值
多个返回值def test(a, b): x = a // b y = a % b # 一般情况下,一个函数最多只会执行一个 return 语句 # 特殊情况下 (finally语句)下,一个函数可能会执行多个 return 语句 # return [x, y] # return {'x':x,'y':y} # return (x, y) return x, y # 返回的本质是一个元祖result = test(13, 5)#原创 2022-01-20 21:34:45 · 284 阅读 · 0 评论 -
全局变量与局部变量
全局变量与局部变量a = 100 # 这个变量是全局变量,在整个py文件里都可以访问word = '你好'def test(): x = 'hello' # 这个变量是在函数内部定义的变量,它是局部变量,只能在函数内部使用 print('x = {}'.format(x)) # 如果局部变量的名和全局变量同名,会在函数内部又定义一个新的局部变量 # 而不是修改全局变量 a = 10 print('函数内部a = {}'.format(a))原创 2022-01-20 21:32:18 · 81 阅读 · 0 评论 -
函数中定义函数与函数调用函数
函数中定义函数与函数调用函数函数中定义函数def foo(): print('in foo') def bar(): print('in bar') bar()foo()def add(a, b): c = a + b d = a - b return c, df = add(10, 3)print(f)函数中调用函数def c(): print('c函数开始了') print('c函数结束了'原创 2022-01-20 21:30:00 · 580 阅读 · 0 评论 -
函数的介绍
函数的介绍函数就是一堆准备好的代码,在需要的时候调用这一堆代码。把多行代码封装成一个整体(函数)。在python里,使用关键字 def 来声明一个函数。# def 函数名(参数)# 函数要执行的操作def tell_story(): print('从前有座山') print('山里有做庙') print('庙里有个老和尚') print('还有一个小和尚') print('老和尚再给小和尚讲故事') print('故事的内容是')age原创 2022-01-20 21:25:24 · 481 阅读 · 0 评论 -
update 方法的使用
update 方法的使用# 列表可以使用extend方法将两个列表合并成为一个列表nums1 = [1, 2, 3, 4, 5]nums2 = [6, 7, 8, 9]nums1.extend(nums2)print(nums1)words1 = ('hello','good')words2 = ('yes','ok')print(words1+words2)person1 = {'name': 'zhangsan', 'age': 18}person2 = {'addr': '襄阳原创 2022-01-19 09:28:23 · 476 阅读 · 0 评论 -
转换相关方法
转换相关方法# 内置类 list tuple setnums = [9, 8, 4, 3, 2, 1]x = tuple(nums) # 使用tuple内置类转换成为元祖print(x)y = set(nums) # 使用tuple内置类转换成为集合print(y)z = list({'name': 'zhangsan', 'age': 18, 'score': 89})print(z)# Python里有一个比较强大的内置函数 eval,可以执行字符串里的代码a = 'inp原创 2022-01-19 09:25:19 · 161 阅读 · 0 评论 -
运算符应用总结
# + :可以用来拼接,用于 字符串、元祖、列表print('hello' + 'good')print(('good', 'yes') + ('hi', 'ok'))print([1, 2, 3] + [4, 5, 6])# - :只能用于集合,求差集print({1, 2, 3} - {3})# * :可以用于字符串、元祖、列表、表示重复多次。不能用于字典和集合print('hello' * 3)print([1, 2, 3] * 3)print((1, 2, 3) * 3)#原创 2022-01-19 09:17:53 · 80 阅读 · 0 评论 -
集合基本使用-练习-高级使用
集合基本使用-练习-高级使用集合是一个不重复的无序的数据,可以使用 {} 或者 set 来表示。{} 有两种意思。{}里如果放的是键值对,它就是一个字典,如果 {} 放的是单个的值,就是一个集合。person = {'name': 'zhangsan', 'age': 18} # 字典x = {'hello', 1, 'good'} # 集合# 如果有重复的数据,会自动去除names = {'zhangsan', 'lisi', 'jack', 'tony', 'jack', 'lisi原创 2022-01-18 22:26:13 · 92 阅读 · 0 评论 -
字典练习题
字典练习题1.求列表里边出现次数最多的字母chars = ['a', 'c', 'x', 'd', 'p', 'a', 'm', 'q', 's', 't', 'p', 'a', 't', 'c']# {'a':3 'c':2 'x':1 'd':1 'p':2}char_count = {}for char in chars: if char in char_count: # print('字典里已经有了这个字符%s' % char) char原创 2022-01-18 22:21:11 · 501 阅读 · 0 评论 -
字典以及字典的使用
字典以及字典的使用列表可以存储任意数据类型,但是一般情况下,我们都存储单一数据类型;这个列表里的每一个元素到底代表的是什么?列表只能存储值,但是无法对值进行描述;+字典不仅可以保存值,还能对值进行描述;使用大括号来表示一个字典,不仅有值 value,还有值的描述 key;字典里的数据都是以键值对 key-value 的形式保留的;key 和 value 之间使用冒号 : 来连接;多个键值对之间使用逗号,来分隔;person = {'name': 'zhangsan',原创 2022-01-18 22:10:42 · 470 阅读 · 0 评论 -
元祖以及元祖的使用
元祖以及元祖的使用元祖和列表很像,都是用来保存多个数据使用小括号 () 来表示一个元祖元祖和列表的区别在于,列表是可变的,而元祖是不可变数据类型words = ['hello', 'yes', 'good', 'hi'] # 列表,使用 [] 表示nums = (9, 4, 3, 1, 7, 9, 6, 9) # 元祖,使用 () 来表示# 和列表一样,也是一个有序的存储数据的容器# 可以通过下标来获取元素print(nums[3])# nums[3] = 40 # 元祖是不可变数原创 2022-01-18 20:40:16 · 422 阅读 · 0 评论 -
深拷贝与浅拷贝
深拷贝与浅拷贝浅拷贝只拷贝外边一层,深拷贝都拷贝import copy# 深拷贝和浅拷贝words = ['hello', 'good', [100, 200, 300], 'hi']# 浅拷贝只拷贝了一层words1 = words.copy()# 深拷贝的 words2words2 = copy.deepcopy(words)words[0] = '你好'print(words1)words2[2][0] = 1print(words2)...原创 2022-01-18 20:31:19 · 134 阅读 · 0 评论 -
列表推导式
列表推导式列表推导式的作用使用简单的语法创建一个列表# 列表推导式的作用是使用简单的语法创建一个列表nums = [i for i in range(1, 10)]print(nums)nums1 = []for i in range(10): nums1.append(i)print(nums1)x = [i for i in range(10) if i % 2 == 0]print(x)y = [i for i in range(10) if i % 2]print原创 2022-01-18 20:25:15 · 147 阅读 · 0 评论 -
列表的嵌套
列表的嵌套1.一个学校,有三个办公室,现在又8位老师等待工位的分配,请编写程序,完成随机的分配import randomteachers = ['A', 'B', 'C', 'D', 'E', 'F', 'J', 'H', 'I', 'J']rooms = [[], [], []]for teacher in teachers: room = random.choice(rooms) # choice 从列表里随机选择一个数据 room.append(teacher)prin原创 2022-01-18 19:51:35 · 165 阅读 · 0 评论 -
列表的练习
列表的练习1.求列表的最大数和下标nums = [3, 1, 9, 8, 4, 2, 0, 7, 5]nums.sort()print(nums)nums.sort(reverse=True)print(nums[0])x = nums[0] # 假设第0个是最大数index = 0for num in nums: if num > x: # 如果发现列表里存在比假设还要大的数字 # 说明假设不成立,把假设的值设置为发现的数字 x =原创 2022-01-18 19:35:01 · 435 阅读 · 0 评论 -
循环练习题
练习题1.统计100以内个位数是2,并且能够被3整除的数的个数;count = 0for i in range(1,100): if i % 10 == 2 and i % 3 == 0: count += 1 print(i)print('满足条件的数的个数是:',count)2.输入一个正整数,求它是几位数;num = int(input('请输入一个整数:'))count = 0while True: num //= 10 co原创 2022-01-18 19:34:02 · 194 阅读 · 0 评论 -
字符串的下标和切片
字符串的下标和切片下标我们有称之为索引,表示第几个数据可迭代对象:str list tuple dict set range 都可以便利str list tuple 可以通过下标来获取或操作数据在计算机里,下标都是从了 0 开始。word = 'zhangsan' #字符串:一个一个的字符串在一起可以通过下标获取或修改指定位置的数据;word = 'zhangsan'print(word[4]) #g字符串是不可变数据类型;对于字符串的任何操作,都不会改变原有的字符串;切片就是从字原创 2022-01-18 19:31:48 · 778 阅读 · 0 评论 -
冒泡排序以及优化
冒泡排序以及优化冒泡排序思想:让一个数字和它相邻的下一个数字进行比较运算,如果前一个数字大于后一个数字,交换两个数据的位置。nums = [6, 5, 3, 1, 8, 7, 2, 4]i = 0while i < len(nums) - 1: i += 1 n = 0 while n < len(nums) - 1: if nums[n] > nums [n + 1]: nums[n],nums [n + 1]=n原创 2022-01-08 19:55:16 · 506 阅读 · 0 评论 -
可变数据类型和不可变数据类型
可变数据类型和不可变数据类型不可变类型:字符串、数字、元祖可变类型:列表、字典、集合不可变数据类型,如果修改值,内存地址会发生变化;可变数据类型,如果修改值,内存地址不会发生变化;使用内置函数 id 可以获取到一个变量的内存地址;a = 12b = aprint('修改前a=%X,修前后b=%X' % (id(a), id(b))) #修改前a=6AAB6D70,修前后b=6AAB6D70a = 10print(b) # 12print('修改后a=%X,修改后b=%X' % (原创 2022-01-08 10:44:14 · 677 阅读 · 0 评论 -
列表的基本使用
列表的基本使用当我们有多个数据需要一定的顺序保存到时候,我们可以考虑列表;列表是有序可变的使用 [] 来表示一个列表,列表里的每一个数据我们称之为元素,元素之间使用逗号进行分隔;names=['吕布','董卓','孙坚','孙策','刘备','张飞','关羽']可以使用 list(可迭代对象) 将可迭代队形转换成一个列表。names = list(('宋江','李逵','武松','鲁智深','王英','张顺','石秀'))print(names)和字符串一样,都可以使用下标来获取元素和对元原创 2022-01-06 15:24:31 · 298 阅读 · 0 评论 -
字符串的格式化输出
字符串的格式化输出使用 % 占位符来表示格式化一个字符串%s:表示的是字符串的占位符;%d:表示的是整数符占位符;%nd:打印时,显式 n 位,如果不够,在前面使用空格补齐;%f:表示的是浮点数的占位符;%.nf:表示保留小数点后 n 位;%x:将数字使用十六进制输出;%%:用来输出一个 %;name = 'zhangsan'age = 18print('大家好,我的名字是',name,'我今年',age,'岁了',sep='')print('大家好,我的名字是%s,我今年%d原创 2022-01-06 11:05:17 · 2497 阅读 · 0 评论 -
in 和 not in 运算符
in 和 not in 运算符用来判断一个内容是否在可迭代对象里是否存在word = 'hello'x = input('请输入一个字符:')#判断用户输入的字符在字符串里是否存在for c in word: if x == c: print('您输入的内容存在') breakelse: print('您输入的内容不存在')if word.find(x) == -1: print('您输入的内容不存在')else: prin原创 2022-01-06 09:17:05 · 590 阅读 · 0 评论 -
字符串常见的操作
字符串常见的操作使用内置函数 len 可以获取字符串长度;print(len(x)) #14查找内容的相关方法 find、index 、rfind、rindex 可以获取指定字符的下标;x = 'abcdefghijklmndfdsl'print(len(x)) #14print(x.find('l')) #11print(x.index('l')) #11print(x.find('p')) # -1 如果字符在字符串里不存在,结果是 -1#prin原创 2022-01-05 21:22:09 · 281 阅读 · 0 评论 -
嵌套for循环 以及练习
嵌套for循环 以及练习双层for循环'''嵌套循环其实是外层循环每次取一个值和这个内层循环每一个组合一次,完成后,外层循环在取一个值和内层循环每一个值在组合一次直到外层循环取完值'''boys = ['Mike','Jack','Tom']girls = ['Lisa','Linda','Mary']for boy in boys: for girl in girls: print(f"{boy}******{girl}")练习:统计 101 ~ 200中素数原创 2022-01-04 16:50:26 · 127 阅读 · 0 评论 -
随心练习题
练习题1.统计100以内个位数是2,并且能够被3整除的数的个数;count = 0for i in range(1,100): if i % 10 == 2 and i % 3 == 0: count += 1 print(i)print('满足条件的数的个数是:',count)2.输入一个正整数,求它是几位数;num = int(input('请输入一个整数:'))count = 0while True: num //= 10 co原创 2022-01-04 12:07:43 · 90 阅读 · 0 评论 -
嵌套循环练习
嵌套循环练习打印矩形i = 0while i < 5: print('*' * 5,end='\n') i += 1python 里可以用一个循环打印三角形i =0while i < 5: i += 1 print(i * '*')嵌套循环打印矩形#嵌套打印矩形#总结外循环控制行数,内循环控制列数# print('*',end=' ')# print('*',end=' ')# print('*',end=' ')# print('*原创 2022-01-01 21:31:15 · 483 阅读 · 0 评论 -
break 和 continue 的使用
break 和 continue 的使用break 和 continue 在 Python 里只能用在循环语句里break:用来结束整个循环continue:用来结束本轮循环,开启下轮循环i = 0while i < 5: if i == 3: i += 1 continue print(i) i += 1i = 0while i < 5: if i == 3: i += 1 bre原创 2022-01-01 20:13:26 · 308 阅读 · 0 评论 -
循环体结构
循环while 循环循环就是让一件事情重复多次Python里面的循环分为 while 循环 和 for 循环,Python里不支持 do…while 循环。while 循环的基本使用while 条件判断 条件成立时执行的代码例子x=0while x < 10 : print("hello world") x += 1 #x++ pyghon 里没有自增自减运算符例子:1 到 100 的整数的之和 / 偶数的和i = 0Sum = 0whi原创 2022-01-01 16:37:24 · 355 阅读 · 0 评论 -
位运算 按位与& 按位或| 按位异或^ 按位左移<< 按位右移>> 按位取反~
位运算按位与& 按位或| 按位异或^ 按位左移<< 按位右移>> 按位取反~a = 23b = 15print(a & b) #7print(a | b) #31print(a ^ b) #24#计算过程0001 0111 #230000 1111 #150001 1000 #24 按位异或:相同为0,不同为10001 1111 #31 按位 或:只要有一个为1,就为10000 0111 #7 按位与:同为1则为1,否则为0x原创 2021-12-31 15:49:38 · 268 阅读 · 0 评论