Python开发【第二篇】:基础数据类型
内容概要
- 格式化输出
- 运算符
- 编码
- 基本数据类型
- 深浅拷贝、小数据池
1、格式化输出
# %s 占位字符串. 实际上可以占位任何东西(用的最多的)
# %d 占位整数. 只能占位数字
# name = "wusir" # hobby = "打篮球" print("%s喜欢%s" % (name, hobby))
# 如果你的python是3.6以上, 此时可以使用模板字符串
# f"{变量}"
# print(f"{name}喜欢{hobby}") # 模板字符串
2、运算符
01、算数运算
02、比较运算
03、赋值运算
04、逻辑运算
01. and
并且, 左右两端必须同时为真, 最终的结果才能是真, 有一个是假, 结果就是假
2, or
或者, 左右两端有一个是真. 结果就是真. 全都是假, 结果才能是假
3, not
非.不. 非真既假, 非假既真
4. 优先级
如果出现混合逻辑运算. 顺序: () => not => and => or
例如:
print(not 1 > 5 and 4 < 6 or 7 > 8 and 1 < 9 or 5 > 6) True先算 not: 1 >5:取反,为True再算 and: True and 4 < 6 :True , 7 > 8 and 1 < 9 :False最后 or: True or Flase or 5 > 6 结果为:True
5. a or b
如果 a 是0,结果是b如果 a 是非0,结果就是aprint(1 or 2) # 1 print(0 or 3) # 3 print(1 or 5) # 1 print(0 or 5) # 5 #0就是假,非0就是真
6. a and b
和 or 相反 print(1 and 2) # 2 print(0 and 3) # 0 print(1 and 5) # 5 print(0 and 5) # 0
05、成员运算
例如:
s = "alex特别喜欢太白金星" if "胡辣汤" in s:print("胡辣汤在 s 变量中") else:print("胡辣汤不在 s 变量中") 胡辣汤不在 s 变量中print("胡辣汤" in s) False print("胡辣汤" not in s) True
3、编码
01. ASCLL码
早期. 计算机是美国发明的. 普及率不高, 一般只是在美国使用. 所以. 最早的编码结构就是按照美国人的习惯来编码的. 对应数字+字母+特殊字符一共也没多少. 所以就形成了最早的编码ASCII码. 直到今天ASCII依然深深的影响着我们.
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
02. GBK国标码
随着计算机的发展. 以及普及率的提高. 流行到欧洲和亚洲. 这时ASCII码就不合适了. 比如: 中文汉字有几万个. 而ASCII最多也就256个位置. 所以ASCII不行了. 怎么办呢? 这时, 不同的国家就提出了不同的编码用来适用于各自的语言环境.比如, 中国的GBK, GB2312, BIG5, ISO-8859-1等等. 这时各个国家都可以使用计算机了.
GBK, 国标码占用2个字节. 对应ASCII码 GBK直接兼容. 因为计算机底层是用英文写的. 你不支持英文肯定不行. 而英文已经使用了ASCII码. 所以GBK要兼容ASCII.
这里GBK国标码. 前面的ASCII码部分. 由于使用两个字节. 所以对于ASCII码而言. 前9位都是0
字母A:0100 0001 # ASCII 字母A:0000 0000 0100 0001 # GBK 国标
03. Unicode 万国码
国标码的弊端: 只能中国用. 日本就垮了. 所以国标码不满足我们的使用. 这时提出了一个万国码Unicode. unicode一开始设计是每个字符两个字节. 设计完了. 发现我大中国汉字依然无法进行编码. 只能进行扩充. 扩充成32位也就是4个字节. 这回够了. 但是. 问题来了. 中国字9万多. 而unicode可以表示40多亿. 根本用不了. 太浪费了. 于是乎, 就提出了新的UTF编码.可变长度编码
UTF-8: 每个字符最少占8位. 每个字符占用的字节数不定.根据文字内容进行具体编码. 比如. 英文. 就一个字节就够了. 汉字占3个字节. 这时即满足了中文. 也满足了节约. 也是目前使用频率最高的一种编码
UTF-16: 每个字符最少占16位.
GBK: 每个字符占2个字节, 16位
# 用的最多的编码就是utf-8
# 1. 英文: 8bit -> 1byte
# 2. 欧洲文字: 16bit -> 2byte
# 3. 中文: 24bit -> 3个字节 中文有9万多个
# python2.x使用的是ascii
# python3.x内存中使用的unicode, 文件存储使用:utf-8
# s = "古力娜扎" # 字符串直接就是unicode # print(s)# # 想要存储到文件中. 必须进行转换 => utf-8 或者GBK
04. 编码与解码
编码之后的数据是bytes类型的数据,还是原来的数据只是经过编码之后表现形式发生了改变而已。
bytes的表现形式:
- 英文 b'alex' 英文的表现形式和字符串没什么两样
- 中文 b'\xe4\xb8\xad' 这是一个汉字的UTF-8的bytes表现形式
# s = "lishichao" # print(s.encode("utf-8")) # 将字符串编码成UTF-8 # print(s.encode("GBK")) # 将字符串编码成GBK #结果: # b'lishichao' # 英文编码之后的结果和源字符串一致 # b'lishichao's = "李世超" print(s.encode("utf-8")) # 将字符串编码成UTF-8 print(s.encode("GBK")) # 将字符串编码成GBK #结果: # b'\xe6\x9d\x8e\xe4\xb8\x96\xe8\xb6\x85' # 一个中文的UTF-8编码是3个字节 # b'\xc0\xee\xca\xc0\xb3\xac' # 一个GBK的中文编码是2个字节 #使用decode()来进行解码操作,吧bytes类型的数据还原回我们熟悉的字符串:print(b'\xe6\x9d\x8e\xe4\xb8\x96\xe8\xb6\x85'.decode('UTF-8')) print(b'\xc0\xee\xca\xc0\xb3\xac'.decode('GBK'))
编码和解码的时候都需要制定编码格式:
s = "我是文字" bs = s.encode("GBK") # 我们这样可以获取到GBK的文字 # 把GBK转换成UTF-8 # 首先先要把GBK转换成unicode. 也就是需要解码 s = bs.decode("GBK") # 解码 # 然后需要进行重新编码成UTF-8 bss = s.encode("UTF-8") # 重新编码 print(bss) # 用什么编码,就用什么解码。
4、基本数据类型
4.1 python基本数据类型
- int ==> 整数. 主要用来进行数学运算
- str ==> 字符串, 可以保存少量数据并进行相应的操作
- bool==> 判断真假, True, False
- list==> 存储大量数据.用[ ]表示
- tuple=> 元组, 不可以发生改变 用( )表示
- dict==> 字典, 保存键值对, 一样可以保存大量数据
- set==> 集合 保存大量数据. 无序;不可以重复. 其实就是不保存value的dict
4.2 int
整数类型,主要用来数学运算,只有一个方法。
a = 3 # 二进制用11表示 print(a.bit_length()) #计算二进制长度 #结果为:2
4.3 bool
布尔值只有两个:True、Flase 主要用来条件判断。
基本数据类型之间互相转换
bool => int a = True b = False print(int(a)) print(int(b))# 整数中 0=> False 非0 =>True#所有表示空的东西都是假 print(bool("")) print(bool("a")) print(bool(None)) #None 表示空
4.4 str
把字符连成串. 在python中用', ", ''', """引起来的内容被称为字符串.
01、字符串的索引和切片
索引:
# 索引就是第几个字符, 索引从0开始 # s = "jay" # print(s[1]) #a []表示索引 # print(s[2]) #y # print(s[-1]) #y # print(s[-3]) #j
切片:
# s = "alex昨天看冯提莫直播. 刷了1w个鱼丸" s[4:8] # 默认从左到右切, 顾头不顾尾[start, end) s[-6:-2] s[8:4] #这样取不到值 s[:6] # 从头开始切, 切到6为止 s[:] # 从头到尾 # 带有步长的切片 s = "wusir喜欢和alex一起去探讨课件" print(s[3:8:2]) # 从3到8 每2个出来1个 i喜和 print(s[::2]) # 从头到尾 步长为2# 如果步长为负数, 从右到左 print(s[::-1]) print(s[-1:-6:-2]) print(s[-3::-3])
02. 字符串相关操作:
切记, 字符串是不可变的对象, 所以任何操作对原字符串是不会有任何影响的
- 大小写转换:
1. 首字母大写
# s = "alex" # s1 = s.capitalize() # 首字母大写, 字符串是不可变的数据类型. 每次操作都会返回新字符串 # print(s) # print(s1)
View Code
2. upper() 把所有字母转化成大写
# s = "wusir" # s1 = s.upper() # print(s1) # while 1: # game = input("请输入你喜欢玩儿的游戏(请输入Exit退出程序):") # if game.upper() == "EXIT": # 忽略大小写 # break # print("你喜欢的游戏是%s" % game)
View Code
3. lower() 全部转化成小写. 对一些欧洲文字不敏感
# s = "wusir和ALEX关系不一般" # print(s.lower())
View Code
4. title() 标题, 每个单词的首字母大写
# s = "alex wusir ritian taibai nezha 女神" # print(s.title())
View Code
- 切来切去:
1. split() 字符串切割
# s = "alex_wusir_taibai" # ret = s.split("alex_wusir_taibai") # 如果切割的位置在边缘. 一定能获取到空字符串 # print(type(ret)) # <class 'list'> 列表 # print(ret)
View Code
2. replace() 字符串的替换
# s = "alex dsb, wusir xsb" # # print(s.replace("sb", "烧饼")) # print(s.replace("sb", ""))
View Code
3. strip() 去掉空白 => 脱掉空白
# # s = " 哈哈哈 哈哈哈\n\t" # \t 制表符(缩进) \n 换行 # # print(s.strip()) # 去掉左右两端的空白(必须要记住)# username = input("用户名:").strip() # password = input("密码:").strip() # if username == "alex" and password == "123": # print("登录成功了") # else: # print("登录失败")
View Code
while 1: print(input(">>>:").strip("吗呢么?")+"!") # 执行结果: 把末尾的"吗呢么?",替换成"!" >>>:你好吗 你好!
View Code
- 找来找去
s = "php是全世界最好的编程语言" # print(s.startswith("java")) # 判断这句话是否是以xxx开头 # print(s.endswith("php")) # 判断是否以xxx结尾# s = "java, php, python, c++" # print(s.count("av")) # 计算xxx字符串中出现的次数# s = "海王_剑姬_诺手_余小C喜欢用诺手" # print(s.find("手")) # 找的是索引 # print(s.find("胡")) # 如果不存在. 返回-1 # print(s.index("手")) # index: 索引 # print(s.index("胡")) # index如果找不到. 报错
View Code
-判断组成
# s = "abc胡辣汤壹123@#$%" # print(s.isdigit()) # 判断字符串是否由数字组成 # print(s.isalpha()) # 判断是否由文字的基本组成. # print(s.isalnum()) # 是否由数字. 字母组成, 能屏蔽特殊字符# s = "123123壹佰贰拾伍万贰千三百四十六" # print(s.isnumeric()) # 判断是否是数字, 两, 俩
View Code
len() 求长度(字符串、列表), 内置函数
# i = 0 # while i < len(s): # 遍历字符串 # print(s[i]) # i += 1
View Code
4.5 列表和元祖
能装对象的对象叫列表. 存在的意义:存储大量的数据
列表使用[]括起来, 内部元素用逗号隔开,列表是可变数据类型。
# lst = ["张三丰", "张全蛋", "张无忌", "张国立", "张翠山", "张二嘎"]# 类表和字符串一样也有索引和切片 # print(lst[1]) # print(lst[1::2]) # 切片功能和字符串一模一样 # print(lst[-1::-2]) #
- 列表的增删改查:
添加:
01. append 追加 向列表的最后放数据
# lst = [] # list() # lst.append("手表") # lst.append("腰带") # lst.append("相机") # lst.append("陈冠希")
View Code
02. insert 插入.
# lst = ["倚天", "射雕", "天龙", "笑傲江湖"] # lst.insert(2, "少林足球") # print(lst)
View Code
03. extend() 迭代添加(不常用)
# lst= ["小龙女", "李若彤", "阿娇", "景甜"] # lst.extend(["张三丰", "李四", "王二麻子", "李老五"]) # print(lst)
View Code
删除:
01. pop 指定索引删除,会返回删除的元素
# lst = ["李嘉诚", "马云", "马化腾", "王健林", "你"] # lst.pop(1) # print(lst)
View Code
02. remove 指定元素删除
# lst.remove("马化腾") # 删除. 指定某一个元素删除 # print(lst)
View Code
03. del
# del lst[3] # print(lst)
View Code
04. clear 清空
# lst.clear() # 清空列表 # print(lst)
View Code
修改:
# lst = ["马大帅", "乡村爱情", "刘老根", "圣水湖畔"] # lst[1] = "东北一家人" # 索引修改 # print(lst)
View Code
查询-> 用的最多的是索引
# lst = ["马大帅", "乡村爱情", "刘老根", "圣水湖畔"] # # # print(lst[3]) # # # 列表是一个可迭代对象. 可以使用for循环 # # for item in lst: # item:列表中的每一项元素 # # print(item) # # print("马大帅" in lst) # 成员判断
View Code
- 相关操作:
sort() 排序
# lst = [1,5,4,7,5,4,11,2,5,44,5,1,3,6] # # reverse: 只要看到它. 一定是反着来 # lst.sort(reverse=True) # 排序 # print(lst)# lst = ["张无忌", "赵敏", "周芷若", "小昭", "阿离"] # lst.reverse() # 列表的翻转 # print(lst)
View Code
range() 循环列表
# range可以让for循环数数 # for i in range(100): # [0, 100) 100次循环 # print(i)# for i in range(10, 20): # [10, 20) # print(i)# for i in range(10, 20, 2): # [10, 20) 每2个出1个 # print(i)# 重点: # lst = ["成功", "不要", "30岁", "做人", "思想", "学习是自己的", "找家长"] # 0-4 # # for i in range(len(lst)): # 可以拿到索引和元素 # print(i, lst[i])# i = 0 # for item in lst: # 这个循环看不到索引 # print(i, item) # i += 1
View Code
列表的深浅拷贝
python的赋值机制
# a = 20 # b = a # print(a is b) # 判断内存地址是否一样 #Truea = [1,2,3] b = a #赋值操作没有进行拷贝. 还是同一个对象 print(a is b) print(id(a)) #指向的内存地址一样 print(id(b)) #指向的同一个对象a.append(4444) print(a) print(b)
View Code
浅拷贝
a = [1,2,3] b = a[:] # 此时对a进行了复制. 此时创建了新的列表, 浅拷贝 print(a is b) print(id(a)) print(id(b)) a.append(4444) print(a) print(b)浅拷贝出现的问题. 解决方案:用深拷贝 a = [1,2,3, [123, 456]] b = a.copy() print(a is b) #False print(a[3] is b[3]) #只能拷贝到第一层,嵌套的列表还是同一个对象 #Truea.append(4444) print(a) print(b)
View Code
深拷贝
# import copy # 导入一个copy模块 # lst = [1,2,3, [123, 456]] # lst2 = copy.deepcopy(lst) # 深度拷贝(深度克隆, 原型模式) # print(lst2) # # print(lst is lst2) # print(lst[3] is lst2[3]) # # 注意. 此时不论任何操作都不会互相的影响 # lst[3].append("胡辣汤") # print(lst) # print(lst2)
View Code
- 元祖
# 元组是不可变的列表, 又被成为只读列表
# 元组用小括号表示, 并且空元祖用tuple(), 如果元组中只有一个元素,必须在后面加逗号
# # 元组是可迭代对象
# tu = (1,) # 此时认为()是数学运算, 加了逗号就是元组 # print(type(tu)) # print(tu)# tu = ("金庸", "古龙", "黄奕", "孙晓") # for t in tu: # print(t)
4.6 字典
字典存储数据的时候. 它是根据hash值进行存储的. 字典中所有的key必须是可哈希的.
字典用{}表示. 以key:value的形式进行保存数据
# dic = {"jay":"周杰伦", "wlh":"王力宏", "jj":"林俊杰"} # print(dic) # print(type(dic))# # 不可变就是可哈希 # dic = {1:"呵呵", "hh":"哈哈", []:"吼吼"} # unhashable type: 'list' 列表不能是key # print(dic)
- 字典的增删改查
# 查询
# dic = {"金庸": "扫地僧", "古龙": "天机老人", "黄奕": "alex"} # print(dic["金庸"]) # 用的最多的是这种写法 # print(dic["李寻欢"]) # KeyError: '李寻欢' 没有这个key# print(dic.get("李寻欢")) # 默认情况下. 如果找不到这个key, 返回None # print(dic.get("李寻欢", "没这个人")) # 当key不存在, 返回第二个数据 # print(dic["李寻欢"])
View Code
# 添加
# dic = {} # dic["赵本山"] = "乡村爱情协奏曲" # dic[新key] = value # dic["赵本水"] = "综艺节目" # # dic["赵本山"] = "马大帅" # 替换., 修改. 当key存在了的时候. 是修改 # print(dic)# # dic.setdefault("安安") # 如果只有一个参数. value放空 # dic.setdefault("安安", "很高") # 如果有两个参数. 可以执行新增 # dic.setdefault("安安", "很瘦") # 当执行到这句话的时候. 字典中已经有了安安. 此时就不会再执行新增了 # print(dic)# setdefault执行流程: # 1.首先判断你给的key是否在字典中出现了. 如果出现了. 就不执行任何新增操作. 如果没有出现. 执行新增 # 2.不论前面是否执行了新增. 最后都会根据你给的key把value查询出来# dic = {"安安": "班主任", "大安安":'大美女'} # ret = dic.setdefault("大安安", "大美女") # print(dic) # print(ret)# lst = [11,22,33,44,55,66,77,88,99] # ret = {} # for item in lst: # if item < 66: # if not ret.get("key1"): # ret["key1"] = [item] # else: # ret["key1"].append(item) # else: # if not ret.get("key2"): # ret["key2"] = [item] # else: # ret["key2"].append(item) # print(ret)# 难 # for item in lst: # if item < 66: # ret.setdefault("key1", []).append(item) # else: # ret.setdefault("key2", []).append(item) # print(ret)
View Code
# 删除
# dic = {"alex": "路飞", "wusir": "alex", "老男孩": "linux", "linux":"成全了老男孩"} # dic.pop("alex") # 根据key删除 # print(dic) # dic.clear()# del dic['wusir'] # 根据key删除 # print(dic)
View Code
# 查询补充: keys(), values() , items()
dic = {"alex": "路飞", "wusir": "alex", "老男孩": "linux", "linux":"成全了老男孩"} # print(dic.keys()) # 像列表, 不是列表, 山寨列表 # for item in dic.keys(): # 可以直接拿到每一个key # print(item) # print(dic[item])# # 记这个 # for k in dic: # 字典是可迭代的. 此时拿到的k就是字典中所有的key # print(k) # print(dic[k])# print(dic.values()) # 获取到所有的value.# for v in dic.values(): # 很少用到这个 # print(v) # # print(dic.items())# 直接获取到key和value的方式 # for k, v in dic.items(): # dic.items() => 打开之后是元组 => 打开是=> key, value # print(k, "=>", v)
View Code
#解构, 解包: 把元组, 列表中的每一项拿出来赋值给前面的变量
# 要求:数据和变量要能对的上 # a, b, c = (1, 2, 3) # (1, 2) # print(a) # print(b)# dic = {"aa":"安安", "xx":"晓雪", "xr":"小茹"}# for k in dic: # print(k) # print(dic[k])# for k, v in dic.items(): # print(k) # print(v)
View Code
# 字典的嵌套
wf = {"name": "汪峰","age": 42,"wife": {"name":"章子怡","age": 41,"hobby":["拍戏", "当导师.."],"assit":{"name":"章助理","age":18}},"children":[{"name":"汪小峰1号", "age":18},{"name":"汪小峰2号", "age":8},{"name":"汪小峰3号", "age":2}] } # # 查询汪峰2儿子的年龄 # print(wf['children'][1]['age']) # # 汪峰老婆的助理的年龄 # print(wf["wife"]['assit']['age']) # 给汪峰小儿子加10岁 wf['children'][2]['age'] = wf['children'][2]['age'] + 10 print(wf)
View Code
# 字典没有索引和切片
dict类方法:fromkeys
d = dict.fromkeys("周杰伦", ["昆凌"]) print(d) d['杰'].append("蔡依林") print(d) # {'周': ['昆凌'], '杰': ['昆凌'], '伦': ['昆凌']} # {'周': ['昆凌', '蔡依林'], '杰': ['昆凌', '蔡依林'], '伦': ['昆凌', '蔡依林']}
# 1. fromkeys返回新字典. 不是在原来字典的基础上干活的
# 2. 所有的key共享同一个value
fromkeys执行的效果: 把前面的那个参数的数据进行迭代. 和后面的参数组合成一个key:value. 创建一个新字典
# print(dict.fromkeys("国产动画", "白蛇,缘起")) # fromkeys的正确用法
4.7 set 集合
# set集合特点:无序不重复,内部元素必须可哈希, set集合用{}表示. 如果是空集合(set())
# s = {"胡辣汤", "灌汤包", "热干面", "牛油火锅", "乱炖", "乱炖", "乱炖", "乱炖", "乱炖", "乱炖"} # print(s)
# 去重复 最重要
# lst = ["胡辣汤", "灌汤包", "热干面", "牛油火锅", "乱炖", "乱炖", "乱炖", "乱炖"] # # 把列表转化成set集合 # s = set(lst) # lst = list(s) # print(lst)
# 增删改查
# s = set() # s.add("张无忌") # 添加 # s.add("胡辣汤") # s.add("粘糕") # print(s)# s = {"年年有余", "炖鸡", "凉菜", "饺子", "肘子", "猪蹄子"} # # ret = s.pop() # 随机删除 # # s.remove("炖鸡") # # print(s) # # # 修改只有一个方案. 先删除,. 后添加 # s.remove("炖鸡") # s.add("锅包肉") # print(s)s = {"年年有余", "炖鸡", "凉菜", "饺子", "肘子", "猪蹄子"} for el in s: # set集合可以被迭代print(el)
View Code
4、is 和 ==
# == 比较的是数据
# is 比较的是内存地址
# lst1 = [1,2,3] # lst2 = [1,2,3] # print(lst1 == lst2) # print(lst1 is lst2)
s1 = "alex" s2 = "alex"print(s1 is s2) # True, 原因是有小数据池进行缓存. 优化你的字符串创建过程 print(id(s1)) print(id(s2))# String interning
# 小数据池: python会自动的对我们写的字符串, 数字, 布尔.进行缓存.
5、列表和字典的循环删除
正常循环删除
# lst = ["jay", "jj", "Jolin", "alex"] # lst.clear() 不准用clear # for item in lst: # 删不干净 # lst.remove(item)
1. 把要删除的元素记录在一个新列表中
new_lst = [] for el in lst:new_lst.append(el)for item in new_lst: # 循环新列表. 循环出来的都是要删除的内容lst.remove(item) # 删除原来的列表中的内容print(lst)
lst = ["金城武", "李嘉诚", "鹿晗", "韩露", "李易峰", "吴亦凡"]
删除姓李的
# 把要删除的人装新列表中
# new_list = [] # for item in lst: # if item.startswith("李"): # new_list.append(item) # # # 循环新列表. 删除老列表 # for item in new_list: # lst.remove(item) # # print(lst)
字典删除一样的操作
dic = {"jay":"呵呵", "jj":"哈哈", "Jolin":"吼吼"}new_lst = []#字典在迭代中,不能改变大小 for k in dic:dic["哈哈哈"] = "呵呵"dic.pop(k) # dictionary changed size during iterationnew_lst.append(k)#循环列表,去删除字典 for k in new_lst:dic.pop(k)print(dic)
转载于:https://www.cnblogs.com/root0/articles/10235561.html
Python开发【第二篇】:基础数据类型相关推荐
- Python开发第一篇 基础篇(下)
一.python种类 1.1 Cpython python官方版本,使用c语言实现,运行机制:先编译,py(源码文件)->pyc(字节码文件),最终执行时先将字节码转换成机器码,然后交给cpu执 ...
- python学习[第二篇] 基础二
控制结构 if 语句 # only if blockif condition:if_true_block# if_else blockif condition:if_true_block else:i ...
- Python:第二篇【Python】进阶-关东升-专题视频课程
Python:第二篇[Python]进阶-614人已学习 课程介绍 本书是智捷课堂开发的立体化图书中的一本,所谓"立体化图书"就是图书包含:书籍.视频.课件和服务等 ...
- Agv、Rgv 车辆控制调度系统开发第二篇
系列文章目录 Agv.Rgv 车辆控制调度系统开发第二篇(理论片) 文章目录 系列文章目录 前言 一.什么是调度系统? 问题 二.问题分析 1.寻找路线 2.避碰算法 3.移车算法 4.解锁算法 总结 ...
- 带你写爬虫(python)第二篇----抓取网易云音乐下面的评论(API方式)
抓取网易云音乐<大学无疆>的评论 一直喜欢使用网易云音乐,网易云歌曲下面的评论给其加分不少,所以这一篇来写一下怎么抓取歌曲下面的评论. 准备工作 目标网页:http://music.163 ...
- python学习日记(基础数据类型及其方法02)
python的变量 python中的变量不需要声明,变量载使用前必须被赋值,变量被赋值以后才会被创建. 在python中变量就是变量,没有数据类型.我们所说的类型是变量所指向内存中的对象的类型. py ...
- android 串口开发第二篇:利用jni实现android和串口通信
一:串口通信简介 由于串口开发涉及到jni,所以开发环境需要支持ndk开发,如果未配置ndk配置的朋友,或者对jni不熟悉的朋友,请查看上一篇文章,android 串口开发第一篇:搭建ndk开发环境以 ...
- [Python笔记]第一篇:基础知识
本篇主要内容有:什么是python.如何安装python.py解释器解释过程.字符集转换知识.传参.流程控制 初识Python 一.什么是Python Python是一种面向对象.解释型计算机程序设计 ...
- python(5)- 基础数据类型
一 int 数字类型 #abs(x) 返回数字的绝对值,如abs(-10) 返回 10 # ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5 # cmp(x, y) 如果 ...
- python知识笔记_[Python笔记]第一篇:基础知识
二.为什么要使用Python 优点: 学习成本低 开发效率高–拥有丰富而且强大的第三方库 高级语言–不用关心底层运作细节 可扩展性–Python是一门胶水语言,能于其他语言如C ,C#进行扩展 缺点: ...
最新文章
- 【一篇文章搞懂】dockerfile构建镜像的命令
- 年轻的工程师如何月入伍万XD
- linux python 永久添加自己的模块路径
- 自学python需要安装什么-初学 Python 需要安装哪些软件?
- 嵌套组合图echarts
- MySQL基础学习特殊篇 入门限定
- Linux与windows共享文件的神器:Samba
- 老旧计算机桌面,四种旧电脑改造桌面虚拟化的方案
- python钻石和玻璃球游戏_python使用pygame实现笑脸乒乓球弹珠球游戏
- 对比Excel两个sheet的数据是否相同
- Visual Basic Script 程序参考手册-学习第4天:数组列表及Msgbox函数
- 深入学习VMware vSphere---基础知识
- 数据结构与算法实验题 9.8 转移炸弹
- 什么高大填空四个字动人_照样子填空填四字成语什么什么什么地想
- ENVI入门之不同影像镶嵌之后颜色不一样的色差问题
- Linux 设置简单密码
- 海南省大数据管理局项目建设处刘雄:区块链技术在海南政务服务领域的典型应用
- Java反编译利器JD-GUI
- 学习笔记(3):EXCEL VBA编程进阶-2.9 综合应用(多工作表的条件筛选)
- 企业微信私域流量运营神器