知识整合及补充

今天主要讲了上周末的作业,并且补充了许多东西

1..range 和 xrange:

    range常和for一起用,有限数据类型的循环,而while常用于无限循环

   ····range(a,b,c)  a 表示起始位置,b 表示结束位置,c 表示跳跃位置(步长  默认为1  且默认为加)

        取 a 到 b 之间,b 不取

        可以取倒序,但是倒序步长必需要写,

   ····xrange  只在python27里面有,相当于一个未知类型或者说生成器 ,不是一次输出,占用内存小

li=["11","22","33","44","22","33",]
for i in range(0,len(li)):
    print(i)

倒序打印需加负的步长
for num in range(100,0,-20):
    print(num)

for i in range(0,50):
    if i==44:
        continue#/pass
    else:
        print(i)
range

 

2....字符串内容

    连接符(字符串类型).join(迭代对象)   迭代对象:可以重复提取使用  可用for循环的:可迭代对象  

12、(*)请用代码实现:li    =    [‘alex’,’eric’,’rain]
利用下划线将列表的每一个元素拼接成字符串"alex_eric_rain
str1 = ""
li = ["alex","eric","rain"]
a = 1
for i in li:
    str1 += i
    if a < (len(li)):
        str1 += '_'
    a = a + 1
print(str1)

新方法####
li = ["alex","eric","rain"]
msg = ""
is_first = True
for item in li:
    if is_first:
        tmp = item
        is_first = False
    else:
        tmp = "_"+item
    msg += tmp
print(msg)

新功能.join()
li = ["alex","eric","rain"]
a = "_".join(li)
print(a)
请用代码实现:li = [‘alex’,’eric’,’rain]

 

3...预备知识

    在学习函数之前:只要代码运行,放在内存中,就能使用

    索引取值要注意范围:[:]切片取值是范围没关系

  

 

部分程序

## 5 +9
content = input('请输入表达式:')
# content.split('+')
a,b = content.split('+',1)      #这里是一定要确定分割后是两个元素才能用这个方法,以此类推也可以是三个
# content.split('+',2)
a = int(a.strip())
b = int(b.strip())
print(a+b)
加法计数器问题
# 29、购物车  功能要求:
#     要求用户输入自己拥有总资产,例如:2000
#     显示商品列表,让用户根据序号选择商品,加入购物车
# #     购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
#加问题:购买的商品信息,商品价格,商品个数
#      1
v = [{ "name":"电脑", "price":1999},{ "name":"鼠标",    "price":10},
            {"name":"游艇","price":20},{"name":"美女", "price":998}, ]
# 用户输入金额
while True:
    money = input("请输入总金额:")
    money = money.strip()
    if money.isdecimal() :
        money = int(money)
        break
    else:
        print("请重新输入数字:")
print(money)
用户输入序列号,并加入购物车
num  = 1
sum = 0
n = ""
p = 0
a = 0
for item in v:
    print(num,item["name"],item["price"])
while True:
    index = input("请输入序列号(q/Q退出结算):")
    if index.lower().strip() == "q":
        break
    if index.isdecimal():
        index = index.strip()
        index = int(index)
        index = index-1
        if index >= 0 and index < len(v):#给定一个序列范围
            print("加入购物车成功,商品为:%s,价格为:%d" %(v[index]["name"],v[index]["price"]))
            a = a+1
            sum +=v[index]["price"]
            n += v[index]["name"]+" "
            p += v[index]["price"]
        else:
            print("输入序列号错误")
    else:
        print("输入格式错误")
if money >= sum:
    print("购买成功,购买的商品为:%s,价格为:%s,商品个数为:%d"%(n,p,a))
else:
    print("余额不足")
购物车
30、 分页显示内容
     a.通过for循环创建301条数据,数据类型不限,如:
          alex-1 alex1@live.com  pwd1
          alex-2 alex2@live.com   pwd2
          alex-3 alex3@live.com    pwd3
           ...
      PS: 可使用while循环自己创建 user_list=[]循环,
      创建字典{‘ user’:’ xxx ’,‘email’:’xxx’,’ pwd’:’xxxx’},将创建的字典追加到列表中。
b.提示用户 请输入要查看的页码,当用户输入指定页码,则显示指定数据
     # 注意: - 每页显示10条数据
              -用户输入页码是非十进制数字,则提示输入内容格式错误

# #1 创造301条数据
i = 1
user_list = []
while i<=301:
    user_list.append({"user": "alex-%d" % (i), "eml": "alex-%d@live.com" % (i), "password": "pwd%d" % (i)})
    i = i + 1
while True:
    if len(user_list) % 10 == 0:              98-101:求页数的代码,要会用方法
        num = len(user_list) /10
    else:
        num = len(user_list) / 10 + 1
    page = input("请输入页码:")
    if page.isdecimal():
        page = int(page)
        if page > 0 and page < num :
            start = (page-1)* 10
            end = page * 10
            user_page = user_list[start:end]
            for item in user_page:
                print(item)
        else:
            print("你输入的页码不存在,请重新输入:")
    else:
        print("格式输入错误,请重新输入:")
分页显示内容

 

 

 整理的小重点:

py2和py3区别

1 py2 # raw_input()
py3 # input()

2 py2 # range()
xrange()
py3
range()相当于py2里的xrange()

3 py2 ascii( # -*-encoding:utf-8 -*-)
py3 utf - 8

4 py2 print"alex"
py3 print('alex')

5 py2 除法 取到小数
py3 除法 取到整数

6 bytes
pyhton3(前提在python3里) (默认utf-8)里会自动变成utf-8的010101
特殊的字符串:表现上:a = ="adsa'本质是Unicode(都是四位) 的01010100
字节:表现:a = b"ads" 本质是其他编码的0101010,不能是Unicode的
有中文时的表现形式 a = b"\x12\x23\xas\xdf\...." \x:16进制

 

 

     

posted @ 2017-08-21 23:19  chitalu  阅读(104)  评论(0)    收藏  举报