内容回顾

while 循环补充说明

  1. 1.死循环
  2. 2.while循环嵌套和全局标志位

for循环

  1. 1.for 变量名 in 待遍历数据
  2. for循环体代码
  3. 2.for 也可以与break continue连用

range方法

  1. 1.range()一个数字,0为起始位,顾头不顾尾
  2. 2.range()两个数据,第一个数据是起始位
  3. 3.range()三个数据,第三个数是等差值

内容详细

1.作业讲解

2.数据类型的内置方法理论

3.整型内置方法与操作

4.浮点型的内置方法与操作

5.字符串的内置方法与操作

6.列表的内置方法与操作

7.可变类型与不可变类型

数据类型的内置方法理论

  1. 我们之前所学习的每一种数据类型本身都含有一系列的操作方法内置方法是其中最多的(自带的功能)
  2. python中数据类型调用内置方法的统一句式为>>>:句点符
  3. 'jason'.字符串内置方法
  4. 绑定字符串的变量名.字符串内置方法
  5. str.字符串内置方法
  6. ps:数据类型的内置方法比较的多 我们如果想要掌握 不要光靠死记硬背 更多时候靠的是熟能生巧

整型的内置方法与操作

  1. 1.类型转换(将其他数据类型转换成整型)
  2. int(其他数据类型)
  3. ps:浮点型可以直接转 字符串必须满足内部是纯数字才可以
  4. 2.进制数转换
  5. 十进制转其他进制
  6. print(bin(100)) # 0b1100100
  7. print(oct(100)) # 0o144
  8. print(hex(100)) # 0x64
  9. """
  10. 数字的开头如果是0b 则为二进制 0o则为八进制 0x则为十六进制
  11. """
  12. 其他类型转十进制
  13. print(int(0b1100100))
  14. print(int(0o144))
  15. print(int(0x64))
  16. 如果是字符串的话,在后面加,跟数字
  17. print(int('0b1100100',2))
  18. print(int('0o144',8))
  19. print(int('0x64',16))
  20. 3.python自身对数字的敏感度较低(精确的低)
  21. 有一篇文章可以参考一下
  22. https://blog.csdn.net/weixin_32821579/article/details/113496501
  23. python这门语言其实真的一点都不厉害 主要是因为它背后有很多大佬
  24. 如果需要精准的计算需要借助于模块numpy....

浮点型内置方法与操作

  1. 1.类型转换
  2. float(其他数据类型)
  3. 字符串里面可以运行出现一个小数点 其他都必须是纯数字
  4. 2.pyhton自身对数字的敏感度较低(精确度低)
  5. python这门语言其实真的一点都不厉害 主要是因为它背后有很多大佬
  6. 如果需要精准的计算需要借助于模块numpy....

字符串内置方法与操作

  1. 1.类型转换
  2. str(其他数据类型)
  3. ps:可以转人员数据类型(只需要在前后加引号即可)
  4. 2.必须要掌握的方法
  5. s1 = 'hello world'
  6. 2.1索引取值(起始位置0开始 超出范围直接报错)
  7. print(s1[0]) # h
  8. print(s1[-1]) # d 支持负数 从末尾开始
  9. 2.2切片操作
  10. print(s1[1:5]) # 顾头不顾尾 从索引1 一直取到索引4
  11. print(s1[-1:-5]) # 默认的顺序是从左往右 不行
  12. print(s1[-5:-1]) # 默认的顺序是从左往右
  13. 2.3 修改切片方向(间隔)
  14. print(s1[1:5:1]) # 默认是1
  15. print(s1[1:5:2]) # 第三个数是等差数的间隔
  16. print(s1[-1:-5:-1]) # 改方向
  17. print(s1[:]) # 不写数字就默认都要
  18. print(s1[2:]) # 从索引2开始往后都要
  19. print(s1[:5]) # 从索引0开始往后要到索引4
  20. print(s1[::2]) # 隔两个要一个
  21. 2.4统计字符串中所有的字符
  22. print(len(s1)) # 10
  23. 2.5移除字符串首尾指定的字符
  24. username = input('username>>>:').strip()
  25. if username == 'jason':
  26. print('登陆成功')
  27. res = 'jason'
  28. print(len(res))
  29. print(len(res.strip())) # 括号内不写 默认移除首尾的空格
  30. res1 = '$$jason$$'
  31. print(res1.strip('$')) # jason
  32. print(res1.lstrip('$')) # jason$$
  33. print(res1.rstrip('$')) # $$jason
  34. 2.6 切割字符串中指定的字符
  35. res = 'jason|123|read'
  36. print(res.split('|')) # ['jason', '123', 'read'] 该方法的处理结果是一个列表
  37. name, pwd,hobby = res.split('|')
  38. print(res.split('|',maxsplit=1)) # ['jason', '123|read'] # 从左往右切指定个数
  39. print(res.rsplit('|',maxsplit=1)) # ['jason|123', 'read']
  40. 2.7 字符串格式化输出
  41. format玩法1 等价于占位符
  42. res = 'my name is {} my age is {}'.format('jason',123)
  43. print(res) # my name is jason my age is 123
  44. format玩法2 索引取值并支持反复使用
  45. res = 'my name is {0} my age is {1} {1} {1} {0} {1}'.format('jason',123)
  46. print(res)
  47. format 玩法3 占位符 见名知意
  48. res = 'my name is {name} my age is {age}'.format(name='jason',age=123)
  49. print(res) # my name is jason my age is 123
  50. format 玩法4 推荐使用(*****)
  51. name = input('username>>>:')
  52. age = input('age>>>:')
  53. res = f'my name is {name} my age is{age}'
  54. print(res)
  55. 3.字符串需要了解的方法
  56. 大小写相关
  57. res = 'hEllO wOLd 666'
  58. print(res.upper()) # HELLO WOLD 666
  59. print(res.lower()) # hello wold 666
  60. '''图片验证码: 生成没有大小写统一的验证码 展示给用户看
  61. 获取用户输入的验证码 将用户输入的验证码和当初产生的验证码统一转大写或者小写再比对
  62. '''
  63. code = '8Ja6cC'
  64. print('展示给用户看的图片验证吗',code)
  65. confirm_code = input('请输入验证码').strip()
  66. if confirm_code.upper() == code.upper():
  67. print('验证码正确')
  68. res = 'hello world'
  69. print(res.isupper()) # 判断字符串是否是纯大写 False
  70. print(res.islower()) # 判断字符串是否是纯小写 True
  71. 3.2 判断字符串中是否是纯数字
  72. res = '123'
  73. print(res.isdigit()) # True
  74. guess_age = input('guess_age>>>:').strip()
  75. if guess_age.isdigit():
  76. guess_age = int(guess_age)
  77. else:
  78. print('年龄都不知道怎么输吗?')
  79. 3.3替换字符串中指定的内容
  80. res = 'my name is jason jason jason jason jason'
  81. print(res.replace('jason','tony')) # my name is tony tony tony tony tony
  82. print(res.replace('jason','tony',1)) # my name is tony jason jason jason jason
  83. 3.4 字符串的拼接
  84. ss1 = 'hello'
  85. ss2 = 'world'
  86. print(ss1+ss2) # helloworld
  87. print(ss1*10) # hellohellohellohellohellohellohellohellohellohello
  88. print('|'.join(['jason', '123', 'read', 'jdb'])) # jason|123|read|jdb
  89. print('|'.join(['jason', 123])) # 报错 参与拼接的必须都是字符串
  90. 3.5 统计指定字符出现的次数
  91. res = 'hello world'
  92. print(res.count('l')) # 3
  93. 3.6判断字符串的开头或者结尾
  94. res = 'jason say hello'
  95. print(res.startswith('jason'))
  96. print(res.startswith('j'))
  97. print(res.startswith('jas'))
  98. print(res.startswith('a')) # 报错
  99. print(res.startswith('son')) # 报错
  100. print(res.startswith('say')) # 报错
  101. print(res.endswith('o'))
  102. print(res.endswith('llo'))
  103. print(res.endswith('hello'))
  104. 3.7 其他方法补充
  105. res = 'hello world'
  106. print(res.title()) # 每个字母首字母大写
  107. print(res.capitalize()) # 整段首字母大写
  108. print(res.swapcase()) # 把大小写反转
  109. print(res.index('o')) # 只 找第一个
  110. print(res.find('o'))
  111. print(res.index('c')) # 找不到报错
  112. print(res.find('c')) # 找不到 默认返回-1
  113. print(res.find('lo')) # 找一块也可以

列表内置方法及操作

  1. 1.类型转换
  2. list(其他数据类型)
  3. ps:能够被for循环的数据类型都可以转成列表
  4. print(list('hello'))
  5. print(list({'name':'jason', 'pwd':123}))
  6. print(list((1, 2, 3, 4)))
  7. print(list({1, 2, 3, 4, 5}))
  8. 2.需要掌握的方法
  9. l1 = [1111, 222, 333, 444, 555, 666, 777, 888]
  10. 2.1索引取值(正负数)
  11. print(l1[0])
  12. print(l1[-1])
  13. 2.2 切片操作 与字符串讲解操作一致
  14. print(l1[0:5])
  15. print(l1[:])
  16. 2.3 间隔数 方向 与字符串讲解操作一致
  17. print(l1[::-1])
  18. 2.4 统计列表中数据值的个数
  19. print(len(l1))
  20. l1[0] = 123
  21. print(l1)
  22. 2.6 列表添加数据值
  23. 方式1: 尾部追加数据值
  24. l1.append('干饭')
  25. print(l1) # [1111, 222, 333, 444, 555, 666, 777, 888, '干饭']
  26. l1.append(['jason', 'kevin', 'jerry'])
  27. print(l1) # [1111, 222, 333, 444, 555, 666, 777, 888, ['jason', 'kevin', 'jerry']]
  28. 方式2: 任意位置插入数据值
  29. l1.insert(0,'jason')
  30. print(l1) # ['jason', 1111, 222, 333, 444, 555, 666, 777, 888]
  31. l1.insert(0,[11,22,333,44,])
  32. print(l1) # [[11, 22, 333, 44], 1111, 222, 333, 444, 555, 666, 777, 888]
  33. 方式3: 扩展列表 合并列表
  34. ll1 = [11,22,33]
  35. ll2 = [44,55,66]
  36. print(ll1+ll2) # [11, 22, 33, 44, 55, 66]
  37. ll1.extend(ll2) # 相当于for+append
  38. print(ll1) # [11, 22, 33, 44, 55, 66]
  39. 2.7 删除列表数据
  40. 方式1:统用的删除关键子del
  41. del l1[0]
  42. print(l1)
  43. 方式2:内置方法 remove
  44. l1.remove(444)
  45. print(l1)
  46. 方式3:pop 弹出元素
  47. l1.pop(3) # 括号内填写索引值
  48. print(l1)
  49. l1.pop() # 默认尾部弹出数据值
  50. print(l1)
  51. res = l1.pop(3)
  52. print(l1) # 444
  53. res1 = l1.remove(444)
  54. print(res1) # None
  55. 2.8 排序
  56. ss = [33, 55, 77, 8, 8, 99, 00, 44, 5, 666]
  57. ss.sort()
  58. print(ss) # 默认升序 [0, 5, 8, 8, 33, 44, 55, 77, 99, 666]
  59. ss.sort(reverse=True)
  60. print(ss) # 改为降序
  61. 2.9 统计列表中某个数据值出现的次数
  62. print(l1.count(222))
  63. 2.10 颠倒列表顺序
  64. l1.reverse()
  65. print(l1)

字典相关操作

  1. 1.类型转换
  2. dict()
  3. 字典的转换一般不使用关键字 而是自己动手转
  4. 2.字典必须要掌握的操作
  5. print(dict([('name','pwd'),('jason',123)])) # {'name': 'pwd', 'jason': 123}
  6. user_dict = {
  7. 'username': 'jason',
  8. 'password': 123,
  9. 'hobby':['read','music','run']
  10. }
  11. 1.k取值
  12. print(user_dict['username']) # 'jason
  13. print(user_dict['phone']) # k不存在会直接报错
  14. 2.按内置方法get取值(推荐使用)
  15. print(user_dict.get('username')) # jason
  16. print(user_dict.get('age')) # None
  17. print(user_dict.get('username','没有呦 嘿嘿嘿')) # jason 键存在的情况下获取对应的值
  18. print(user_dict.get('age','没有呦 嘿嘿嘿')) # 没有呦 嘿嘿嘿 键不存在的情况下第二个值
  19. 3.修改值数据
  20. user_dict['username'] = 'tony'
  21. print(user_dict) # {'username': 'tony', 'password': 123, 'hobby': ['read', 'music', 'run']}
  22. print(id(user_dict))
  23. print(user_dict)
  24. 4.新增键值对
  25. user_dict['age'] = 18 # 键不存在则新增键值对
  26. print(user_dict)
  27. 5.删除数据
  28. del user_dict['username']
  29. print(user_dict) # {'password': 123, 'hobby': ['read', 'music', 'run']}
  30. res = user_dict.pop('password')
  31. print(user_dict) # {'username': 'jason', 'hobby': ['read', 'music', 'run']}
  32. print(res) # 123
  33. 6.统计字典中键值对的个数
  34. print(len(user_dict)) # 3
  35. 7.字典三剑客
  36. print(user_dict.keys()) # 一次性获取字典所有的键 dict_keys(['username', 'password', 'hobby'])
  37. print(user_dict.values()) # 一次性获取字典所有的值 dict_values(['jason', 123, ['read', 'music', 'run']])
  38. print(user_dict.items()) # 一次性获取字典的键值对数据 # dict_items([('username', 'jason'), ('password', 123), ('hobby', ['read', 'music', 'run'])])
  39. for k,v in user_dict.items():
  40. print(k,v)
  41. username jason
  42. password 123
  43. hobby ['read', 'music', 'run']
  44. 8.补充说明
  45. print(dict.fromkeys(['name', 'pwd', 'hobby'], 123)) # 快速生成值相同的字典
  46. res = dict.fromkeys(['name', 'pwd', 'hobby'], [])
  47. print(res) # {'name': [], 'pwd': [], 'hobby': []}
  48. res['name'].append('jason')
  49. res['pwd'].append(123)
  50. res['hobby'].append('study')
  51. print(res) # {'name': ['jason', 123, 'study'], 'pwd': ['jason', 123, 'study'], 'hobby': ['jason', 123, 'study']}
  52. '''
  53. 当第二个公共值是可变类型 的时候一定要注意 通过任何一个键修改都会影响所有
  54. '''
  55. user_dict.setdefault('username','tony')
  56. print(user_dict) # 键存在则不修改 结果是键对应的值
  57. res = user_dict.setdefault('age',123)
  58. print(user_dict,res) # 键不存在则新增键值对结果是新增的值
  59. user_dict.popitem() # 弹出键值对 后进先出
  60. print(user_dict)

元组相关操作

  1. 1.类型转换
  2. tuple()
  3. ps:支持for循环的数据类型都可以转成元组
  4. 2.元组必须掌握的方法
  5. t1 = (11,22,33,44,55,66)
  6. 1.索引取值
  7. 2.切片操作
  8. 3.间隔 、方向
  9. 4.统计元组内数据值的个数
  10. print(len(t1)) # 6
  11. 5.统计元组内某个数据值出现的次数
  12. print(t1.count(11))
  13. 6.统计元组内指定数据值的索引值
  14. print(t1.index(22))
  15. 7元组内如果只有一个数据值那么逗号不能少
  16. 8.元组内索引绑定的内存地址不能被修改(部分区分 可变与不可变)
  17. 9.元组不能新增或删除数据

集合相关操作

  1. 1.类型转换
  2. set()
  3. 集合内数据必须是不可变类型(整型 浮点型 字符串 元组)
  4. 集合内数据也是无序的 没有索引的概念
  5. 2.集合需要掌握的方法
  6. 去重
  7. 关系运算
  8. ps:只有遇到上述两种需求的时候才应该考虑使用集合
  9. 3.去重
  10. s1 = {11,22,33,4,4,55,5,566,7,44,4,4,44,4,4,}
  11. print(s1)
  12. l1 = [11,22,33,22,33,22,11,11,22,33,22,22,11,11]
  13. s1 =set(l1)
  14. l1 = list(s1)
  15. print(l1)
  16. 4.关系运算
  17. 群体之间做差异化校验
  18. eg:两个微信账户之间 有不同的好友 有相同的好友
  19. f1 = {'jason','tony', 'jerry', 'oscar'} # 用户1的好友列表
  20. f2 = {'jack', 'jason','tom','tony'} # 用户2的 好友列表
  21. 1.求两个人的共同好友
  22. print(f1 & f2) # {'jason', 'tony'}
  23. 2.求用户1 独有的好友
  24. print(f1 - f2) # {'oscar', 'jerry'}
  25. 3.求两个人所有的好友
  26. print(f1 | f2) # {'tony', 'oscar', 'tom', 'jerry', 'jason', 'jack'}
  27. 4. 求两个人各自独有的好友
  28. print(f1 ^ f2) # {'oscar', 'tom', 'jerry', 'jack'}
  29. 5.父集 子集
  30. print(f1 > f2) # False
  31. print(f2 < f1) # False

可变类型与不可变类型

  1. s1 = '$$jason$$'
  2. l1 = [11,22,33]
  3. print(s1.strip('$'))
  4. '''
  5. 字符串在调用内置方法之后并不会修改自己 而是产生了一个新的结果
  6. 如何查看调用方法之后有没有新的结果 可以在调用该方法的代码左侧添加变量名和赋值符号
  7. '''
  8. l1.append(44)
  9. print(l1) # [11, 22, 33, 44]
  10. ret = l1.append(44)
  11. print(ret) # None
  12. '''
  13. 列表在调用内置方法之后修改的就是自身 并没有产生一个新的结果
  14. 如何查看调用方法之后有没有新的结果 可以在调用该方法的代码左侧添加变量名和赋值符号
  15. '''
  16. 可变类型: 值改变 内存地址不变
  17. l1 = [11,22,33]
  18. print(l1)
  19. print(id(l1))
  20. l1.append(44)
  21. print(l1)
  22. print(id(l1))
  23. 不可变类型: 值改变 内存地址肯定变
  24. res = '$$hello world$$'
  25. print(res)
  26. print(id(res))
  27. res.strip('$')
  28. print(res)
  29. print(id(res))

作业

1.整理今日内容及博客

每个内置方法一定要自己动手写案例 查看效果

2.基于字符串充当数据库完成用户登录(基础练习)

data_source = 'jason|123' # 一个用户数据

获取用户用户名和密码 将上述数据拆分校验用户信息是否正确

  1. data_source = 'jason|123' # 一个用户数据
  2. # 获取用户用户名和密码 将上述数据拆分校验用户信息是否正确
  3. data_source = 'jason|123'
  4. username = input('username>>>:').strip()
  5. if len(username) == '0':
  6. print('用户名不能为空')
  7. password = input('password>>>:').strip()
  8. if len(username) =='0':
  9. print('用户名不能为空')
  10. name, pwd = data_source.split('|')
  11. if username == name and password == pwd:
  12. print('登陆成功')
  13. else:
  14. print('用户名或密码错误')

3.基于列表充当数据库完成用户登录(拔高练习) # 多个用户数据

data_source = ['jason|123', 'kevin|321','oscar|222']

  1. data_source = ['jason|123', 'kevin|321','oscar|222']
  2. # 获取用户名和密码
  3. username = input('username>>>:').strip()
  4. if len(username) == '0':
  5. print('用户名不能为空')
  6. password = input('password>>>:').strip()
  7. if len(username) =='0':
  8. print('用户名不能为空')
  9. for j in data_source:
  10. real_name, real_pwd = j.split('|')
  11. if username == real_name and password == real_pwd:
  12. print('登陆成功')
  13. break
  14. else:
  15. print('用户名或密码不正确')

4.利用列表编写一个员工姓名管理系统

输入1执行添加用户名功能

输入2执行查看所有用户名功能

输入3执行删除指定用户名功能

'''分析 用户输入的不同 可以执行不同的代码'''

ps: 思考如何让程序循环起来并且可以根据不同指令执行不同操作

提示: 循环结构 + 分支结构

  1. # 定义一个空列表
  2. data_list = []
  3. while True:
  4. print("""
  5. 1.添加用户名
  6. 2.查看所有用户名
  7. 3.删除指定用户名
  8. """)
  9. # 获取用想要执行的功能编号
  10. choice_num = input('请输入执行的功能编号>>>:').strip()
  11. # 5.根据不同的功能编号执行不同的分支代码
  12. if choice_num == '1':
  13. # 6.获取用户输入的用户吗
  14. username = input('请输入需要添加的用户名>>>:').strip()
  15. # 7.限制用户名不能重复 判断当前用户名是否已存在
  16. if username in data_list:
  17. print('用户名已存在')
  18. else:
  19. # 8.列表添加用户名
  20. data_list.append(username)
  21. print(f'用户名{username}添加成功')
  22. elif choice_num == '2':
  23. # 9.循环打印每一个用户数据
  24. for name in data_list:
  25. print(f"""
  26. ---------user info------
  27. 用户名:{name}
  28. -----------end----------
  29. """)
  30. elif choice_num == '3':
  31. # 获取用户想要删除的用户名
  32. delete_username = input('输入需要删除的用户名>>>:').strip()
  33. # 10.获取用户想要删除的用户名
  34. if delete_username in data_list:
  35. # 11.先判断用户名是否存在
  36. data_list.remove(delete_username)
  37. print(f'用户名{delete_username}删除成功')
  38. else:
  39. print('员工姓名不存在,无法删除')
  40. else:
  41. print('抱歉,暂时没有您想要执行的功能编号')

python进阶之路7 数据类型的内置方法的更多相关文章

  1. python 入门基础4 --数据类型及内置方法

    今日目录: 零.解压赋值+for循环 一. 可变/不可变和有序/无序 二.基本数据类型及内置方法 1.整型 int 2.浮点型float 3.字符串类型 4.列表类型 三.后期补充内容 零.解压赋值+ ...

  2. day6 基本数据类型及内置方法

    day6 基本数据类型及内置方法 一.10进制转其他进制 1. 十进制转二进制 print(bin(11)) #0b1011 2. 十进制转八进制 print(hex(11)) #0o13 3. 十进 ...

  3. while + else 使用,while死循环与while的嵌套,for循环基本使用,range关键字,for的循环补充(break、continue、else) ,for循环的嵌套,基本数据类型及内置方法

    今日内容 内容概要 while + else 使用 while死循环与while的嵌套 for循环基本使用 range关键字 for的循环补充(break.continue.else) for循环的嵌 ...

  4. Day 07 数据类型的内置方法[列表,元组,字典,集合]

    数据类型的内置方法 一:列表类型[list] 1.用途:多个爱好,多个名字,多个装备等等 2.定义:[]内以逗号分隔多个元素,可以是任意类型的值 3.存在一个值/多个值:多个值 4.有序or无序:有序 ...

  5. if循环&数据类型的内置方法(上)

    目录 if循环&数据类型的内置方法 for循环 range关键字 for+break for+continue for+else for循环的嵌套使用 数据类型的内置方法 if循环&数 ...

  6. wlile、 for循环和基本数据类型及内置方法

    while + else 1.while与else连用 当while没有被关键字break主动结束的情况下 正常结束循环体代码之后执行else的子代码 """ while ...

  7. while和for循环的补充与数据类型的内置方法(int, float, str)

    目录 while与for循环的补充 while + else 死循环 while的嵌套 for补充 range函数 break与continue与else for循环的嵌套 数据类型的内置方法 int ...

  8. python学习day7 数据类型及内置方法补充

    http://www.cnblogs.com/linhaifeng/articles/7133357.html#_label4 1.列表类型 用途:记录多个值(一般存放同属性的值) 定义方法 在[]内 ...

  9. python入门之数据类型及内置方法

    目录 一.题记 二.整形int 2.1 用途 2.2 定义方式 2.3 常用方法 2.3.1 进制之间的转换 2.3.2 数据类型转换 3 类型总结 三.浮点型float 3.1 用途 3.2 定义方 ...

  10. python之数据类型的内置方法(set、tuple、dict)与简单认识垃圾回收机制

    目录 字典的内置方法 类型转换 字典取值 修改值 计算字典长度 成员运算 删除元素 获取元素 更新字典 快速生成字典 setdefault()方法 元组的内置方法 类型转换 索引与切片操作 统计长度 ...

随机推荐

  1. 2.RabbitMQ系列之生产者

    1. 新建队列 2. 新增POM.xml配置文件 <parent> <groupId>org.springframework.boot</groupId> < ...

  2. go-zero docker-compose 搭建课件服务(二):编写courseware rpc服务

    0.转载 go-zero docker-compose 搭建课件服务(二):编写courseware rpc服务 0.1源码地址 https://github.com/liuyuede123/go-z ...

  3. Docker之介绍与安装

    Docker 说明 本章,我们主要从Docker简介.Docker中几个核心概念和Docker安装这几个方面对Docker进行介绍! 1. Docker 简介 1.1. 什么是 Docker Dock ...

  4. 《HelloGitHub》第 79 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...

  5. 微信小程序canvas 证件照制作

    小程序制作证件照过程 利用canvas制作生活中常用的证件照,压缩图片,修改图片dpi.希望给大家带来方便. 证件照小程序制作要点 上传合适的图片,方便制作证件照 调用AI接口,将图像进行人像分割.这 ...

  6. onps栈使用说明(3)——tcp、udp通讯测试

    4. tcp客户端 在协议栈源码工程下,存在一个用vs2015建立的TcpServerForStackTesting工程.其运行在windows平台下,模拟实际应用场景下的tcp服务器.当tcp客户端 ...

  7. 发布 .NET 7 MAUI / MAUI Blazor 应用到 Windows 应用商店

    .NET MAUI 目前仅允许发布 MSIX 包. 创建签名证书发布到本地传送门 [https://www.cnblogs.com/densen2014/p/16567384.html] 使用 Vis ...

  8. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(34)-Fiddler如何抓取微信小程序的包-上篇

    1.简介 有些小伙伴或者是童鞋们说小程序抓不到包,该怎么办了???其实苹果手机如果按照宏哥前边的抓取APP包的设置方式设置好了,应该可以轻松就抓到包了.那么安卓手机小程序就比较困难,不是那么友好了.所 ...

  9. winform的TabContorl的TabPage动态添加滚动条

    关键属性 AutoScrollMinSize  private int minWidth = 800; private int minHeight = 600; List<Form> li ...

  10. PHP 0817

    原题链接:http://www.wechall.net/challenge/php0817/index.php 点看题目 意思是他有一个php写的系统,但是他很容易收到LFI的影响,然后我们的任务就是 ...