基础语法

  1. # coding: utf-8
  2. #!/usr/bin/env #很少用,py解释器路径
  3. '''
  4. 注释一般正文和头描述空2行 #
  5. '''
  6. import sys, os
  7. from sys import argv,path
  8. sys.path.append(r"C:\Users\Pwcong\Desktop\python")
  9. import mokuai #mokuai文件夹在上面路径(__init__.py)中定义函数
  10. #数据类型
  11. x16number = int('123abc', 16) #生成16进制整型数字
  12. zstra = "你好"
  13. zstrb = "世界pygood008"
  14. zstr = zstra + zstrb
  15. zbool = true
  16. znone = None
  17. zlist = [1,2,3,('a','b'),('c',)] #列表可以修改,列表中的元组不可修改
  18. nlist = [1,2,3,4,5,6,7,8,9,10]
  19. ztuple = tuple((1,2,3,(1.1,2.2,"test"),[123,456])) #元组不可修改,只有一个元素时候需要加逗号
  20. zdict = dict() #字典每个元素都有一对
  21. zdict2 = {'name':'zhangsan','age':30,1:'one',(1,2,3):[1,2,3]}
  22. info = ('print()'
  23. '%s格式化字符串通用类型、%d格式化整型、%f格式化浮点型、%u格式化无符号整形、%c格式化字符'
  24. '%o,%x,%e、八进制,十六进制,科学计数')
  25. info2 = '''
  26. python中常见的编码格式,gbk,ascii
  27. '''
  28. info3 = {'name':'dog','name':'dog'}
  29. b_bytes = b'only ascII'
  30. b_bytes = zstrb.encode('utf-8',errors='strict') #编码,字符串转为比特
  31. de = b_bytes.decode('utf-8',errors='ignore') #解码,比特转为字符串
  32. #内置函数,成员运算符in、not in、max、min、len,内置函数
  33. result = "世界" in zstr #是否包含元素返回布尔值
  34. del #删除,如果是集合删除对象
  35. dir(b_bytes) #打印可用的属性 和方法
  36. id(nlist[:]) #获取内存地址
  37. range(5)
  38. #字符串
  39. name = 'my name is zhangsan'
  40. print('字符串索引',name[:2])
  41. name.find('zhang') #find找不到返回-1,常用
  42. name.index('sansan') #index找不到返回错误
  43. newstr = string.capitalize() #首字母大写其它小写,只对首字母有效,已经大写则无效
  44. newstr = string.casefold() #多语种全部小写
  45. newstr = string.lower() #英文字母全部小写
  46. newstr = string.upper() #英文字母全部大写
  47. newstr = string.swapcase() #字母大小写互换
  48. newstr = string.zfill(10) #补齐字符串长度为10位,长度不够前面用0补齐,长度够不会变化
  49. newstr = string.replace(old,new,max).replace(old,new) #max是替换几个不写默认全部
  50. inttype = string.count('e') #计算元素个数返回整数
  51. inttype = string.find('a') #查找字符串位置第一个是0,空格算一位,从左到右找不到返回-1
  52. inttype = string.index('a') #找不到返回错误
  53. booltype = string.startswith('my') #确认起始字符,返回布尔值
  54. booltype = string.endsswith('!') #确认结束字符,返回布尔值
  55. booltype = string.isspace() #是否全部空格
  56. booltype = string.istitle() #是否标题,只能单词首字母大写
  57. booltype = string.isupper() #是否大写,只检测字符串里的字母
  58. booltype = string.islower() #是否小写
  59. listname = []
  60. listname.extend(name) #字符串插入列表
  61. listname.reverse()
  62. print(listname)
  63. new_name = name[::-1]
  64. print(new_name)
  65. string.split(sep=None,maxsplit=-1) #切割符默认空格,切割次数
  66. c = 'a|b|c'
  67. c.split('|',1) #切割一次 a b|c
  68. '|'.join(a_list) #列表以特定符号转为字符串,列表成员只能是字符
  69. s = 'asd fgh jkl'
  70. s_list = s.split() #切割为列表,默认空格
  71. sort = sorted(s) #排序后输出列表sorted通用方法
  72. print(''.join(sort)) #排序后列表转字符串
  73. #列表和元祖
  74. a_list = [1,2,3]
  75. list.append('cat')
  76. list.count('dog')
  77. list.remove('dog') #删除列表元素,只删第一个
  78. list.sort(key=None,reverse=False) #默认False升序,True降序
  79. print('#计算列表长度',len(nlist)-1)
  80. print('#列表索引',nlist[0])
  81. print('#切片左含右不含[4,5,6,7,8]',nlist[3:8])
  82. print('#获取完整列表等价[0:]或不含倒数第一个元素[-3:-1]',nlist[:])
  83. print('反序获取列表',nlist[::-1])
  84. print('步长获取切片', zlist[0:8:2])
  85. zlist[2:5] = 'a','b','c'
  86. zlist[2:5] = ['a','b','c']
  87. print('修改索引对应元素后',zlist[:])
  88. print('查找字符c所在位置',zlist.index('c'))
  89. zlist.pop(4) #删除索引对应元素
  90. #字典
  91. mydict = {
  92. 'name':'zhangsan',
  93. 'age':30
  94. }
  95. lisi = {'name':'lisi','sex':'男'}
  96. user.update(lisi) #用另外一个字典添加老字典name存在则覆盖
  97. wangwu = {'name':'wangwu','Birthday':'2021-10-12'}
  98. user.setdefault(wangwu) #如果有无法覆盖,没有则创建
  99. key_list=list(mydict.keys()) #返回key集合伪列表,变成真列表
  100. name = mydict['name'] #获取字典中key对应的value,不存在返回报错
  101. name = mydict.get('name',default=None) #获取字典中的key的对应value,不存在返回默认值,开发优先使用
  102. values = []
  103. valuse.append(mydict['name'])
  104. valuse.append(mydict['age'])
  105. valuse.append(mydict.get['Birthday','1980-01-01'])
  106. mydict.popitem() #删除最后一组key:value,空字典直接报错
  107. students = {'zhangsan':'在','lisi':'到'}
  108. lisi = students.popitem() #从末尾删除key:value,返回数组
  109. print('{} 喊 {}'.format(lisi[0],lisi[1]))
  110. #集合:无序、不可重复、交集并集差集、无索引,只能加载不可变数据类型
  111. a_set = set()
  112. jihe = {(1,2,3),'123',1}
  113. jihequchong = set(a_list) #集合去重
  114. set.add(a_list[-1])
  115. a_set.update(('a','b','c'))
  116. a_set.remove('a')
  117. a_set.clear()
  118. del a_set #集合无索引,直接删除集合对象本身
  119. a_set.difference(b_set) #差集,a有b没有
  120. a_set.intersection(b_set,c_set) #交集,a中bc也有
  121. company_not_allow.isdisjoint(one_player) #判断两个集合是否包含相同元素,如没有返回True
  122. #逻辑判断
  123. a_if = 'abcde'
  124. user = [
  125. ('zhangsan',31)
  126. ('lisi',25)
  127. ('nan',18)
  128. ]
  129. if a_if[0] == 'a' or 'abc' in a_if:
  130. print('if %s' % a_if)
  131. else if 5 < len(a_if) < 10:
  132. print('len is %s' %len(a_if))
  133. else:
  134. print('else %s' % a_if)
  135. user_info = {
  136. 'zhangsan':'good'
  137. 'lisi':'fuck'
  138. 'wangwu':'wondeful'
  139. }
  140. for key, value in user_info.items():
  141. print(key, value) #遍历字典元组数组
  142. for a in range(start,stop,step=1): #生成范围数字并遍历
  143. print('a循环 range %s' %a)
  144. for b in range(10):
  145. print('b循环')
  146. break #直接跳出整个循环体,else不会执行
  147. else:
  148. print('如果for循环报错就不会进入else')
  149. count = 1
  150. while count < 5:
  151. print(count)
  152. continue #跳过本次循环直接进入下一轮循环
  153. count += 1
  154. #函数
  155. def message(message,message_type):
  156. new_message = '[%s] %s' %(message_type,message)
  157. return new_message
  158. result = message(message='今天有雨',message_type='info')
  159. def test(a:str,b:int=18,*tup:int,**dic:str): #py3.7之后可定义数据类型一个*元组,两个**字典
  160. print(a,b,*args,**kwargs)
  161. test(1, 2, 3, 4, 5, 6, 7, name=1, zz=2)
  162. def digui(a): #递归函数
  163. print(a)
  164. return digui(a)
  165. #类、面向对象
  166. class Person(object):
  167. name = None
  168. age = None
  169. def run(self):
  170. print(f'{self.name} 在奔跑')
  171. def jump(self):
  172. print(f'{self.name} 在跳跃')
  173. zhangsan = Person()
  174. zhangsan.name = '张叁'
  175. zhangsan.jump()
  176. # 入口函数,程序结构
  177. if __name__ == '__main__':
  178. name = input("请输入你的名字:")
  179. birthday = input("请输入你的生日:")
  180. print(os.getcwd()) #获取当前路径
  181. print('你的名字叫:%s, 出生于:%s' %(name, birthday))
  182. print('%c' % 1020, '%c' % 'a', '%c' %999999)
  183. print('%u' % -1) #格式化无符号整形
  184. print('%f' % 3.14) #浮点型格式符
  185. print('%d' % 10) #整型格式符号,浮点数会丢弃小数点后面的
  186. print('小猫有 %s 只\n小狗有 %s 只' % (1.2,dog)) #万能格式符
  187. print('%o' % 8, '%o' % 15) #八进制字符格式
  188. print('%x' % 16, '%x' % x16number) #十六进制
  189. print('{:d}'.format(1)) #格式符匹配
  190. print(f'f格式输出小狗有 {info2.count('dog') 只}') #f解析任意格式数据类型
  191. print(r'r为原始字符串标识符,表示内部不转义')
  192. print('sep元素分隔符,end空不换行',a,b,c, sep='|',end='')
  193. print('{0} 喊 {1}'.format(lisi[0],lisi[1]))
  194. print(name*3,zlist*2)
  195. print(type(znumber)) #返回变量类型
  196. """
  197. python的关键字
  198. 强关键字
  199. 赋值运算符
  200. 比较运算符 <> 是否不等于
  201. 身份运算符 is、is not
  202. """

print函数详解

  1. # coding: utf-8
  2. print('print函数都有下面这些方法{}'.format(dir(print)))
  3. name = ['wang','li']
  4. print('默认换行,如果不换行用end',end=' ')
  5. print('name is {0} and {1}'.format(*name))