zoukankan      html  css  js  c++  java
  • 基本数据类型,文件操作

    1.运算符

    a、算数运算

    +、-*、/

    特殊:%    取模,返回余数

            **    几次方,幂

            //      返回商的整数部分

    b.比较运算

    ==等于   !=不等于    >  <     >=    <=

    c.赋值运算

    记忆:a+=b   等价于  a=a+b

    其他算数运算符类似

    d.逻辑运算

    and  or   not

    常用于if后判断多个条件

    e.成员运算

    in    在指定序列找到值返回True,否则返回False

    not in

    2.基本数据类型

    a.数字

    int  03

    .

    需要记忆:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    
    int         #数字
    n=4
    n.bit_length()     #获取二进制的最短位数

    b.布尔值

    真或假   1 或 0   True  或False

    c.字符串  str

    1).upper 大写      .lower 小写      .title首字母大写      .strip去除空白(lstrip、rstrip)   

    .capitalize ()    首字母大写

    2)center 、ljust内容靠左      rjust

    l='hello'
    print(l.center (20,'_'))   #内容居中,其他用_补齐

    3)

    # count ('a',0,4)前几位包括空格a出现了几次,子序列的个数
    '''
    l='hello'
    print(l.count('l',0,4))
    '''
    
    # endswith ('x',0,2)   是否以x结尾,大于等于0小于2的位置    对应l.startswith()以什么开始
    '''
    l='hello'
    print(l.endswith ('x',0,2))
    '''
    
    # find (‘p’)       查找子序列,找不到返回-1
    '''
    l='hello'
    print(l.find('o',0,3))
    '''
    # format 格式化
    '''
    s='hello {0},age {1}'
    n=s.format('hhh',4)  #按顺序代替{}
    print(n)
    '''
    # join   列表、元组 转 字符串
    '''
    l=['lll','ooo']
    s='--'.join(l)
    print(s)
    
    '''
    # l.partition('ll') 分割
    # replace 替换
    # l.split('e',1) 用e分割
    # l.splitlines()用换行符分割
    # 索引
    '''
    l='hello'
    l[0]
    l[0:2] 切片
    '''

    '''
    l='hello'
    l.startswith()
    for item in l:
    print(item)
    '''
    # len(l)字符串长度
     

     d.列表

        

    # n=['l','i','p']
    # n.append后追加
    # n.count()计算出现几次
    # n.extend() 批量添加
    # n.index()获取值的索引
    # n.insert('ss',1) 插入
    # n.pop()删除最后一个
    # n.remove('ss')移除元素
    # n.reverse()反转
    # del n[0]     直接删除第几个元素

    li = ['电脑','试试','内容']
    for item in li:
    print(item) #item就是元素本身
     

    e.元组

    不能修改

    # count计算元素出现的个数
    # index 获取元素索引

    f.字典 

    '''

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-u={    'name':'alex','age':7,'gender':'M'

    }
     #name 是’alex‘的索引
    print(u['name'])
    for i in u:
        print(i)    #默认输出k  u默认等于u.keys
    '''
    # print(u.keys()) 输出keys

    # print(u.values()) 输出values # print(u.items()) 输出keys:values for k,v in u.items(): print(k) print(v) print(u.get['age']) #key 不存在返回none in判断是否在字典 #pop根据k删除 # popitem # del u['name'] 删除字典元素

     附加:字符串与列表的互相转化

         1)字符串  转   列表

    # s = 'ab,cde,fgh,ijk'
    # print(s.split(','))            #split 把字符串按分隔符分割成列表

        2)列表  转字符串

    # join   列表、元组 转 字符串
    '''
    l=['lll','ooo']   #每个元素必须是字符串格式
    s='--'.join(l)
    print(s)
    
    '''

    3.命令的帮助

    # print(dir(k))          #dir  显示命令的所有用法名
    # help(type('amm'))       # 显示命令的详细用法

    4.enumerate 自动生成序号

    li = ['电脑','试试','内容']
    for item in li:
        print(item)
    inp=int(raw_input('>>:'))
    
    for k,v in enumerate(li): #enumerate 自动生成序号   默认序号从0开始       #  for k,v in enumerate(li,1) 序号从1开始
     print(k,v) li[inp]

    5.range

    # 2.7py  range 立马创建  xrange只有for循环时创建
    # 3py    range()只有for循环时创建
    # for i in range(1,10,2) #2步长>=1,小于10           #可用于创建数列

     6.文件操作

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    
    #文件操作
    '''
    #打开文件
    f=open('ha.log') file_obj=file('文件路径','模式') r只读 w写 a追加 w+写读 r+ 读写
    ''' file_obj=file('H:log.txt', 'r+') #以读写方式打开文件 # file_obj.read() # 将所有数据读入内存 #print file_obj.read() line_list=file_obj.readlines() #按换行符隔开,形成列表,每个列表以换行符结束 for ele in line_list: #一行一行读取 line=ele.strip() #去除回车 #str values_list=line.split(';') #以;分开 #形成list # 用列表进行数据修改 values=int(values_list[-1]) # 把字符串数字转化成整形 values+=1 values_list[-1]=str(values) #把 数字 赋值给 字符串数字格式 # print(values_list) #修改完成后转成字符串 values_str=';'.join(values_list)#通过;把列表转换成字符串 file_obj.write(' ') #写入前换行 file_obj.write(values_str) #写入文件 file_obj.writelines()#一行一行写 file_obj.close() #关闭文件

    文件操作补充:

    #打开文件
    f=open('ha.log')
    file_obj=file('文件路径','模式')  #默认编码方式encoding='utf-8'
    r只读
     w写    只写,不可读,文件不存在则创建,存在则清空
     x      只写,不可读,文件不存在则创建,存在则报错
      a追加   追加,不可读,文件不存在则创建,存在则只追加
       w+写读
       r+ 读写
       rb 以字节方式打开 f=open('ha.log','rb')
                   #data=f.read()  str_data=str(data,encoding='utf-8') #存储为字节,读取要将字节转化为字符串
                   #f.write(bytes('中国',encoding='utf-8'))   #存储为字节,写时要将字符串转字节
    print(f.tell)查看指针当前位置
    f.seek(0)#调整当前指针位置
    
    #with open('H:log.txt', 'r+') as f: 打开并关闭文件  ===    f=open('H:log.txt', 'r+')
    #同时打开两个文件
    with open('H:log.txt', 'r+') as f1,open('H:log.txt', 'r+') as f2:
        for line in f1:
            f2.write(line)
    
    for line in  f:  #一行一行读
        print(line)

     7.作业

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    '''
    
    一、元素分类
    
    有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
    即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
    
    
    '''
    '''
    q=[11,22,33,44,55,66,77,88,99,90]
    
    # w={'k1':[],'k2':[]}
    # for i in q:
    #     if i>=66:
    #         w['k1'].append(i)
    #     else:
    #          w['k2'].append(i)
    
    w={}
    for i in q:
        if i>=66:
            if 'k1' in w:
                w['k1'].append(i)
            else:
                w['k1']=[i,]
        else:
            if 'k2' in w:
                w['k2'].append(i)
            else:
                w['k2']=[i,]
    
    print(w)
    
    '''
    #二 查找列表中元素,移除空格,并查找以 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 = ["alec", " aric", "Alex", "Tony", "rain"]
    w=[]
    for i in li:
        li[li.index(i)]=i.strip()
    for i in li:
        li[li.index(i)]=i.title()
    for i in li:
        if i.startswith('A') and i.endswith('c'):
            w.append(i)
    print(li,w)
    '''
    
    '''
    tu = ("alec", " aric", "Alex", "Tony", "rain")
    w=[]
    for i in tu:
        if i.startswith('A') or i.startswith('a') and i.endswith('c'):
            w.append(i)
    print(w)
    
    '''
    '''
    dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}
    w=[]
    for k,v  in dic.items():
        dic[k]=v.strip()
    for v  in dic.values():
        if (v.startswith('A') or v.startswith('a')) and v.endswith('c'):
            w.append(v)
    print(dic,w)
    '''
    # 三、输出商品列表,用户输入序号,显示用户选中的商品
    #     商品 li = ["手机", "电脑", '鼠标垫', '游艇']
    '''
    li = ["手机", "电脑", '鼠标垫', '游艇']
    for k,v in enumerate(li,1): #enumerate 自动生成序号
        print(k,v)
    inp=int(raw_input('请输入商品序号:'))
    print(li[inp-1])
    '''
    '''
    四、购物车
    功能要求:
    
    要求用户输入总资产,例如:2000
    显示商品列表,让用户根据序号选择商品,加入购物车
    购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
    附加:可充值、某商品移除购物车
    
    goods = [
        {"name": "电脑", "price": 1999},
        {"name": "鼠标", "price": 10},
        {"name": "游艇", "price": 20},
        {"name": "美女", "price": 998},
    ]
    '''
    '''
    def gouwu(): #购物模块 global money global consumption num=int(raw_input('请输入商品序号:')) num-=1 price=goods[num]["price"] #goods[num]:按序号提取字典 goods[num]["price"] 按keys提取价格 money=money-price #并计算剩余金钱 consumption=consumption+price shopping_cart.append(goods[num]) #货物加入购物车 def yichu(): #移除购物车模块 global money global consumption c=int(raw_input(' 请输入0/1选择是否移除购物车商品, 移除请输入1:')) if c==1: e=int(raw_input(' 请输入要移除的商品序号:')) d=goods[e-1] if d in shopping_cart: #判断要移除的商品是否在购物车内 shopping_cart.remove(d) #移除商品 money=money+goods[goods.index(d)]["price"] #余额增加 consumption=consumption-goods[goods.index(d)]["price"] #消费总额减少 else: print('商品不存在') def chongzhi(): #充值模块 global money pay=int(raw_input('请输入充值金额')) money=money+pay print('您的当前余额为:%d' % money) #显示当前余额 money=int(raw_input('请输入您的余额')) goods = [ {"name": "电脑", "price": 1999}, {"name": "鼠标", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] for m,n in enumerate(goods,1): print(m) for v in n.values(): print(v) print('=============') #消费总额清零 consumption=0 buy=True #定义默认一直购物 while buy: shopping_cart=[] price=0 #定义初始价格 b=1 #定义默认不退出购物或充值状态 if money>=price: #消费模块;金钱大于货物价格时,才能开始购物 while money>=price: #计价模块,有钱就可以一直购物 gouwu() #移除购物车商品模块 yichu() if money>=0: print('您的当前余额为:%d' %money) #显示当前余额 b=int(raw_input(' 请输入0/1选择是否继续购物, 购物请输入1:')) if b==0: # break #退出计价模块 if b==0: #如果不购物 break #不购物退出整个购物程序 #充值模块 else: while money<price: #金钱不足,可多次充钱,直到能买得起货物 a=int(raw_input(' 您的余额不足,请输入0/1选择是否充值,充值请输入1:')) if a==1: chongzhi() else: break #退出充值模块 if a==0: break #不充值退出程序 #打印购物车商品名、商品价格、消费总额、余额 print('您的消费清单为:') for m,n in enumerate(shopping_cart,1): print(m) for v in n.values(): print(v) #打印消费清单 print('=============') print('您的当前余额为:%d,您的消费总额为:%d' % (money,consumption) ) #打印消费总额 ''' #五、用户交互,显示省市县三级联动的选择 ''' dic = { "河北": { "石家庄": ["鹿泉", "藁城", "元氏"], "邯郸": ["永年", "涉县", "磁县"] }, "广东": {'深圳':['b','c','d'],'广州':['e','f','g'] }, " 陕西": {'西安':['h','i','j'],'宝鸡':['k','l','m'] } } def list_city(): global l,m,n,o,p,q,r,s,t,u l=[] m=[] n=[] o=[] p=[] q=[] r=[] s=[] t=[] u=[] for k in dic: l.append(k) #l=[河北 广东 陕西] for k in dic[l[0]]: m.append(k) #m=[石家庄 邯郸] for k in dic[l[1]]: n.append(k) #n=[深圳 广州] for k in dic[l[2]]: o.append(k) #0=[西安 宝鸡] for k in dic[l[0]][m[0]]: #p=["鹿泉", "藁城", "元氏"] p.append(k) for k in dic[l[0]][m[1]]:#q=["永年", "涉县", "磁县"] q.append(k) for k in dic[l[1]][n[0]]:#r=['b','c','d'] r.append(k) for k in dic[l[1]][n[1]]:#s=['e','f','g'] s.append(k) for k in dic[l[2]][o[0]]:#t=['h','i','j'] t.append(k) for k in dic[l[2]][o[0]]:#u=['k','l','m'] u.append(k) def shi_print(): if a=='河北': for k in m: print(k) elif a=='广东': for k in n: print(k) else: for k in o: print(k) def xian_print(): if b=='石家庄': for k in p: print(k) elif b=='邯郸': for k in q: print(k) elif b=='深圳': for k in r: print(k) elif b=='广州': for k in s: print(k) elif b=='西安': for k in t: print(k) else: for k in u: print(k) while True: list_city() for k in l: print(k) a=raw_input('请输入省:') shi_print() c=raw_input('是否返回上一层,输入y/n') if c=='y': continue else: while True: shi_print() b=raw_input('请输入市:') xian_print() d=raw_input('是否返回上一层,输入y/n') if d=='y': continue else: break break '''
    http://www.cnblogs.com/Wxtrkbc/p/5448870.html
    补充:购物车字典模式:
    {'电脑': {'n': 1, 'price': 1999}}
    代码:
    shopping_cart={}
    def  gouwu(): #购物模块
    global money
    global consumption
    num=int(input('请输入商品序号:'))
    num-=1
    if goods[num]["name"] in shopping_cart.keys(): #goods[num]["name"]取商品名
    shopping_cart[goods[num]["name"]]['n']+=1 #商品数量+1
    else:
    shopping_cart[goods[num]["name"]]={"price":goods[num]["price"],'n':1,} 创建购物车字典 {keys{"price":价格,数量:1}}
    money-=shopping_cart[goods[num]["name"]]["price"]*shopping_cart[goods[num]["name"]]['n'] #单价*数量
    consumption+=shopping_cart[goods[num]["name"]]["price"]*shopping_cart[goods[num]["name"]]['n']




     
  • 相关阅读:
    fedora 20 安裝 及 配置桌面環境
    2014上半年—Linux操作系统—嵌入式开发—中考
    【hdu 1864】最大报销额
    【hdu 1067】Gap
    【t055】成绩统计
    【b094&&z14】靶形数独
    【z06】观光公交
    【u213&&t037】修剪花卉
    【t062】最厉害的机器人
    【t075】郁闷的记者
  • 原文地址:https://www.cnblogs.com/wanghzh/p/5448621.html
Copyright © 2011-2022 走看看