c = 1.1 ** 2 b = "%.3f" % c # b为str!!后面的f也是,格式化输出要用%s! d = 10 / 3 # 除法有小数!d=3.333 e = 60 * 3.35 + 20 * 4.5 #291.0 , float型 f = '"+++"%5.1f' % c # 此处:'空空1.2' ,宽度共五位 print(" 直接打印 c = 1.1 ** 2 :c=",c,',c的类型是',type(c),"") print('float默认六位 %s :c=%f'% (' c = % f ',c),'\n\n(字符串)b=%s'% b +'\nf=%s'% f+'\nd=',"%.f,除法有小数!"% d) print(type(b),type(type(b)),) # 仅str类型能拼接! ##### 'print(10 // 3) # 保留整数:3' 'print(10 % 3) # 该啥就啥:1' QuYuShu = 10.9 % 3 # ↓看下这句双重格式化输出 print('\n%g %d'% (QuYuShu,int(QuYuShu))) # int是截取,四舍五入:round print('四舍五入:','int(3.5)=',int(3.5),',round(3.3)=',round(3.3),',round(3.5)=',round(3.5),'\ntype(round(3.6))=',type(round(3.6)),'\n') ##### name = input("这个地方的功能是,省去print而直接打印提示语句。你吃饭了吗?") print("%s"% name) numm =input("可以连续再问第二句,继续输入吧。") print(numm , "%s"% type(numm)) (1)——————————————————输入输出/变量—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— x = y = 1 z = "生出大狂蜂" print('内存地址相同! id= %d'% id(x)) if id(x)==id(y) else print('diff') print((z + '$')*2) print('·-1为尾 >>> ',z[0],z[-1],z[-2]) print('·止于3前 >>> ',z[0:3]) print('·倒取 >>> ',z[2::-1]) print('·切片中取不到尾>>>',z[2:0:-1]) print('·全取 >>> ',z[0:]) print('·all倒取 >>> ',z[-1::-1]) (2)————————————————————str切片————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— str_a = "无人扶我凌云志,我自踏雪至山巅A" print(str_a[8] +str_a[14]) print('(哈哈)'.join([str_a[8:10],str_a[12:-1],'!'])) print(str_a.capitalize()) # 后面变小写 print(str_a.center(20,'_')) # fill字符只能长度为1 str_b = "A'a'" str_c = "Yang li Rui" # 4+2+3(+1+1)=11 print(str_b.swapcase()) # print(str_c.title()) print(str_c.startswith('ang',1,4)) # end为3就错了 print(str_c.endswith(' Rui')) #区分大小写 print('ui出现的索引位置: %d '% str_c.find('ui')) # 未找到:-1 print('i出现次数: %d 次'% str_c.count('i')) print(str_c.replace('i','1',2),'\n') (3)————————————————————str操作1———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— def remove_mark(bly0:str,char:str)->str: """去除str中指定字符""" if type(bly0) is str: br = '' #错因:定义了两个i!!! for i in bly0: br += i.strip(char) return br else: return '不是字符串' bly = '--Wuwa-Star--t-!' ya = remove_mark(bly,'-') print(ya) @@@@@字符串属于不可修改类型,字符串的方法不能修改列表内字符串的内容,只会返回处理好的字符串。 (4)————————————————————str操作2——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— print('一、切片') lis_wuwa = ['漂泊者','今汐','长离',['秧秧','炽霞','白芷',['黑咩之手','白咩之手']]] lis_num = [10,666,30,40] lis_num2 = [1,2,10,4,5] lis_str =['鸣潮','启动','!'] print(lis_wuwa[3][3][0],'====',len(lis_wuwa),'====',lis_wuwa.index('今汐')) print(lis_num.sort(key=abs),lis_num) print(lis_num.sort(reverse=True),'====',lis_num) print(lis_num2.reverse(),'====',lis_num2,'\n二、转换str') #倒置,不排序 # #####转换str str_turn = ''.join(lis_str) # lis -> str,若元素不为str则失败 print('str :',str_turn) lis = list(str_turn) # separate,转list print('lis :',lis) str_lis = '_'.join(lis[:2])+','+'_'.join(lis[2:]) print('str2:',str_lis) #切片规则相同 str3 = '200+300++' lis2 = str3.split('+') # lis2: ['200', '300', '', ''] 后面是两个空:(''),逗号隔开也! print('lis2:',lis2,'\n三、插入') #转集合: set1 = set(lis) set2 = set(lis2) # 效果:去重 print(set1,set2) # 变为无序集合 ##### lis.insert(2,',') print('lis\':',lis) lis.clear() print('lis\':',lis) del lis2[2:] print('lis2:',lis2) lis2[1] = '400' lis2.append('600') print('lis2:',lis2) lis2[1:1] = "哈" # 将区间a——b-1的元素sep.替换 print('lis2:',lis2,'\n四、嵌套') ##### lis = ['接着奏乐','接着舞','dengdengdeng',['我打了一辈子','仗']] lis[2] = lis[2].upper() # str:不可修改类型! print(lis) lis[3][1] = lis[3][1].replace('仗',"飞机") # str:不可修改类型! print(lis,'\n五、逻辑') ##### lis = [1,2,3,'4'] print('%s %s\n六、拷贝'%(4 in lis,'3' not in lis)) #############浅拷贝 lis = [1,2,3,[1,2,3]] lis2 = lis lis3 = lis.copy() # 与lis2不同,lis3在堆区开辟了新的内存空间存放每个索引值 lis[1] = 'a' # 原来的lis【1】指向了新的空间(‘a'),而lis3中一阶元素本就在另一块区域指向拷贝的新空间 lis[3][1] = 666 #例外:可变数据类型,如list,不用变地址 print(lis2) print(lis3) print('%d %d %d'% (id(lis),id(lis2),id(lis3))) print('%d %d %d\n'% (id(lis[1]),id(lis2[1]),id(lis3[1]))) ###########深拷贝:将可变类型开辟新地址,其他一样(import copy,lis2=copy.deepcopy(lis1)) (5)——————————————————————list———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— tup = ('飞起玉龙三百万',) #没逗号就成str了 tup1 = 1,2 print(type(tup),len(tup)) print(type(tup1),len(tup1)) print('整个元组:',tup[0:]) print('0号元素:',tup[0]) print('元素切片:',tup[0][0:-1:3]) ##### tup = (10,20,20,30,40,50) print('方法1·索引:%d'% tup.index(20)) print('方法2·统计:%d'% tup.count(20)) (6)——————————————————————tuple———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— set1 = {} # 空字典 set2 = {1,2} set3 = set('1') set4 = set() # 空集合不为{} print(type(set1),type(set4)) print(set3,'————',set4) #####元素不重复 set2.add('3') print('增加元素"3"(不重):',set2) set2.add(2) print('增加元素 2 (重复):',set2) ##### set2.update('哈哈哈啦') print('\n',set2,'\n') delete = set2.pop() #RT print('随机删除:',set2,'————',delete) set2.remove(2) print('指定删除:',set2) set2.clear() print(' 清空 :',set2) del set2 (7)——————————————————————set—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— (8)——————————————————————dict————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— sent1 = '我是{},我是{},我是{}'.format('奶龙','奶龙','最强奶龙') sent2 = '我是{1},我是{1},我是{0}'.format('奶龙','最强奶龙') sent3 = '我是{haha},我是{mie},我是{mie}'.format(haha='奶龙',mie='最强') print (sent1+'\n'+sent2+'\n'+sent3+'\n') # ##### name = "KunKun" name1 = f'唱跳' name2 = f'{name} love {name1},rap。' text = f'11{print('first',bool(0))}' # print出现便会执行。第一次 print(type(f'唱跳'),type(bool(1)),'——————分割线——————') print(type(f'{print('第二次',bool(0))}'),'\n') # 又执行了一遍,且先于外面包着的print!!) print(name2) print(text) # print无RT,所以打出来None (9)———————————————————————————printf—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— text = f'11{print(1)}' if 5<4 else f'22{print(2)}' # str和int无法比较大小 print(text,' # <三元if运算,未选的条件整个忽略,不会执行>\n') str1 = 'a哈' on = 0 #### <取值循环for> 循环次数取决于in后包含值个数 for i in str1: # 跳过<本次>循环 on += 1 print('%d:%s'% (on,i)) else: # break使for结束。可以跳过else print('\t--end--\n') #####乘法表 for i in range(1, 10): # range同样顾头不顾尾,只有1-9。 for j in range(1, i+1): print(f'{j}x{i}={i*j}\t',end='') ##???????<!> print() ##### print('') #空一行 a = 1 while a <= 3: print('第{}遍打印'.format(a)) a += 1 else: (10)↑———————————————————————流程控制1——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— ***********循环一定要看好语句位置!!! print('--完毕--\n') ####求1-2+3-4+5-6 … -100的所有数的和 num0 = 1 sum0 = 0 while num0 <= 100: sum0 -= num0 if num0 % 2 == 0 else -1*num0 #三元 & +=! num0 += 1 else: print(sum0) (11)↑———————————————————————流程控制2——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— ASCII = '仅识别英文|1字节' GBK = '识别英文+中文|1字节+2字节___(GB2312)' unicode = '万国码|固定2字节' utf_8 = 'Unicode Transformation Format|不定长,不适于内存直接使用' (12)↑———————————————————————字符编码———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— def wu_wa(): """启动""" f'函数体' print('鸣潮,启动!') return #return为函数结束标志,RT默认为None def win(): """战斗""" f'...' print("战斗,爽!") return 0 # f'调用:{wu_wa()}' buYong = type(wu_wa())#无括号,为<函数>类型;有括号,为返回值类型,会调用 print(buYong,type(win()))#即使在表达式,也会调用,我是说加上括号的话 (13)↑———————————————————————函数(1)———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— #####带参数: def calculate(str1): """剥夺力量""" str1 = str1 + '————你已被,剥夺力量!' return str1 print(calculate(input())) ####默认参数(未发生传参,使用default),多个参数: def count(*args):#位置参数 """数个数""" sum1 = 0 for _ in args:##哇塞 sum1 += 1 return sum1 sum0 = count(1,2,3,4,5) print(sum0) ##### def dictionary(**kwargs):#关键字参数 """编字典""" print(kwargs) dictionary(name = 'lyric_rain',dream = 'go big') #####提示: def tips(string:str,num:int)-> str: print(str(string)+str(num)) return '0' tips('第',1) print(tips.__annotations__) print(tips.__name__) print(tips.__doc__) (14)↑———————————————————————函数(2)——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— global,nonlocal var = func. 装饰器,迭代器,生成器。。。 (15)↑———————————————————————函数(3)——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— import xxx (as m) print(__name__)#输出__main__==文件被<运行> from 模块 import 属性## * 代表 所有属性 ???print(sys.modules) (16)↑———————————————————————模块—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— num = input() lis_a = [] while True: an = input() if an.endswith('\n'): break lis_a.append(an) if an.lower() == ' ': # 检查是否输入' ' continue print(lis_a) n = int(input().strip()) l = list(map(int,input().strip().split())) c = 0 for i in l: if i & (i-1) == 0 or i <= 1: c += 1 print(c) (17)↑———————————————————————<2024>数字诗意——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
python基础总结(自测)
于 2025-01-06 13:07:12 首次发布