python笔记(第二课)【数据类型】【string类型与byte类型的转换】

数据类型

  • int
int1 = 1
print(type(int1))
  • string(字符串类型)
name = 'zf'
print(type(name))

字符串的操作

name = " my name is bob"
# 首字母大写
print(name.capitalize())
# 元素出现的次数
print(name.count('b'))
# 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
print(name.center(50,'-'))
# 将字符串转化为类型
print(name.encode())
# 判断是否以该元素结尾,输出结果为True or False
print(name.endswith('bob'))
# 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
print(name.expandtabs(4))
# 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,beg默认为0,end默认为字符长度,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
print(len(name))
print(name.find('bob',1,14))
# 如果字符串只包含数字则返回 True 否则返回 False..
print(name.isdigit())
# 返回第一个匹配到的索引下标
print(name.index('a'))
# 如果字符串中只包含数字字符,则返回 True,否则返回 False
print(name.isnumeric())
# 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
print(name.ljust(20,'-'))
# 转换字符串中所有大写字符为小写.
print(name.lower())
# 截掉字符串左边的空格或指定字符
print(name.lstrip())
# 把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次
print(name.replace('bob','andy'))
print(name.rfind('bo'))
# 删除字符串字符串末尾的空格
print(name.rstrip())
# num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
print('1+2+3+4'.split('+'))
# 将字符串中大写转换为小写,小写转换为大写
print(name.swapcase())
# 以什么字符串开头
print(name.startswith(" my"))
# 转换字符串中的小写字母为大写
print(name.upper())
  • 布尔(bool类型)
 print(type(False))
  • 列表(list类型)
import copy
# 列表指针从0开始
list1 = ['zf','ybh','lyz','xl','zf']
# 列表长度
print(len(list1))
# 查看列表元素
print(list1[0])
print(list1[3])
# 截取从指针1开始,以指针3结束,但是不包含指针3
print(list1[1:3])
# 截取从指针1开始直到结束
print(list1[1:])
# -1为最后一个元素
print(list1[-2:])
# 按步长来进行切片
print(list1[0:2:2])
# 修改对象
list1[0] = 'yjl'
print(list1)
# 删除指定索引的对象
del(list1[0])
print(list1)
# 找出某个值第一个匹配项的索引位置
print(list1.index("zf"))
# 统计某个元素在列表中出现的次数
print(list1.count('zf'))
# 移除列表中某个值的第一个匹配项
list1.remove('zf')
print(list1)
# 在列表末尾添加新的对象
list1.append('ztw')
print(list1)
# 复制列表(浅copy)
list2 = list1.copy()
print(list2)
# copy多层时,只是复制了内存地址,当多层发生修改时,copy多层的结果也发生改变
list1.insert(3,['bob','alex'])
list2 = list1.copy()
list1[3][0] = 'BOB'
print(list1)
print(list2)
del(list1[3])
# 深copy
list1.insert(3,['bob','alex'])
list2 = copy.deepcopy(list1)
list1[3][0] = 'BOB'
print(list1)
print(list2)
del(list1[3])
# 清除列表
list2.clear()
print(list2)
# 将对象插入列表指定索引位置
list1.insert(3,'guoguo')
print(list1)
# 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list1.pop(2)
print(list1)
# 反向列表中元素
list1.reverse()
print(list1)
# 对原列表进行排序
list1.sort()
print(list1)

家有巨贵,以狗会友,有意者加我微信哦!!!在这里插入图片描述

  • 元祖(tuple)
    元祖其实跟列表差不多,只是它一旦创建就不能再修改
tuple1 = ('bob','alex','andy')
print(tuple1.index('bob'))
print(tuple1.count('bob'))

购物车案例

product_list = [
    ('phone',3000),
    ('mac_computer',9000),
    ('python book',99),
    ('air',3000),
]


shopping_list = []

salary = input("input your salary:")
if salary.isdigit():
    salary = int(salary)
    while True:
        # 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列
        for index,item in enumerate(product_list):
            print(index,item)
        user_choice = input("选择要买嘛?>>>:")
        if user_choice.isdigit():
            user_choice = int(user_choice)
            if user_choice < len(product_list) and user_choice >= 0:
               p_item = product_list[user_choice]
               if p_item[1] <= salary:  # 买的起
                   shopping_list.append(p_item)
                   salary -= p_item[1]
                   print(
                       "Added %s into shopping cart,your current balance is \033[31;1m%s\033[0m" % (
                       p_item, salary))
               else:
                   print("\033[41;1m你的余额只剩[%s]啦,还买个毛线\033[0m" % salary)
            else:
                print("product code [%s] is not exist!" % user_choice)
        elif user_choice == 'q':
            print("--------shopping list------")
            for p in shopping_list:
                print(p)
            print("Your current balance:", salary)
            exit()
        else:
            print("invalid option")

显示颜色的格式
在这里插入图片描述

  • 字典

字典的三大特性:
一、不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住;
二、键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
三、无序

students = {
    'student1':'Bob',
    'student2':'Alex',
    'student3':'Andy',
    'student1':'BoB',
    'student5':'lyz'
}

# 无序,天生去重,后面的覆盖前面的
print(students)

# 遍历
# for i in students:
#     print(i,students[i])

for k,v in students.items():
    print(k,v)

# 返回所有的key
print(students.keys())

if 'student1' in students:
    print(True)

# 查看
print(students['student1'])
# 推荐使用,上面当键不存在时会报错
print(students.get('student1'))
# 修改
students['student1'] = 'xzmly'
print(students['student1'])
# 当键不存在时添加一条
students['student4'] = 'xdd'
print(students)
# 删除之del
del(students['student4'])
print(students)
# 删除之pop
print(students.pop('student1'))
print(students)
# 存在students则取students的值,不存在就取默认值
students.setdefault('student5','byb')
print(students['student5'])
# 将列表转化为列表
print(students.items())
  • 集合
    特点:无序,不会重复
 list_1 = [1,4,5,7,3,6,7,9]
list_1 = set(list_1)
list_2 = set([2,6,0,66,22,8,4])
print(list_1,list_2)
# 交集
print(list_1.intersection(list_2))
# 并集
print(list_1.union(list_2))
# 差集
print(list_1.difference(list_2))
# 子集 父集
list_3 = set([1,3,7])
print(list_3.issubset(list_1))
print(list_1.issuperset(list_3))
# 对称差集(合集 - 交集)
print(list_1.symmetric_difference(list_2))
# 添加
list_1.add(555)
print(list_1)
# 可以添加多个
list_1.update([666,777])
print(list_1)
# 不存在会报错
list_1.remove(1)
print(list_1)
# 不存在不会报错
list_1.discard(7)
print(list_1)

string类型与type类型转换

在这里插入图片描述

msg = '我爱你,北京'
print(msg)
# string转换为byte时,结果会带b
msg1 = msg.encode("utf-8")
print(msg1)

print(msg1.decode("utf-8"))

在这里插入图片描述

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值