# ~ 变量的定义 命名规则
# ~ 以字母和_ 开头 小写字母 空格用下划线代替 特殊预留字符不要使用 例 print
# ~ 简洁 有描述性
# ~ IndentationError:unexpected indent 意外的缩进
# ~ 简单的数据类型
# ~ 字符串 str
# ~ 单引号双引号都可以
# ~ .title()首字母
# ~ .lower() .upper() 大写小写处理
# ~ 拼接 用+相连即可
# ~ .strip() 去掉前后空格 lstrip() 去掉前空格 rstrip() 去掉后空格
# ~ 整数 int
# ~ + - * / % **(3**2 3的2次方)
# ~ 在Python3 中 3/2 = 1.5 python2 3/2 = 1
# ~ 注字符串拼接整数
# ~ 整数变成字符串str(age)
# ~ 字符串变成整数int(age)
例:
改正
# ~ 浮点数 float
# ~ 小数位数不确定性 0.1+0.2 数据量很大 存在误差
# ~ 布尔类型 bool
# ~3>2 True False 小写不识别
使用type()检查变量的类型
在对变量类型进行转换时可以使用Python的内置函数(准确的说下面列出的并不是真正意义上的函数,而是创建对象的构造方法)。
int():将一个数值或字符串转换成整数,可以指定进制。
float():将一个字符串转换成浮点数。
str():将指定的对象转换成字符串形式,可以指定编码。
chr():将整数转换成该编码对应的字符串(一个字符)。
ord():将字符串(一个字符)转换成对应的编码(整数)。
# ~ Python的列表 一连串有顺序的元素的集合
# ~ [,]
# ~ lists = ["age",1,4,True,[1,2,"Tom"]] 元素可以重复
# ~ lists[0]="age" 下标从0 开始; -1表示最后一个元素 ;-2 倒数第二个 类推。。。
# ~ len(lists) 列表的长度
# ~ 修改:
lists[0] = "color"
# ~ 增加:
lists.append(900) 追加到末尾
lists.insert(0,"yyy") 插入到任意索引位
# ~ 删除:
del lists[0] 删除任意索引位
lists.pop() 弹出最后一个元素 返回值为最后一个元素
lists.remove("True") 根据值删除只删除第一个遇到的
释放列表 lists=[](不一定适用)
释放列表 del lists[:]
# ~ 排序:
列表均为str 由首字母进行排序 均为num 比较大小
lists.sort() 执行完不可恢复 永久性改变
lists.sort(reverse = True)
sorted(lists) 执行完可恢复 暂时性改变
sorted(lists,reverse = True)
# ~ 顺序翻转:lists.reverse()
# ~ 遍历
for item in lists:
print(item)
# ~ 缩进是循环里
# ~ [1,10)
for num in range(1,10):
print(num)
for num in range(1,10,2):
print(num)
# ~ min(nums)最小值
# ~ max(nums) 最大值
# ~ sum(nums) 求和
# ~ 切片
# ~ lists[0:3] 索引0到2
# ~ lists[:2] 0-1
# ~ lists[3:] 3到最后一个
# ~ lists[:] 所有
# ~ lists[-3:] 最后三个
# ~ 元祖
tuple 特殊的列表 元素不可变列表 不可排序增删改
# ~ ()
# ~ tuple_a = (1,2,3)
# ~ 可遍历 同列表
已经有了列表这种数据结构,为什么还需要元组这样的类型呢?
元组中的元素是无法修改的,事实上我们在项目中尤其是多线程环境中可能更喜欢使用的是那些不变对象(一方面因为对象状态不能修改,所以可以避免由此引起的不必要的程序错误,简单的说就是一个不变的对象要比可变的对象更加容易维护;另一方面因为没有任何一个线程能够修改不变对象的内部状态,一个不变对象自动就是线程安全的,这样就可以省掉处理同步化的开销。一个不变对象可以方便的被共享访问)。所以结论就是:如果不需要对元素进行添加、删除、修改的时候,可以考虑使用元组,当然如果一个方法要返回多个值,使用元组也是不错的选择。
元组在创建时间和占用的空间上面都优于列表。
# ~ 集合 {}
跟数学上的集合是一致的,不允许有重复元素,而且可以进行交集、并集、差集等运算。
# ~ 字典 dictionary{,}
键值对 key value(类似map)无序的
dictionary1 = {'name':'sunny','age':'19'}
print(dictionary1)
# ~ 访问:
print(dictionary1['name'])
# ~ 修改:
dictionary1['age'] = '18'
# ~ 增加
dictionary1['sex']= 'male'
dictionary1['hight'] = '181'
# ~ key 是唯一的
# ~ 删除 永久删除
del dictionary1['sex']
# ~ 遍历
for key,value in dictionary1.items():
print(key+'------'+value)
# ~ 仅遍历key
for key in dictionary1.keys():
print(key)
for key in dictionary1:
print(key)
# ~ 排序
for key in sorted(dictionary1.keys()):
print(key)
for key in sorted(dictionary1.keys(),reverse= True):
print(key)
# ~ 仅遍历value
for value in dictionary1.values():
print(value)
# ~ value值不唯一 去重复
for value in set(dictionary1.values()):
print(value)
# ~ 嵌套
# ~ 列表里有字典
friends =[]
for counter in range(0,30):
friend = {'name':'xxx','age':20}
friends.append(friend)
for friend in friends [:5]:
print(friend)
print('total number of friends:'+str(len(friends)))
# ~ 字典里有列表
d2 = {'name':'qiaoqiao','age':'28','study':['go','java','python']}
print(d2['study'])
# ~ 字典里有字典
d3 = {'sunny':{'age':28,'study':'java'},'justin':{'age':25,'study':'ios'}}
print(d3['sunny'])