基础语法
# coding: utf-8#!/usr/bin/env #很少用,py解释器路径'''注释一般正文和头描述空2行 #'''import sys, osfrom sys import argv,pathsys.path.append(r"C:\Users\Pwcong\Desktop\python")import mokuai #mokuai文件夹在上面路径(__init__.py)中定义函数#数据类型x16number = int('123abc', 16) #生成16进制整型数字zstra = "你好"zstrb = "世界pygood008"zstr = zstra + zstrbzbool = trueznone = Nonezlist = [1,2,3,('a','b'),('c',)] #列表可以修改,列表中的元组不可修改nlist = [1,2,3,4,5,6,7,8,9,10]ztuple = tuple((1,2,3,(1.1,2.2,"test"),[123,456])) #元组不可修改,只有一个元素时候需要加逗号zdict = dict() #字典每个元素都有一对zdict2 = {'name':'zhangsan','age':30,1:'one',(1,2,3):[1,2,3]}info = ('print()' '%s格式化字符串通用类型、%d格式化整型、%f格式化浮点型、%u格式化无符号整形、%c格式化字符' '%o,%x,%e、八进制,十六进制,科学计数')info2 = ''' python中常见的编码格式,gbk,ascii '''info3 = {'name':'dog','name':'dog'}b_bytes = b'only ascII'b_bytes = zstrb.encode('utf-8',errors='strict') #编码,字符串转为比特de = b_bytes.decode('utf-8',errors='ignore') #解码,比特转为字符串#内置函数,成员运算符in、not in、max、min、len,内置函数result = "世界" in zstr #是否包含元素返回布尔值del #删除,如果是集合删除对象dir(b_bytes) #打印可用的属性 和方法id(nlist[:]) #获取内存地址range(5)#字符串name = 'my name is zhangsan'print('字符串索引',name[:2])name.find('zhang') #find找不到返回-1,常用name.index('sansan') #index找不到返回错误newstr = string.capitalize() #首字母大写其它小写,只对首字母有效,已经大写则无效newstr = string.casefold() #多语种全部小写newstr = string.lower() #英文字母全部小写newstr = string.upper() #英文字母全部大写newstr = string.swapcase() #字母大小写互换newstr = string.zfill(10) #补齐字符串长度为10位,长度不够前面用0补齐,长度够不会变化newstr = string.replace(old,new,max).replace(old,new) #max是替换几个不写默认全部inttype = string.count('e') #计算元素个数返回整数inttype = string.find('a') #查找字符串位置第一个是0,空格算一位,从左到右找不到返回-1inttype = string.index('a') #找不到返回错误booltype = string.startswith('my') #确认起始字符,返回布尔值booltype = string.endsswith('!') #确认结束字符,返回布尔值booltype = string.isspace() #是否全部空格booltype = string.istitle() #是否标题,只能单词首字母大写booltype = string.isupper() #是否大写,只检测字符串里的字母booltype = string.islower() #是否小写listname = []listname.extend(name) #字符串插入列表listname.reverse()print(listname)new_name = name[::-1]print(new_name)string.split(sep=None,maxsplit=-1) #切割符默认空格,切割次数c = 'a|b|c'c.split('|',1) #切割一次 a b|c'|'.join(a_list) #列表以特定符号转为字符串,列表成员只能是字符s = 'asd fgh jkl's_list = s.split() #切割为列表,默认空格sort = sorted(s) #排序后输出列表sorted通用方法print(''.join(sort)) #排序后列表转字符串#列表和元祖a_list = [1,2,3]list.append('cat')list.count('dog')list.remove('dog') #删除列表元素,只删第一个list.sort(key=None,reverse=False) #默认False升序,True降序print('#计算列表长度',len(nlist)-1)print('#列表索引',nlist[0])print('#切片左含右不含[4,5,6,7,8]',nlist[3:8])print('#获取完整列表等价[0:]或不含倒数第一个元素[-3:-1]',nlist[:])print('反序获取列表',nlist[::-1])print('步长获取切片', zlist[0:8:2])zlist[2:5] = 'a','b','c'zlist[2:5] = ['a','b','c']print('修改索引对应元素后',zlist[:])print('查找字符c所在位置',zlist.index('c'))zlist.pop(4) #删除索引对应元素#字典mydict = { 'name':'zhangsan', 'age':30}lisi = {'name':'lisi','sex':'男'}user.update(lisi) #用另外一个字典添加老字典name存在则覆盖wangwu = {'name':'wangwu','Birthday':'2021-10-12'}user.setdefault(wangwu) #如果有无法覆盖,没有则创建key_list=list(mydict.keys()) #返回key集合伪列表,变成真列表name = mydict['name'] #获取字典中key对应的value,不存在返回报错name = mydict.get('name',default=None) #获取字典中的key的对应value,不存在返回默认值,开发优先使用values = []valuse.append(mydict['name'])valuse.append(mydict['age'])valuse.append(mydict.get['Birthday','1980-01-01'])mydict.popitem() #删除最后一组key:value,空字典直接报错students = {'zhangsan':'在','lisi':'到'}lisi = students.popitem() #从末尾删除key:value,返回数组print('{} 喊 {}'.format(lisi[0],lisi[1]))#集合:无序、不可重复、交集并集差集、无索引,只能加载不可变数据类型a_set = set()jihe = {(1,2,3),'123',1}jihequchong = set(a_list) #集合去重set.add(a_list[-1])a_set.update(('a','b','c'))a_set.remove('a')a_set.clear()del a_set #集合无索引,直接删除集合对象本身a_set.difference(b_set) #差集,a有b没有a_set.intersection(b_set,c_set) #交集,a中bc也有company_not_allow.isdisjoint(one_player) #判断两个集合是否包含相同元素,如没有返回True#逻辑判断a_if = 'abcde'user = [ ('zhangsan',31) ('lisi',25) ('nan',18)]if a_if[0] == 'a' or 'abc' in a_if: print('if %s' % a_if)else if 5 < len(a_if) < 10: print('len is %s' %len(a_if))else: print('else %s' % a_if)user_info = { 'zhangsan':'good' 'lisi':'fuck' 'wangwu':'wondeful'}for key, value in user_info.items(): print(key, value) #遍历字典元组数组for a in range(start,stop,step=1): #生成范围数字并遍历 print('a循环 range %s' %a) for b in range(10): print('b循环') break #直接跳出整个循环体,else不会执行else: print('如果for循环报错就不会进入else')count = 1while count < 5: print(count) continue #跳过本次循环直接进入下一轮循环 count += 1#函数def message(message,message_type): new_message = '[%s] %s' %(message_type,message) return new_messageresult = message(message='今天有雨',message_type='info')def test(a:str,b:int=18,*tup:int,**dic:str): #py3.7之后可定义数据类型一个*元组,两个**字典 print(a,b,*args,**kwargs)test(1, 2, 3, 4, 5, 6, 7, name=1, zz=2)def digui(a): #递归函数 print(a) return digui(a)#类、面向对象class Person(object): name = None age = None def run(self): print(f'{self.name} 在奔跑') def jump(self): print(f'{self.name} 在跳跃')zhangsan = Person()zhangsan.name = '张叁'zhangsan.jump()# 入口函数,程序结构if __name__ == '__main__': name = input("请输入你的名字:") birthday = input("请输入你的生日:") print(os.getcwd()) #获取当前路径 print('你的名字叫:%s, 出生于:%s' %(name, birthday)) print('%c' % 1020, '%c' % 'a', '%c' %999999) print('%u' % -1) #格式化无符号整形 print('%f' % 3.14) #浮点型格式符 print('%d' % 10) #整型格式符号,浮点数会丢弃小数点后面的 print('小猫有 %s 只\n小狗有 %s 只' % (1.2,dog)) #万能格式符 print('%o' % 8, '%o' % 15) #八进制字符格式 print('%x' % 16, '%x' % x16number) #十六进制 print('{:d}'.format(1)) #格式符匹配 print(f'f格式输出小狗有 {info2.count('dog') 只}') #f解析任意格式数据类型 print(r'r为原始字符串标识符,表示内部不转义') print('sep元素分隔符,end空不换行',a,b,c, sep='|',end='') print('{0} 喊 {1}'.format(lisi[0],lisi[1])) print(name*3,zlist*2) print(type(znumber)) #返回变量类型"""python的关键字强关键字赋值运算符比较运算符 <> 是否不等于身份运算符 is、is not"""
print函数详解
# coding: utf-8print('print函数都有下面这些方法{}'.format(dir(print)))name = ['wang','li']print('默认换行,如果不换行用end',end=' ')print('name is {0} and {1}'.format(*name))