一,字符串

字符串就是一系列数字,在python中,用引号引起来的都是字符串,其中的引号可以是单引号,也可以

是双引号

符串或串(String)是由数字、字母、下划线组成的一串字符。

一般记为 :

s=“a1a2···an”(n>=0)

它是编程语言中表示文本的数据类型。

python的字串列表有2种取值顺序:

从左到右索引默认0开始的,最大范围是字符串长度少1

从右到左索引默认-1开始的,最大范围是字符串开头

二,列表

1,List(列表) 是 Python 中使用最频繁的数据类型。

#Author:Anliu
 name = “\tpython\t”
 print(name)
 print(name.rstrip())
 print(name.lstrip())
 print(name.strip())

2,列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

3,列表用 []标识,是 python 最通用的复合数据类型。

4,列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

python对字符串用字符串索引方式输出分隔符逗号 python字符串的编号叫索引_元组


5,加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:

[‘runoob’, 777, 3.14, ‘anliu’, 70.2]
 runoob
 [777, 3.14]
 [3.14, ‘anliu’, 70.2]
 [123, ‘john’, 123, ‘john’]
 [‘runoob’, 777, 3.14, ‘anliu’, 70.2, 123, ‘john’]
 查:(切片操作)
 #!/bin/evn python
 #-- coding:utf-8 --
 #Author:Anliu
 list = [‘runoob’,777,3.14,‘anliu’,70.2]
 tinylist = [123,‘john’]
 print(list)
 print(list[0])
 print(list[1:3])
 print(list[2:])
 print(tinylist * 2)
 print(list + tinylist)
 #Author:Anliu
 #names = “zhangsan lisi wanger”
 names =[“zhangsan”,“lisi”,“wanger”]
 print(names)
 print(names[0])
 print(names[2])
 print(names[:2])
 print(names[2:])
 排序按照ACSII码的顺序。
 增:
 1 在列表末尾添加元素
 2 在列表中插入元素
 3 复制
 names = [“zhangsan”,“lisi”,“wanger”,“xx”]
 print(names[names.index(“xx”)])
 names = [“zhangsan”,“lisi”,“wanger”,“xx”,“lisi”]
 print(names.count(“lisi”))
 names = [“zhangsan”,“lisi”,“wanger”,“xx”,“lisi”]
 names.reverse()
 print(names)
 #Author:Anliu
 names = [“zhangsan”,“lisi”,“wanger”,“xx”,“lisi”]
 names.sort()
 print(names)
 #Author:Anliu
 names = [“zhangsan”,“lisi”,[“wanger”,“xx”],“lisi”]
 for i in names:
 print(i)
 #Author:Anliu
 names = [“zhangsan”,“lisi”,“wanger”,“xx”,“lisi”]
 names2 = [“dasfh”,“gsfs”,"",“bcvbfj”]
 names.extend(names2)
 print(names)
 print(names2)
 #Author:Anliu
 names = [“zhangsan”,“lisi”,“wanger”]
 names.append(“mazi”)
 print(names)
 #Author:Anliu
 names = [“zhangsan”,“lisi”,“wanger”]
 names.insert(0,“xxx”)
 print(names)
 第二层不变:
 两层都变:
 所以copy是一种“浅copy”
 这种方法两层都copy,是一种“深copy”
 实际上“浅copy”有三种方式
 “浅copy”在类似于共同账号的场景中有所应用,例如:
 #Author:Anliu
 names = [“zhangsan”,“lisi”,“wanger”,“xx”,“lisi”]
 names2 = names.copy()
 print(names)
 print(names2)
 #Author:Anliu
 names = [“zhangsan”,“lisi”,“wanger”,“xx”,“lisi”]
 names2 = names.copy()
 names[2] = “王二”
 print(names)
 print(names2)
 #Author:Anliu
 names = [“zhangsan”,“lisi”,[“wanger”,“xx”],“lisi”]
 names2 = names.copy()
 names[2][0] = “王二”
 print(names)
 print(names2)
 #Author:Anliu
 import copynames = [“zhangsan”,“lisi”,[“wanger”,“xx”],“lisi”]
 names2 = copy.deepcopy(names)
 names[2][0] = “王二”
 print(names)
 print(names2)
 #Author:Anliu
 import copy
 persnotallow=[“name”,[‘a’,100]]
 p1 = copy.copy(person)
 p2 = person[:]
 p3 = list(person)
 print(p1,p2,p3)
 删:
 1 使用del语句删除
 2 使用方法pop()删除元素
 默认删除最后一个元素
 3 弹出列表中任何位置处的元素
 如果你确定使用del语句还是pop()方法,就这样判断:如果你要存列表中删除一个元素,切不在以任何
 方式使用它,就用del语句;如果你要在删除元素之后还能继续使用它,就用pod()方法。
 三,元组
 元组是另一个数据类型,类似于 List(列表)。
 元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
 #!/bin/evn python
 #-- coding:utf-8 --
 #Author:Anliu
 tuple = (‘runoob’, 786, 2.23, ‘john’, 70.2)
 tinytuple = (123, ‘john’)
 print(tuple) # 输出完整元组
 print(tuple[0]) # 输出元组的第一个元素
 print(tuple[1:3]) # 输出第二个至第四个(不包含)的元素
 print(tuple[2:]) # 输出从第三个开始至列表末尾的所有元素
 print(tinytuple * 2) # 输出元组两次
 print(tuple + tinytuple) # 打印组合的元组
 元祖就其本质而言,就是一个不可变列表,不像列表一样能够修改元素。
 四,字典
 字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典
 是无序的对象集合。
 两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
 字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
 增,删,改,查:
 #!/bin/evn python
 #-- coding:utf-8 --
 #Author:Anliu
 tuple = (‘runoob’, 786, 2.23, ‘john’, 70.2)
 tinytuple = (123, ‘john’)
 print(tuple) # 输出完整元组
 print(tuple[0]) # 输出元组的第一个元素
 print(tuple[1:3]) # 输出第二个至第四个(不包含)的元素
 print(tuple[2:]) # 输出从第三个开始至列表末尾的所有元素
 print(tinytuple * 2) # 输出元组两次
 print(tuple + tinytuple) # 打印组合的元组
 #!/bin/evn python
 #-- coding:utf-8 --
 #Author:Anliu
 dict = {}
 dict[‘one’] = “This is one”
 dict[2] = “This is two”
 tinydict = {‘name’: ‘john’, ‘code’: 6734, ‘dept’: ‘sales’}
 print(dict[‘one’]) # 输出键为’one’ 的值
 print(dict[2]) # 输出键为 2 的值
 print(tinydict) # 输出完整的字典
 print(tinydict.keys()) # 输出所有键
 print(tinydict.values()) # 输出所有值
 五,集合
 集合:集合是一个无序的,不重复的数据集合,可以使用大括号 { } 或者 set() 函数创建集合,注意:创
 建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
 六,编写登录接口
 import json
 _username = input(“请注册账号:”) //注册账号并设置初始密码
 _password = input(“请输入初始密码:”)
 user = {“user”: _username,
 “passwd”: _password
 }
with open(“passwd”, “w”, encoding=(“utf-8”)) as f: //将账号和密码写入文件,永久保存
 json.dump(user, f)with open(“passwd”, “w”, encoding=(“utf-8”)) as f:
 json.dump(user, f)
 //第一次注册完成后将此段代码注释再次运行
 try: //抓住异常后锁定账号
 with open(“passwd”, “r”) as f: //读文件
 _user = (json.load(f))
 _username = _user[“user”]
 _password = _user[“passwd”]
 f.close()
 except json.decoder.JSONDecodeError:
 print(“您的账号已经锁定,请联系管理员…”)
 exit()i = 0
 while i < 3:
 username = input(“username:”)
 password = input(“password:”)
 if username == _username and password == _password:
 print(“logining …”)
 exit()
 else: //输入账号和密码超过3次后
 if i == 2:
 with open(“passwd”, “a”) as f:
 f.write("#")
 print(“用户账号已锁定…”)
 else:
 print(“username or password err…”)
 print(“请在输入一次…”)
 i += 1
 七,流程控制
 1,break语句
 break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循
 环语句。
 2,continue语句
 1)continue 语句跳出本次循环,而break跳出整个循环。
 2)continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
 3)continue语句用在while和for循环中。
 3,pass语句
 1)Python pass 是空语句,是为了保持程序结构的完整性。
 2)pass 不做任何事情,一般用做占位语句。
 八,购物车程序
 product_list = [
 (‘Robot’,200000),
 (‘MacPro’,12000),
 (‘Iphone8’,8888),
 (‘Hello World’,1200),
 ]
 shopping_list = []
 user_salary=input(“请输入你的工资:”)
 if user_salary.isdigit():
 user_salary = int(user_salary)
 while True:
 print(“商品如下:”)
 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 > -1:
            p_item = product_list[user_choice]
            if user_salary>=p_item[1]:
                shopping_list.append(p_item)
                user_salary-=p_item[1]
                print("购买商品",p_item,"成功您的余额为",user_salary,"元!" )
            else:
                print("您的余额为",user_salary,"余额不足以购买此商品,购买失败!")
                        
        else:
            print("并无此产品!")
    elif user_choice == "q":
        print("--------shopping list-------")
        for i in shopping_list:
            print(i)
        exit()
     else
       print("请重新输入正确数字")