Python开发【第三篇】:Python基本数据类型
运算符
1、算数运算:

2、比较运算:

3、赋值运算:

4、逻辑运算:

5、成员运算:

基本数据类型
1、数字
int(整型),所有的功能,都放在int里
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
int - int 将字符串转换为数字
a = "123"
print(type(a),a)
b = int(a)
print(type(b),b)
num = "0011"
v = int(num, base=16)
print(v)
- bit_lenght 当前数字的二进制,至少用n位表示
r = age.bit_length()
2、布尔值
真或假
1 或 0
3、字符串
"hello world"
test="alex"
v=test.capitalize() 首字母大写
v=test.casefold() 所有变小写(很多未知的对应变小写)
test="alex"
v1=test.lower() 所有变小写
v2=test.islower() 判断是否全部是小写
test="alex"
v1=test.upper() 所有变大写
v2=test.isupper() 判断是否全部是大写
test="this is title"
v1=test.title() 把每个首字母转换成大写(转成标题)
v2=test.istitle() 判断每个首字母是否是大写(判断是否是标题)
test="alex"
test.ljust(20,"*") 总长度20个字符,左边用*填充
test.rjust(20,"*") 总长度20个字符,右边用*填充
test.center(20,"*") 总长度20个字符,居中,空白*填充
test.zfill(20) 总长度20个字符,左边填充,不能指定字符只能用0填充
test="alex"
test.lstrip() 去除字符串左边换行、空格、指定内容
test.rstrip() 去除字符串右边换行、空格、指定内容
test.strip() 去除字符串换行、空格、指定内容
test.count("le",1,2) 从字符串中寻找子序列出现的次数,从第2位开始找到第3位
test.endswith("x") 判断以什么结尾
test.startswith("a") 判断以什么开头
test.find("le",1,2) 从开始往后找,找到第一个之后,获取其位置
test.index("le") 找不到报错
test=" I am {name},age {a}"
v1=test.format(name='alex',a=18) 格式化占位符,将一个字符串中的占位符替换为指定的值,当占位符为数字时可直接写值
v2=test.format_map({"name":'alex',"a":18}) 格式化占位符,传入的值{"name":'alex',"a":18}
test="adfbg123"
v1=test.isalnum() 判断字符串中是否只包含字母和数字
v2=test.isalpha() 判断字符串中是否是字母汉字
test="123456"
v1=test.isdecimal() 判断字符串是否是十进制数字
v2=test.isdigit() 判断字符串是否是数字(②、2)
v3=test.isnumeric() 判断字符串是否是数字(②、2、二、贰)
test="abcdef\thfjjjjj\n"
v=test.isprintable() 判断是否存在不可显示的字符(\t \n)
test=" "
v=test.isspace() 判断是否全部是空格
test="你是风儿我是沙"
t="_"
v=t.join(test) 或v="_".join(test) 将字符串中的每一个元素按照指定分隔符进行拼接(重要)
print(v)
v="adfdglasjfalsfaogmavndfa"
m="str.makestrans("adfsj","12345") 对应关系
new_v=v.translate(m) 替换
分割,正则表达式也可分割
test="testtest"
v=test.partition('s') 左分割
v=test.rpartition('s') 右分割
v=test.split('s',2) 左分割但不包含,可分割的个数
v=test.rsplit('s',2) 从右边开始分割
v=test.splitlines() 只能根据换行符分割,可加ture或false是否保留换行符
test="backend 1.1.2"
v=test.startswith('ba') 判断是以什么开头的
v=test.endswith('2') 判断是以什么结尾的
test="alex"
v=test.swapcase() 大小写转换
test="username\temail\tpassword\nlaiying\tying@qq.com\t123"
v=test.expandtabs(20) 断句20
a="def"
v=a.isidentifier() 字母、数字、下划线:标识符 def class
test=("alexalexalex")
v=test.replace("ex","by") 替换
v=test.replace("ex","by",1) 替换第一个
#range:帮助创建连续的数字,或通过设置步长来指定不连续
v=range(0,100) 或v=range(0,100,5)
for item in v:
print(item)
########### 7个黑魔法 ###########
join
split
find
strip
upper
lower
replace
########### 4个灰魔法 ###########
注:字符串一旦被创建就不可修改,一旦修改或拼接,都会造成重新生成字符串
移除空白
分割
for循环 break/continue也适用
格式:for 变量名 in 字符串:
print(变量名)
②长度(len):获取当前字符串中有几个字符组成
- test="alex"
- v=len(test)
v=[3] ——获取字符串中的某一个字符
v=test[0:3] ——索引范围
④切片:
v=test[0:-1] #0<= <1
########### 1个深灰魔法 ###########
注:字符串一旦被创建就不可修改,一旦修改或拼接,都会造成重新生成字符串
str4、列表
创建列表:
|
1
2
3
|
name_list = ['alex', 'seven', 'eric']或name_list = list(['alex', 'seven', 'eric']) |
基本操作:
- 索引
- 切片
- 追加
- 删除
- 长度
- 切片
- 循环
- 包含
list5、元祖
创建元祖:
|
1
2
3
|
ages = (11, 22, 33, 44, 55)或ages = tuple((11, 22, 33, 44, 55)) |
基本操作:
- 索引
- 切片
- 循环
- 长度
- 包含
tuple6、字典(无序)
创建字典:
|
1
2
3
|
person = {"name": "mr.wu", 'age': 18}或person = dict({"name": "mr.wu", 'age': 18}) |
常用操作:
- 索引
- 新增
- 删除
- 键、值、键值对
- 循环
- 长度
dictPS:循环,range,continue 和 break
其他
1、for循环
用户按照顺序循环可迭代对象中的内容,
PS:break、continue
|
1
2
3
|
li = [11,22,33,44]for item in li: print item |
2、enumrate
为可迭代的对象添加序号
|
1
2
3
|
li = [11,22,33]for k,v in enumerate(li, 1): print(k,v) |
3、range和xrange
指定范围,生成指定的数字
|
1
2
3
4
5
6
7
8
|
print range(1, 10)# 结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]print range(1, 10, 2)# 结果:[1, 3, 5, 7, 9]print range(30, 0, -2)# 结果:[30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2] |
练习题
一、元素分类
有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
二、查找
查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
li = ["alec", " aric", "Alex", "Tony", "rain"]
tu = ("alec", " aric", "Alex", "Tony", "rain")
dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
三、输出商品列表,用户输入序号,显示用户选中的商品
商品 li = ["手机", "电脑", '鼠标垫', '游艇']
四、购物车
功能要求:
- 要求用户输入总资产,例如:2000
- 显示商品列表,让用户根据序号选择商品,加入购物车
- 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
- 附加:可充值、某商品移除购物车
|
1
2
3
4
5
6
|
goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998},] |
五、用户交互,显示省市县三级联动的选择
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
dic = { "河北": { "石家庄": ["鹿泉", "藁城", "元氏"], "邯郸": ["永年", "涉县", "磁县"], } "河南": { ... } "山西": { ... }} |

浙公网安备 33010602011771号