# 两周内搞定 # 第一遍快阅 # 第二遍认真读 """ 第一章 + 第二章 #在python中 单引号 双引号没有区别 fp=open('D:/text.txt','a+') #一定要赋值给变量,银锭要写盘符路径,一定要写a+ print('hello','world','python',file=fp) #一定要把文件变量赋值给file fp.close() #结束文档流,running几次,在文件中写几次 print('hello','world','python') #单行书写 print('abcdabcdabcd') print("abcdab\tabce") #\t空格部位符号,一般是4个空格, #\r回车符 覆盖作用 #\b退格符,删掉一个格 #\n另起一行 newline #\\输出一个\ #\'输出一个单引号 #\"输出一个双引号 print(r'hello\nworld') ## r 或 R 使转义字符失效,但是结尾 反斜杠 个数必须是双数 print(r"hello\nwlkdl\\\\\\") print(0b101) #二进制转10进制 print(chr(0b01000001)) ##十进制转字符串 print(ord('A')) #字符串转十进制编码 print(0b1010) #0b开头二进制 print(0o147) #0o开头八进制 print(0x165EA9)#0x开头十六进制 from decimal import Decimal print(Decimal('1.1')+Decimal('2.2')) # —————————————————————————————————————————————————— 练习—————————————————————————————————————————— from decimal import Decimal print(Decimal('1.1')+Decimal('2.2')) wode=open('D:/text2.txt','a+') print('没有躺赢的命,就请站起来奔跑!',file=wode) wode.close() #——————————————————————————————————————————————-第三章—————————————————————————————————————————————— present=input("大声想要社么礼物") print(present) a=input("请输入整数") b=input("请输入第二个证书") print(int(a)+int(b)) a=int(input("请输入一个整数")) b=int(input("请输入一个整数")) print(a+b) print(type(1)) # 类 型 print(1+2) # 加 法 print(1*2) # 乘 法 print(1-2) # 减 法 print(1/2) # 除 法 print(11//2) # 整 除 print(11%2) # 取 余 数 print(2**4) # 求 平 方 print(9//-4) # 下 取 整 print(-9//4) # 下 取 整 print(-9%4) # 余数=被除数 - 除数*商 除数是负数,余数一定是负数。 a=b=c=20 #a、b、c、的对象里都存储了同一个地址。都指向 value为20的对象的地址。 #-------------------------------------------------《解包赋值》------------------------------------ a,b,c=20,30,40 print(a,b,c) #-----------------------------------------------------------------《交换赋值》------------------------ a,b=14,23 a,b=b,a print(a,b) #--------------------------------------------------------------《比较运算》------------------------ # <、>、<=、>=、==、!= 两符号之间是“或 ||” 的关系。 a=10 b=10 print(a==b) print(a is b) list1=[11,22,33,44] list2=[11,22,33,44] print(list1==list2) print(list1 is list2) print(id(list1)) print(id(list2)) ##一个变量有id、type、value, is比较id #==比较value # and 一假为假 # or 一真为真 # in 在**里面 s="djlksjd" print("d" in s) is是同一性运算符,“is”主要来判断两个对象的身份标识,及两者的基本要素“id”也叫统一性运算。 python 中整形对象和字符串对象是不可变对象,所以python会很高效的对他们进行缓存,所以在程序上来看, 本应该对他们进行创建新对象时,却并没有创建,而是对他们进行了缓存 但是python只缓存简单整形,因此python程序中,这些小整形会经常被用到,而python缓存的值也是有一定范围且可变的。 a = 2.0 b = 2.0 print(a is b) a is b ------------------------------------------------《对象的布尔值为false》------------------- python一切皆对象,所有的对象都有一个布尔值, 获取对象的布尔值 用函数 bool() false 数值0 none 空字符串 空元组 () tuple() 空列表 [] list() 空集合 set() 空字典 {} dict() -----------------------------------------------------《单分支》------------------------------ s=int(input("请输入一个整数" )) if s%2==0: print(s,"为偶数") else: print(s,"为奇数") --------------------------------------------------------《多分枝》---------------------------------- score=int(input("请输入您的成绩 :")) if 90<score<=100: print("Aji") elif 80<score<=90: print("Bji") elif 70< score<=80: print("cji") else: print("大错特错") num_a = int(input("请输入一个 整数")) num_b = int(input("请输入一个 整数")) if num_a >= num_b: print(num_a,"大于",num_b) else: print(num_a,"小于",num_b) ———————————————————————————————————————----《条件表达式 》————————————---------------——————————————————————— num_a = int(input("请输入一个 整数")) num_b = int(input("请输入一个 整数")) # x if 条件语句 else y # 结果为true if 条件语句 else 结果为 false print(num_a,"大于",num_b) if num_a>=num_b else print(num_a,"小于",num_b) #加号 在 print 里 是连接的意思,连接字符串,所以要把数字用str()变成字符串 ----------------------------------------------《pass语句》------------------------------------------------ #用于搭建语法结构时占位。 -------------------------------------------《内置函数染个()》------------------------------------------------------- # range() 用以生成一个整数序列 1)range(stop) 创建一个[0,stop)之间的整数序列,步长为1 2)range(start,stop) 创建[start,stop)之间的整数序列,步长为1, 3)range(start,stop,step) 创建[start,stop)之间的整数序列,步长为step #list()#用于查看range()对象中的整数序列, --》list是列表的意思 #不管range 对象表示的整数序列有多长,所有的对象占用的内存空间都是相同的,因为仅需要存储start,stop,step,只有用到range对象时,才会去计算序列中的相关元素 #用in 或者 not in 判断数值是否在数列中, r=range(2,10,3) print(list(r)) print(7 in r) print(7 not in r) ----------------------------------------------《while循环》----------------------------------------------- a =1 if a<10: #判断是否为ture是就执行,执行完就退出, print(a) a+=1 a =1 while a<10: #判断是否为ture是就执行,执行完 再判断是不是true,直到为false就退出, print(a) a+=1 #---------------------<0~4的总和用while>--------------------while 用于次数不固定的循环 a =0 sum=0 while a<5: sum += a a+=1 print("和为",sum) #--------------------------------《1~100之间的偶数和》---------------------------- a=1 sum=0 while a<=100: if not bool(a%2): # if a%2: 取奇数和 # if a%2==0: 取偶数 sum+=a a+=1 print("和为",sum) #------------------------------------《遍历for in》---------------- for 用于遍历字 符串 和 range() for item in "python": print(item) #range()是一个可迭代对象(可用作循环次数) for i in range(10): print(range(i)) for _ in range(5): print("python") #----------------------------《一到一百内的偶数和》-------------------------- sum=0 for i in range(101): if i%2==0: sum += i print("一到一百的偶数和:",sum) #--------------------------------------《输出100到999之间的水仙花数》------------------------------------ #example: 三位数 = 个位数^3+十位数^3+ 百位数^3; for item in range(100,1000): a= item//100 b= item%100//10 c= item%10 if item==a**3+b**3+c**3: print(item) #-------------------------------------------《输入密码break》----------------------------------------------------- #-------------------------------《for循环判断》----------------------- for i in range(3): pwd = str(input("请输入密码:")) if pwd=="888": print("密码输入正确") break else: print("密码输入错误") #-----------------------------《while循环判断》--------------------- a=0 while a<3: a+=1 pwd=input("qimm") if pwd=="888": print("you are right") break else: print("wrong") #-------------------------------------------《continue》------------------------------------------------ for i in range(1,51): if i%5!=0: continue print(i) i=1 while i<51: if i%5!=0: i += 1 continue print(i) i+=1 #--------------------------------------------《else》---------------------------------------------- #=============================================《for ~ ~ ~ ~ ~ ~ ~ ~else》================== for i in range(3): pwd = input("请输入您的密码:") if pwd=="888": print("对了") break else: for range()遍历 不需要 i++ print("错了重输") else: print("您已超出三次机会了") #============================================《while ~ ~ ~ ~ ~else》======== a=0 while a<3: pwd=input("请输入密码:") if pwd=="888": print("dui") break else: print("错了") a+=1 else: print("辣鸡") #------------------------------------《嵌套式循环》----------------------------------------------- for i in range(3): for j in range(4): print("*",end="\t") print() #---------------------------------------《直角三角形》---------------------------------------------- for i in range(9): for j in range(i+1): print("*",end="\t") print() #----------------------------------------《9*9乘法表》----------------------------------------------- for i in range(1,10): for j in range(i+1): if j==0: continue print(j,"*",i,"=",i*j,end="\t") print() for i in range(1,10): for j in range(1,i+1): print(j,"*",i,"=",j*i,end="\t") print() #----------------------------------------《break 和 continue》----------------------------------------------------- #------------------------------------《流程控制语句break 、continue 在二重循环中的使用》--------------------------------- # break 退出当前循环圈儿 到上一层循环圈去继续循环 # continue 退出当前循环圈的本次循环, 下一次循环 # 都是对当前层循环进行操作。 for i in range(5): for j in range(1,11): if j%2==0: #break continue print(j,end="\t") print() #-------------------------------------------《list》------------------------------------------------ #list=["hello","world",98] ================ # 列表元素须有序排序 #索引映射为一个数据 左——>右 0,1,2,3,4.... 右-——>左 -1,-2,-3,-4....... #可以存储重复数据 #数据类型可以混存 #根据需要动态、分配和回收缓存, lst=list(["hello","world",98,33,"python","ecnd","sd"]) print(lst) print(lst.index(98)) #求列表中 元素98 的索引 print(lst.index("python",3,5)) # python 在小标为4的地方 在index标注的第3到第5中找python,包左不包右的 #先选中多行,然后按ctrl+/键注释,再按一次取消注释. print(lst[4]) #lst[角标] print(lst[-5]) #------------------------------------《获取列表中多个元素的-----切片操作》------------------------------------------ lst=[9,"sd",23,"sfg","sdfs","sdfc"] print(lst.index(23,1,3)) #index(list中的value,从左数小标,从左数小标但不包含该位置) print(lst[1:5:2]) #切片不包括下标为stop的值 lst2=lst[1:5:2] print("原切:",id(lst)) print("切片:",id(lst2)) #新切的列表 id 和 源列表不一样 #切片是为了获取新列表 所以和列表原地址不一样 print(lst[1:6:]) print(lst[1:6]) #步长为1 省略步长 print(lst[:6:1]) #省略 start 从第一个开始 print(lst[1::1]) #省略 stop 列表长包含最后一个元素 print(lst[::-1]) #step 为-1 从start开始往前切片 #可以理解为倒叙 print(list[7::-1]) #从左数,下标为7的值开始,向 -1 方向切片 print(list[:4:-1]) #从-1方向开始,切到下标为stop的值(不包括stop) #优先级:start > step > stop (切片不包括下标为stop的值) print(list[:4:-2]) #一定不包括stop小标的value!!!!!! #步长为2 --------------------------《列表元素的遍历和判断》----------------------------------- #item 是迭代变量 #列表元素的遍历 list=[12,44,21,21] for item in list: print(item) #列表元素的判断 print(12 in list) print(32 not in list) ---------------------------------《列表元素 的 添加 操作》-------------------------------------- #append(添加一个元素) 在列表后面添加 一个 元素 #extend(列表名) 在列表后面添加 至少一个元素 #insert(a,b) 在列表a位置中 插入b元素 #添加不改变 list 的 id 地址(list存储的是列表的初始id) list=[13,23,33] print(id(list)) list.append(99) print(list) list1=['hole','ss'] list.extend(list1) print(list) list.insert(1,505) list.insert(3,505) print(list) print(id(list)) #切片 =list 把新的列表赋值给切片 list=[13,23,33] list.insert(0,505) print(list) list3=["wo","zai","zhe"] list[1:2]=list3 print(list) #---------------------------------《列表元素 的 删除操作》---------------------- #remove(元素) 一次删除一个元素 # 重复元素值 删除第一个 #元素不存在 valueError list=[1,2,3,4,2] print(id(list)) list.remove(2) print(id(list)) print(list) list.pop(2) print(id(list)) print(list) #pop(index) 删除一个指定索引位置上的元素 # 不指定索引会删除列表中的最后一个 #元素不存在 indexError #切片删除 list[start:stop:step]=[](给一个空列表替代) list=[1,2,3,4,2] list.pop(2) print(list) list.pop() print(list) list[2:3:]=[] #clear() 清空列表 空列表和源列表地址一样 list.clear() #del() 删除列表 del list ------------------------------《列表元素 的更改》------------------------------ list=[1,2,3,4,5] #更改一个值 直接给索引赋值 list[3]=505 print(list) list[2:3]=["I","LOVE","YOU"] #更改连着的一排值 直接给切片 赋 一个链表 print(list) --------------------------------------《排序》------------------------------------- list=[10,20,90,50,30,40] list.sort() print(list) list.sort(reverse=True) # 倒叙 print(list) list.sort(reverse=False) # 正序 print(list) #id不变 在原基础上改 ========================《内置函数 sorted》================= list=[10,20,90,50,30,40] print(id(list)) print(list) list=sorted(list) print(id(list)) #内置函数 sorte() 生成新的列表id print(list) list=sorted(list,reverse=True) print(list) list=sorted(list,reverse=False) print(list) -----------------------------《列表生成》----------------------------------------------------------- list=[i*2 for i in range(1,6)] print(list) ------------------------------------《字典》---------------------------------- str / int 是不可变序列 dict /list 是可变序列 dict()#内置函数 ------------------------------------《新建字典》------------------------------- score={"name":"张三","age":18,} print(score) score=dict(name="张三",age=18) print(score) score={} print(score) -------------------------------------《字典获取元素》-------------------------- score={"name":"张三","age":18,} print(score["name"]) print(score.get("name")) #print(score["陈丽"]) key Error print(score.get("陈丽")) #none print(score.get("陈丽",44)) #44 ------------------------------------《字典元素 的 增 删 改》------------------------------------ score={"name":"张三","age":18,} print("name" in score) #判断 score["sex"]="nv" #新增 print(score) score["sex"]="nan" #更改 print(score) del score["age"] #删除 print(score) -===============================《获取字典视图》=============================== score={"name":"张三","age":18} print(score) keys=score.keys() #keys 属性 将所有的key组成的视图转成列表 print(keys) values=score.values() print(values) #将所有的value组成视图转成列表 items=score.items() print(items) #dict_items([('name', '张三'), ('age', 18)]) # 属性 ()是元组的意思 #将所有的key-value对转成 元组的列表 =================================《字典元素的遍历》===================================== scores={"name":"尹珺","gae":18} for item in scores: print(item,scores[item],scores.get(item,00)) =================================《字典的生成方式》====================================== #字典中的 key键不可重复 , value值可以重复 d={"name":33,"name":88} print(d) #key键重复 输出最后一个键 #字典元素是无序的 #字典的key必须是不可变对象 #字典是可以根据需要可动态伸缩的, #字典会浪费较大的内存,是一种用空间换时间的数据存储方式 key=["name","li","sdm","werf"] #字典的创建 value=["sdjf","sg","sdfa","awe","s"] dic={a.upper():b for a,b in zip(key,value)} print(dic) ====================================《元组创建方式》====================================== a=(90,"name",88) print(a) print(type(a)) p="23name",23,"mme" print(p) print(type(p)) d=("name",) #单个元组 一定要有逗号 print(d) print(type(d)) f= tuple((11,"name",98)) #tuple print(f) print(type(f)) ================================《为什么要将元组设计不可变序列》================================ #为什么要将元组设计成不可变序列 #在多任务环境下 ,同时操作对象是不需要加锁 #因此程序中尽量使用不可变序列 #元组总存储是对象的引用: #如果元组中对象本身不可变对象,则不能在应用其他对象 #如果元组中的对象是可变对象,则可变对象的引用不许改变,但数据可以改变 #字典字典由花括号定义 由键值对组成的一种结构 由哈希算法放入。。。。。 --------------------------------《元组 的 遍历》-------------------------------------------- t=("sd","sd",23,23) for item in t: print(item) ===================================《set()集合》=====================================================‘’ #字典的定义:由{}定义 由 key:value 对所组成的 数据结构 #集合的定义:只有key 没有value值 s={'s','e','e','e','e'} print(type(s)) #集合就是set()转化 #集合是无序的 #集合和字典是一样的 key重复 输出最后一个key #转化字符串 要先分开字符串 在按照元素转化成 集合 # 总结 去重 打乱 转化 ----------------------------------------《转化成集合》-------------------------------------------- jihe={"ds",34,"33"} #集合 print(jihe,type(jihe)) d=set(["se",3,33,53,53]) print(d,type(d)) #列表转化集合 s=set({"name":88,"set":99,"name":0}) print(s,type(s)) #字典转化集合 f=set((3,)) #元组转化集合 print(f,type(f)) zi=set("ee") #先分开 变成 "e" 和 "e" 然后 去重(字符串转化集合) print(zi,type(zi)) a=set() #空转化集合 print(a,type(a)) s=set(range(5)) # 打乱顺序 转化集合 print(s,type(s)) y=set({"ee",33,"34"}) #转化集合 print(y,type(y)) # s={"name":88,"set":99,"name":0} #字典是去重的 # print(s.items()) #获取字典的以元组 为元素 # print(s.keys()) #获取字典的key # print(s.values()) #获取字典的值 s={"name":88,"set":99,"name":0} s["er"]=00 s["ersd"]=00 print(s) #字典添加是在末尾添加 重复的key 显示最后一个 放在第一个key的位置上 =========================================《集合的相关操作_____集合的新增操作》=================================== s.add("a") #添加一个元素a s.update([32,345,32]) #添加至少一个list s={33,24,5,543} s.add("a") #添加一个元素 list={33,24,13} s.update(list) print(s) s.update([32,345,32]) print(s) #添加至少一个list s.update(("34","55")) print(s) #添加至少一个元组 s.update("eee") #添加字符串 print(s) ---------------------------------------------《集合的相关操作》---------------------------------------------- s.add() #添加元素 s.update() # 添加至少一个元素 s={34,343,222,"df"} s.add("sdsd") print(s) s.update(("sdf",343434,2223232)) #要转成集合 / list / 元组 等类型 print(s) -----------------------------------《集合——删除》----------------------- s.pop() #pop()没有参数 不可添加参数 s.remove() #找不到删除元素 报异常 s.discard() #找不到删除元素 不报异常!!! s.clear() #清除 s={44,"df",45,"er4","e4e4"} print(s) s.pop() #pop()随即删除 一个元素 没有参数 不可添加参数 print(s) s.discard(90) #有参数 但不报 error print(s) s.remove(88) print(s) #报异常 error s.clear() #清空 print(s) =================================================《集合间的关系》==================================== A == B #判断 A B集合是否相等 (只要元素相等,不需要考虑地址) A.issubset(B) #判断A是B的子集 对么 A.issuperset(B) #判断A是B的父集 对么 A.isdisjoint(B) #判断A 和 B 不相交 是无交集 是 true s={1,2,3,4,5,6,7,8} s4={4,2,1,3} s1={1,2,3,4} s2={2,3,9} print(s2.isdisjoint(s)) print(s1.issubset(s)) print(s.issuperset(s2)) print(s1==s4) print(s!=s4) ======================================《集合数据操作》=================================== #交集 差集 对称差集 并集 s={1,2,3,4} s1={1,2,3,5} print(s1.union(s)) #并集 print(s1|s) print(s1.intersection(s)) #交集 print(s1&s) print(s1.difference(s)) #差集 print(s1-s) print(s1.symmetric_difference(s)) #差集 print(s1^s) ---------------------------------------《集合生成式》------------------------------- s={i*i for i in range(10)} #和列表差不多 =================================================================================《字符串 的驻留机制》===================== #字符串是不可变序列 -----------------------《驻留机制》------------------------- 1。字辅串长度为 1 或 0 2。符合标识符(字母 数字 下划线) 3。调用 类似 join() 函数 前 是 驻留机制 4。[-5,256] 内的数字是 驻留机制 5。强制驻留: import sys a=... b=.... a=sys.intern(b) #注意:pycharm 是强制 优化字符串 驻留机制 #join() 这个函数 new 的效率高 ----------------------------------------------《字符串的查询》------------------------------------------ # .index("字符串") 左侧开始查询 # .rindex("字符串") 右侧开始查询 没有会报error # .find("字符串") 左侧查询 # 。rfind("右侧查询") 右侧查询 没找到 就 报 -1 -------------------------------------------------《字符串的大小写转换》------------------------------------------ # .title() 每个单词的抬头 大写 # .swapcase() 原单词的大小写转换 # .upper() 全大写 # .lower() 全小写 # .capitalize() 仅第一个首字母大写 ------------------------------------------------------《字符串内容对齐的操作》--------------------------------------------- # .center(20,*) 居中对齐 宽度小 则反原字符 # .ljust(20,*) 左对齐 (字符串的宽度 ,用*号填充) .ljust(20) 宽度小 返回原字符 宽度大 没有填充参数 用空格填充 # .rjust(20,*) 右对齐 其余同上 # .zfill(20) 右对齐 宽度大 用 0 填充 多余空格 宽度小 返回 原字符 s=“-42f” print(s.zfill(8)) -00042f ---------------------------------------------------------《字符串的劈分》------------------------------------------------ # .split() 默认空格 分串 # .split(sep="|") 以 这个 | 为基准 把字符串分 段 不包含这个 “|” # .split(sep="o",maxsplit=2) 以这个字符串 “o” 为基准分段 不包含 “o” 从左数 最大分 2次(3段) .rsplit() #同上相反的 s="hello world | i love you" print(s.split()) print(s.split(sep="o",maxsplit=2)) =====================================================《字符串的判断》================================================= .isidentifier() 判断是否符合 合法标识符 .isdecimal() 判断是否符合十进制数(包含数字0) .isalpha() 是否符由字母组成 .isnumeric() 符合 数字么 ”四“ ”罗马数字“ ”656“ 都算数字 .isalnum() 判断 是否 由 数字和字母 组成 .isspace() 空字符串 (回车空格水平制表符) ==================================================《字符串的替换链接》==================================== #.replace(原,新,换几次) # "**".join(t) 把t列表 里的字符串 用**链接起来 # “**”.join("python") 结果: p**y**t**h**o**n t="hello,hello,G,hello" print(t.replace("hello","A",3)) t=["hello","nin","hello","hello"] print(type("".join(t))) print("*".join("python")) ================================================《字符串的比较》================================================= ord("单个字符") chr("单个字符") print("abc"<"abcd") print(ord("a"),chr(97)) ====================================================<字符串的切片>==================================================== s="hello,world" print(s[3:8:]) #包首不包尾,生成新id print(s[-2:-8:-1]) #倒叙 ===================================================《字符串的格式化》============================================ # print("{0:*^20.3f}".format(3.14155926)) # print("%10d"%(5)) # print(f"{44:*^10.2f}") # print(f"{33.222:*^10.7}") #笔记注释 =======================================================《字符串的编码与解码》================================== #编码格式: ”GBK“(一个中文占两个字节) "UTF-8"(三个) s="天元区多" print(s.encode(encoding="GBK")) e=s.encode(encoding="GBK") print(e.decode(encoding="GBK")) s="天元" print(s.encode(encoding="UTF-8")) e=s.encode(encoding="UTF-8") print(e.decode(encoding="UTF-8")) =====================================================《函数的定义》============================================ =======================================================《函数传递》====================================== #实参 传递 #关键字传递 ========================================================《全局变量》========================================= def fun(): global age #用global 后 age 变全局变量 print(age) ========================================================《递归》========================================= 定义:调用函数本身为递归 组成:递归调用 + 结束语 过程:每调用一次 都在站内分配一个栈帧 每执行完一次 都释放一次相应的空间 优点:思路代码清晰 简单 缺点:占用内存多 效率低 def fib(n): if n==1: return 1 else: return n*fib(n-1) print(fib(6)) =======================================================《斐波那契数列》=============================== def fib(n): if n==1: return 1 elif n==2: return 1 else: return fib(n-1)+fib(n-2) for i in range(1,7): print(fib(i)) =======================================================《斐波那契数列 列表》=============================== list=[] def a(m): for n in range(1,m+1): def fun(n): if n == 1: return 1 elif n == 2: return 1 else: return fun(n - 1) + fun(n - 2) list.append(fun(n)) print(list) print(type(a(6))) ==================================================================《》================================================ for i in range(3): uname=str(input("输入用户名")) pwd=int(input("请输入密码")) if uname=="admin" and pwd==998: print("正确") break else: print("重新输入") else: print("三次都错了") ================================================================================import traceback======== try: print("-------------------------") print(1/0) except: traceback.print_exc() -------------------------------------------《递归》------------------------------------------------------- def fac(i): if i==1: return 1 else: return fac(i-1)*i run=fac(6) print(run) list=[] def a(m): for n in range(1,m+1): def fun(n): if n == 1: return 1 elif n == 2: return 1 else: return fun(n - 1) + fun(n - 2) list.append(fun(n)) print(list) print(type(a(6))) class Person(object): def __init__(self,name,age): self.name=name self.age=age def info(self): print("姓名:",self.name,"年龄:",self.age) class Student(Person): def __init__(self,name,age,stu_NO): super().__init__(name,age) self.stu_NO=stu_NO def info(self): super().info() print("学号:",self.stu_NO) stu=Student("张三",12,'1101') import os path=os.getcwd() --------------------输出当前路径 print(path) list=os.listdir(path) --------------------当前路径下的文件列表 print(list) for filename in list: --------------------输出路径里的py文件 if filename.endswith(".py"): print(filename) a=0 --------------------输出100以内的奇数 sum=0 while a<101: if bool(a%2): sum+=a a+=1 print(sum) sum=0 -------------------输出100以内的奇数 for i in range(101): if i%2: sum+=i print(sum) a=0 ---------------------输出 ”个为的立方“ 加 ”十位的立方“ 加 ”百位的立方“ 等于 这个数 b=0 c=0 for i in range(100,1000): a=i%10 #个位数 b=i//10%10 #十位数 c=i//100 #百位数 if i==a*a*a+b*b*b+c*c*c: print(i) for i in range(3): -------------------- 用for in 循环 判断密码是否正确 pwd=input("请输入密码:") if pwd=="888": print("密码正确") break else: print("密码错误,请重新输入:") a=0 ------------------- 用while循环 判断密码是否正确 while a<3: pwd=input("请输入密码:") if pwd=="888": print("密码正确!") break else: print("密码错误") a+=1 for i in range(1,51): ---------------------- 输出1-51之间,不是5的倍数 if i%5==0: continue print(i) for i in range(3): --------------------- 遍历3次不成功输出 “已经输出3次” pwd=input("请输入密码:") if pwd=="888": print("密码正确!") break else: print("密码错误,请重新输入") else: print("已经输入三次") a=0 ----------------------- while 循环密码程序 while a<3: pwd=input("请输入密码:") if pwd=="888": print("密码输入成功!") break else: print("密码输入失败!") a+=1 else: print("你已经输入3次") for i in range(1,10): ------------------------- 用for遍历 打印阶梯阵星星 for j in range(1,i+1): print("*",end="\t") print() for i in range(1,10): ----------------------------- 用for in套for in 写乘法表 for j in range(1,i+1): a=i*j print(j,"*",i,"=",i*j,end="\t") print() class Person(object): #-------------------《继承》《封装》---------- def __init__(self,name,age): self.name=name self.__age=age #------------------《隐藏属性》--------------- def info(self): print("姓名:",self.name,"年龄:",self.__age) class Student(Person): def __init__(self,name,age,stu_NO): super().__init__(name,age) self.stu_NO=stu_NO def info(self): #--------------------《方法重写》----------------- super().info() print("学号:",self.stu_NO) stu=Student("张三",12,'1101') def show(): #----------------《动态绑定方法》----------------- print("聂峰") stu.show=show stu.info() stu.show() # print(stu.__age) # print(dir(stu)) print(stu._Person__age) class Student(): #-----------------str重写,返回对象的描述 def __init__(self,name,age): self.name=name self.age=age def __str__(self): return "{0},{1}".format(self.name,self.age) stu=Student("张三",10) print(stu) class Animal(object): -------------------《多态》------- def eat(self): print("动物吃肉") class Dog(Animal): def eat(self): print("狗吃肉") class Cat(Animal): def eat(self): print("猫吃鱼") class Person(object): def eat(self): print("人吃人") def fun(obj): obj.eat() fun(Animal()) fun(Dog()) fun(Cat()) fun(Person()) class A(): #-------------------------《特殊属性》---- pass class B(A): pass class D(): pass class C(B,D): pass x=C() print(A.__subclasses__()) print(x.__class__) print(C.__dict__) print(x.__dict__) print(C.__mro__) print(C.__base__) print(C.__bases__) class Student(): #-------------------《特殊方法》 def __init__(self,name): self.name=name def __add__(self, other): return self.name+other.name def __len__(self): return len(self.name) s1=Student("A") s2=Student("B") s=s1+s2 print(s) s=s1.__add__(s1) print(s) x=len(s1) print(x) x=s1.__len__() print(x) class Person(object): #----------------- __new__方法和 __init__ 方法 def __new__(cls, *args, **kwargs): print("new的id为{0}".format(id(cls))) obj=super().__new__(cls) print("obj的认为{0}".format(id(obj))) return obj def __init__(self,name,age): print("self的Id为{0}".format(id(self))) self.name=name self.age=age print("object类id为{0}".format(id(object))) print("Person的id为{0}".format(id(Person))) p=Person("张",20) print("p的id为:",id(p)) #----------------copy浅拷贝 #----------------deepcopy深拷贝 answer=input("您是会员么:y/n") #------------会员金额 money=float(input("请输入付款金额")) if answer=='y': if money>=200: print("付款金额:",money*0.8) elif money>=100: print("付款金额:",money*0.9) elif money>=50: print("付款金额:",money*0.95) else: if money>=200: print("付款金额:",money*0.95) else: print("您的付款金额:",money) is是内存地址的比较 ==是value的比较 对象由三部分组成 id type value python一切皆对象 所有对象都有一个布尔值bool() a=int(input("输入一个")) #--------比较大小 b=int(input("输入一个b")) print( str(a)+"大于等于"+str(b) if a>=b else str(a)+"小于等于"+str(b)) lst=[1,2,3,4] #--------和insert差不多 lst2=["hello","python"] lst[2:3]=lst2 print(lst) lst.insert(3,99) #---------在index为3的位置插入,原有的下标3往后挪动 print(lst) print(lst.index("hello")) #-------------输出元素的下标 print(lst.index(99,2,5)) lst6=[1,2,3,4,5,6] lst6.remove(2) #--------remove里要填写元素不可填写index print(lst6) lst6.pop() print(lst6) lst6.pop(1) print(lst6) print(lst6.index(1)) lst7=[10,20,30,40] #---------------------切片list lst7[1:3] print(lst7[1:3]) lst=[100,2800,300] #--------排序列表lst.sort(reverse--) sorted(lst,reverse--) print(id(lst)) lst.sort() print(lst) lst.sort(reverse=True) print(id(lst)) print(lst) print("--------------------------") newlst=sorted(lst,reverse=False) print(newlst) lst=[i*i for i in range(1,10)] #-----------列表生成式 score={"张三":100,"里斯":90,"阿里":20} #---------字典的创建 print(score) SS=dict(name="张三",age=20) print(SS) d={} print(d) score={"张三":32,"里斯":344} print(score["张三"]) print(score.get("马蹄",41)) #-------------若不存在则报41 score={"里斯":22,"案例":34,"饿哦":32} #------------------增删改查 score["A"]=00 del score["饿哦"] score["里斯"]=999 print("案例" in score) print(score) score={"爱我":00,"牛逼":57,"家具":33} #-------------------获取字典视图 keys=score.keys() print(keys) print(type(keys)) print(list(keys)) values=score.values() print(values) print(type(values)) print(list(values)) items=score.items() print(items) print(type(items)) print(list(items)) score={"LA":100,"KD":15} #---------获取字典的值 for item in score: print(item,score[item],score.get(item)) item=["lda","dd","sde"] #----------------字典生成式 value=[55,28,66,47] d={item.upper():value for item,value in zip(item,value)} print(d) s='hello pleelwtg' #-----------劈分 lst=s.split() print(lst,id(s),id(lst)) print(s.split('l',maxsplit=1),id(s)) s='hellopyhton' print(s.isidentifier()) print(s.isalnum()) print(s.isnumeric()) #是否是数字组成(一二三四/1234/罗马数组一二三四) print(s.isalpha()) #是否由 张三或者abc 组成 print(s.isspace()) print(s.isdecimal()) name='Haha' age=11 print('我叫%s,今年%d岁'%(name,age)) #----占位符 print('{0}{1}'.format(name,age)) #---占位符 print('%.f' % 3.1415926) #-----点f表示 一个宽度 print('%f' % 4.562960155) #------f表示小数 print('{0:.3}'.format(3.1415)) #-------点3表示宽度为3个的小数 print('{0:10.3}'.format(3.1415926)) #--------数字取3个长度,总宽度用10个位置 item="aa Ad fG" #---------修改字符串的大小写 print(item.upper()) def fun(*arg,**B): #-----------(个数可变的位置形参)和(个数可变的关键字形参) print(arg) print(B) fun(10,22,42) fun(name='离散',age=10) lst=[12,33,441,2] dict={"name":"离散","age":23} fun(*lst) fun(**dict) print("------------------------") fun(10,20,30,a=10,b=100) def fun(a,b,c,d): #-----------------调用函数 print(a,b,c,d) fun(10,20,c=10,d=40) def fun(n): #递归函数阶乘 if n==1: return 1 else: return n*fun(n-1) print(fun(6)) def fac(a): #----------斐波那契数列 for i in range(1,a): def fun(i): if i==1: return 1 elif i==2: return 1 else: return fun(i - 1) + fun(i - 2) print(fun(i),end=" , ") fac(7) file=open('a.txt','r',encoding='utf-8') #----------window默认是GBK,utf-8会报错,两种解决办法:1.文件改成gbk,2,系统格式改成utf-8 print(file.readlines()) file.close() file=open('c.txt','a') #写在新文件里 file.write('后') file.close() A=open('.png','rb') #二进制文件的复制 rb 或者 wb “a+”读写模式 B=open('copy.png','wb') B.write(A.read()) A.close() B.close() file=open('a.txt','w') #----------文件的 writelines() lis='hello' file.write(lis) file.write('\n') file.write(lis) file.close() file=open('a.txt','r') print(file.read()) file.close() file=open('a.txt','w') lst=['朱一品\n','吼吼'] file.writelines(lst) file.close() file=open('a.txt','r') file.seek(1) #------GBK:汉字是seek(2)2个字节为一个汉字从第二个汉字开始读取,英文是seek(1)1个字节为1个字母,从第二个字母开始读取,seek()从数字第1开始,没有下标是0的说法 print(file.read()) #---- utf-8 : 中汉字是三个字符,,所以seek(3)或者3的倍数 file.close() #上下文管理器: # with之后 as之前的成为上下文表达式,其结果是上下文管理器(类对象实现特殊方法 _enter_() 和 _exit_() 这两个方法,称这个类对象遵守上下文管理器协议, # 而这个类的实例对象为上下文管理器) with open('logo.png') as src_file: #把路径文件图复制到目标文件图中,相比以上的close()函数,着个类中自带,不需要额外写 with open('fz.png','wb') as target_file: target_file.write(src_file.read()) import os # os.system('notepad.exe') # os.system('calc.exe') os.startfile('D:\Google_down\WX\WeChat\WeChat.exe') import os # os.startfile('C:\Program Files (x86)\Lenovo\SLBrowser\SLBrowser.exe') os.startfile('C:/Users\86186\AppData\Local\Google\Chrome\Application\chrome.exe') ##按照Linux的路径斜杠符号/来写路径,而是按照Windows的路径斜杠符号\来写的,因此造成了这个异常。 import time #-----计算代码运行时间 用import time start=time.time() start=time.time() def add(start,end): if start<end: res=sum(range(start,end+1)) print(res) else: print("错了") n=1 nn=2 print(n,"+",nn,"=",n+nn) print(add(1,20)) end=time.time() print('Running time:%f Senconds'%(end-start)) #os 模块的操作方法 import os print(os.getcwd()) #---------获得该文件的路径 lis=os.listdir('../04') #---------获得指定路径下的所有目录列表 print(lis) # os.mkdir("newdir2") #----------在当前文件夹中建立同级文件夹 newdir2 # os.makedirs('a/b/c') #----------建立同级 “多级文件夹a下的b下的c” # os.rmdir('newdir2') #--------删除刚刚建立的文件夹 newdir2 # os.removedirs("a/b/c") #--------删除刚刚建立的整个 “多级文件夹 ” # os.chdir("D:\\NEW") #--------更改文件的操作路径,接下来的文件都在更改的路径下进行此操作 # print(os.getcwd()) #--------获取刚刚更改的文件夹的路径 import os.path print(os.path.abspath('04.py')) #------获得参数的绝对路径 print(os.path.exists("05.py"),os.path.exists("demo_1_python.py")) #-----------------确认参数里的路径是否存在 print(os.path.basename("D:\\pyCharm_2020\\04\\04.py")) #----------------提取文件名 print(os.path.isdir("D:\\pyCharm_2020\\04")) #----------------判断是否为路径 print(os.path.dirname("D:\\pyCharm_2020\\04\\04.py")) #--------------提取路径名 print(os.path.split("D:\\pyCharm_2020\\04\\04.py")) #--------路径名和文件名分开 print(os.path.splitext("04.py")) #---------文件名和扩展名分开 print(os.path.join('D:\\pyCharm_2020\\04', '04.py')) #---------把路径名和文件名连接在一起 import os #-----获得同级以 .py 扩展名为结尾的全部文件的(批量处理) path=os.getcwd() list=os.listdir(path) for filename in list: if filename.endswith(".py"): #---------endswith()是Python中的一种库方法,用于检查字符串是否以给定的后缀(子字符串)结尾。 print(filename) import os path=os.getcwd() list_file=os.walk(path) #------os.walk()便利指定目录下的所有目录和目录文件 for a,b,c in list_file: #-------路径dirpath,文件夹名dirname,文件名filename print("======++++++") print(a) print(b) print(c) print("==================") """
总总总记录
最新推荐文章于 2024-09-14 19:55:48 发布