zoukankan      html  css  js  c++  java
  • python笔记二

    一 运算符

        1算术运算+ - * /  % ** //其中%为取余,**为取幂如2**10=1024    9//4=2

          需要注意的是python2.7中如9/2=4 需要正确表示,则在开头添加

         from __future__ import division 而python3中不需要9/2=4.5

        2比较运算符 ==  !=  <>   >  <  >=  <=

        3赋值运算=  +=  -=  *=  /=  %=    **=   //=

           如a*=c  等同a=a*c      a**=c等同 a=a**c

        4罗辑运算

         与and   或or    非not

        5成员运算

          in  not in

         

    1 s = "the school"
    2 ret = "sc" in s
    3 print(ret)

    显示为True

    二 python的数据类型

     数字( int)字符(str) 列表 (list)字典(dict)元组( tuple)

    元组和列表的最大区别是,元组不能修改,列表可以修改

    一查看数据类型里的哪些方法

        1 help(int)

          help(str)

          help(list)

         help(dict)

         help(tuple)

      2 通过PyCharm编写程序按信ctrl鼠标点上去加鼠标左键,点击如下

       

     3 快速注释 ctrl + /(选中所需要注释的行按ctrl加 / ,再按一遍就快速去掉注释)

     数字类型(int)

    如s = 3 

    ret = s + 2与ret=s.__add__(2)等值

     

    """
    3二进制0000 0011 最少用2位表示,所以输出结果为2
    """
    s = 3
    print(s.bit_length())
    bit_length()

    ============================================================================

    字符类型(str)

    移除空白

    str1 = "     hello        "
    ret = str1.strip()
    print(str1)
    print(ret)
    注lstrip为右边空白, rstrip为左边并肯strip括号里可以输入字符
    如str1.strip("*")

     分割字符

    str1 = " hello nihao wang        "
    ret = str1.split()
    print(str1)
    print(ret)
    运行结果

    hello nihao wang
    ['hello', 'nihao', 'wang']

     取字符长度len()

    str1 = " hello nihao wang        "
    print(len(str1))
    字符串查找
    ret=str1.find("hel")
    print(ret)找到返回1,没有找到返回-1
    分割
    str1 = " hello nihao wang        "
    ret =str1.split("o")
    print(ret)
    运行结果

    C:UsersAdministratorAppDataLocalProgramsPythonPython35python.exe H:/python17/s1.py
    [' hell', ' niha', ' wang ']

     字符串连接

    str1 = "hello"
    ret ="#".join(str1)
    print(ret)
    运行结果

    C:UsersAdministratorAppDataLocalProgramsPythonPython35python.exe H:/python17/s1.py
    h#e#l#l#o

    替换replace

    str1 = "hello"
    ret ="#".join(str1)
    print(ret)
    ret1=ret.replace("#"," ")
    print(ret1)
    运行结果

    C:UsersAdministratorAppDataLocalProgramsPythonPython35python.exe H:/python17/s1.py
    h#e#l#l#o
    h e l l o

    最原始的字符串连接方式:str1 + str2
    python 新字符串连接语法:str1, str2
    奇怪的字符串方式:str1 str2
    % 连接字符串:‘name:%s; sex: ' % ('tom', 'male')
    字符串列表连接:str.join(some_list

    ==========================================================================================================================

     列表类型list

     增加

    name_list=["Robert","Rose","Merry","Hanny"]
    name_list.append("wang")
    print(name_list)
    运行结果
    ['Robert', 'Rose', 'Merry', 'Hanny', 'wang']

    插入insert()
    name_list=["Robert","Rose","Merry","Hanny"]
    name_list.insert(name_list.index("Rose"),"tt")
    print(name_list)
    运行结果
    ['Robert', 'tt', 'Rose', 'Merry', 'Hanny']
    其中index是索引确定位置
    删除
    name_list=["Robert","Rose","Merry","Hanny"]
    name_list.remove("Merry")
    print(name_list)
    运行结果

    C:UsersAdministratorAppDataLocalProgramsPythonPython35python.exe H:/python17/s1.py
    ['Robert', 'Rose', 'Hanny']

    计数

    name_list=["Robert","Rose","Merry","Hanny","Robert"]
    ret=name_list.count("Robert")
    print(ret)
    运行结果
    2
    移除并赋值
    name_list=["Robert","Rose","Merry","Hanny","Robert"]
    ret=name_list.pop()
    print(ret)
    print(name_list)
    运行结果

    C:UsersAdministratorAppDataLocalProgramsPythonPython35python.exe H:/python17/s1.py
    Robert
    ['Robert', 'Rose', 'Merry', 'Hanny']

     排序

    name_list=["Robert","Rose","Merry","Hanny","Robert"]
    name_list.sort()
    print(name_list)
    运行结果

    ['Hanny', 'Merry', 'Robert', 'Robert', 'Rose']

     包含in

    name_list=["Robert","Rose","Merry","Hanny","Robert"]
    ret="Robert" in name_list
    print(ret)
    运行结果
    True

    长度len()
    name_list=["Robert","Rose","Merry","Hanny","Robert"]
    ret=len(name_list)
    print(ret)
    运行结果
    5

    循环
    name_list=["Robert","Rose","Merry","Hanny","Robert"]
    for ret in name_list:
    print(ret)
    运行结果

    Robert
    Rose
    Merry
    Hanny
    Robert

     ===================================================================================

    元组(tuple)

    由于无法修改只有两个

    count()

    name_tuple=("Robert","Rose","Merry","Hanny","Robert")
    ret=name_tuple.count("Robert")
    print(ret)
    运行结果
    2

    index()

    name_tuple=("Robert","Rose","Merry","Hanny","Robert")
    ret=name_tuple.index("Robert",1,5)
    print(ret)
    运行结果
    4

    同样支持for循环

    =========================================================================================================

    字典dict

    更新update()

    person_dict={"name":"Robert","sex":"M","age":18}
    person_dict.update({"name":"east"})
    print(person_dict)

     运行结果

    {'sex': 'M', 'name': 'east', 'age': 18}

    person_dict={"name":"Robert","sex":"M","age":18}
    person_dict.update({"school":"east"})
    print(person_dict)
    运行结果
    {'age': 18, 'school': 'east', 'name': 'Robert', 'sex': 'M'}
    结论,如果对应的有键值对,则修改,没有则增加

     删除键值

    person_dict={"name":"Robert","sex":"M","age":18}
    person_dict.pop("name")
    print(person_dict)
    运行结果
    {'sex': 'M', 'age': 18}

    for循环
    person_dict={"name":"Robert","sex":"M","age":18}
    for ret in person_dict :
    print(ret)
    运行结果

    age
    sex
    name

    取值get()

      

    person_dict={"name":"Robert","sex":"M","age":18}
    print(person_dict.get("name"))
    运行结果
    Robert
    取值
    person_dict={"name":"Robert","sex":"M","age":18}
    print(person_dict.values())
    print(person_dict.keys())
    运行结果
    <class 'dict_values'>
    dict_keys(['sex', 'age', 'name'])


      pop获取并在字典中删除

    person_dict={"name":"Robert","sex":"M","age":18}
    print(person_dict)
    ret=person_dict.pop("name")
    print(ret)
    print(person_dict)
    运行结果

    {'sex': 'M', 'name': 'Robert', 'age': 18}
    Robert
    {'sex': 'M', 'age': 18}

    =========================================================================
    其它
    enumrate对迭大的对像加上序号
    li=["笔记本","电脑","U盘"]
    for k,v in enumerate(li,1):
    print(k,v)
    ret= input("choose:")
    print(li[int(ret)-1])
    运行结果

    1 笔记本
    2 电脑
    3 U盘
    choose:2
    电脑

    for i in range(1,5):
    print(i)
    运行结果

    1
    2
    3
    4

    for i in range(5,1,-1):
    print(i)
    运行结果

    5
    4
    3
    2

    =========================================

    有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
    即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

    #/usr/bin/env python3
    li=[11,22,33,44,55,77,88,99,90,23]
    dic={"k1":[],"k2":[]}
    for i in li:
    if i > 66:
    dic["k1"].append(i)
    elif i < 66:
    dic["k2"].append(i)
    print(dic)
    ===============================================================
    查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
        li = ["alec", " aric", "Alex", "Tony", "rain"]
        tu = ("alec", " aric", "Alex", "Tony", "rain") 
        dic = {'k1': "alex", 'k2': ' aric',  "k3": "Alex", "k4": "Tony"}
     1 #!/usr/bin/env python3
     2 li = ["alec", " aric", "Alex", "Tony", "rain"]
     3 tu = ("alec", " aric", "Alex", "Tony", "rain")
     4 dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
     5 
     6 s=' '.join(li)
     7 t=s.split()
     8 print(li)
     9 for i in t:
    10     if i[0] == "a" or i[0] =="A" and i[len(i)-1] =="c" :
    11         print(i)
    12 print("===============================================")
    13 print(tu)
    14 m=' '.join(tu)
    15 n=m.split()
    16 for i in n:
    17     if i[0] == "a" or i[0] == "A" and i[len(i)-1]=="c" :
    18         print(i)
    19 print("===============================================")
    20 print(dic)
    21 t1=[]
    22 for m1 in dic.values():
    23     t1.append(m1)
    24 print(t1)
    25 m2=' '.join(t1)
    26 n1=m2.split()
    27 for i1 in n1 :
    28     if i1[0] == "a" or i1[0]=="A" and i1[len(i1)-1]=="c":
    29         print(i1)
    30 print("=================================================")
    输出商品列表,用户输入序号,显示用户选中的商品
        商品 li = ["手机", "电脑", '鼠标垫', '游艇']
     1 #!/usr/bin/env python3
     2 li = ["手机", "电脑", '鼠标垫', '游艇']
     3 for k,v in enumerate(li,1):
     4     print(k,v)
     5 
     6 while True :
     7     i = input("请输入商品:")
     8     if i.isnumeric():
     9        if int(i) > 0 and int(i) < 5 :
    10          print(li[int(i)-1])
    11          break
    12        else:
    13         print("pleae input again")
    14     else:
    15        print("please input again")
    采购清单程序
      1 #!/usr/bin/env python3
      2 goods = [
      3     {"name": "电脑", "price": 1999},
      4     {"name": "鼠标", "price": 10},
      5     {"name": "游艇", "price": 20},
      6     {"name": "美女", "price": 998},
      7     {"name": "bus", "price": 10000},
      8     {"name": "house","price":80000}
      9 ]
     10 lism = [] #商品名
     11 lisn = [] #商品价格
     12 buy_lis=[]#所购买的清单
     13 cai=["采购物品","修改清单","结算","充值","退出"]
     14 
     15 def goods_look(list1,list2):  #查看可购买的商品清单,价格
     16      flag=True
     17      num=0
     18      print("序号 商品名称   单价")
     19      while flag:
     20        if num < len(list1):
     21         print(num+1,"   ",list1[num],'   ',list2[num])
     22        else:
     23         break
     24        num = num+1
     25 #####################################################
     26 def buy_look(s): #查看购买物品清单
     27     i = 0
     28     print("序号    商品名称   单价     数量     金额")
     29     while i < len(s):
     30         for t in s[i]:
     31             t = s[i]
     32             for l in t.keys():
     33                 print(i+1,'    	',l,'  	',t[l][0],'    	',t[l][1],'   	',t[l][2])
     34             i = i + 1
     35 #####################################################
     36 
     37 def buy_goods(s): #查看购买物品
     38     print("  商品名        单价     数量         金额")
     39     for i in s.keys():
     40         if s[i][1] != 0 :
     41           print(i.center(10), '  ', str(s[i][0]).center(5), '   ', str(s[i][1]).center(3), '       ',
     42               str(s[i][2]).center(5))
     43 ##############################################################
     44 def buy_sum(n):#求购买物品清单总额
     45     sum=0
     46     i=0
     47     while i < len(n) :
     48         for j in n[i].keys() :
     49             m = n[i][j][2]
     50             sum = sum + int(m)
     51         i=i+1
     52     return sum
     53 ################################################################
     54 # def init_buy(s_dict,m_list,n_list):
     55 #     flag=0
     56 #     for n1 in m_list:
     57 #        buy.setdefault(n1,[n_list[flag],0,0])
     58 #        flag += 1
     59 #################################################################
     60 def buy_list(buy_goods,m_list,n_list,m,n):
     61     #加入购特车m代表商品序号,n代表数量 m_list商品单,n_list代表商品价格,buy_goods为数组
     62     sum=n_list[m]*n
     63     buy_goods.append({m_list[m]:[n_list[m],n,sum,]})
     64 ################################################################
     65 def list_m(s):
     66    lism1=[]
     67    for i in s:
     68     lism1.append(i.get('name'))
     69    return lism1
     70 def list_n(s):
     71     lisn1=[]
     72     for i in s:
     73       lisn1.append(i.get('price'))
     74     return lisn1
     75 def buy_act(list_m,list_n,s):
     76 #购买商口行为 list_m为商口名称,list_n为单价,s为输入金额
     77     flag2=True
     78     while flag2:
     79         goods_look(list_m,list_n)
     80         s1 = input("请输入商品序号:")
     81         s2 = input("请选择购买数量:")
     82         m = int(s1) - 1
     83         n = int(s2)
     84         buy_list(buy_lis, lism, lisn, m, n)
     85         buy_look(buy_lis)
     86         # sum1 = buy_sum(buy_lis)
     87         # print("你共计消费总额:", sum1, "还余:", s-sum1)
     88         # if sum1 < s:
     89         flag1 = input("是否需要继续购买Y/N:")
     90         if flag1 == 'Y':
     91             flag2 = True
     92         else:
     93             flag2 = False
     94         # else:
     95         #     s1 = input("请充值:")
     96         #     s += int(s1)
     97 def buy_cz(s):
     98     s1 = input("请充值:")
     99     s = int(s1)+s
    100     return s
    101 #======================================
    102 def buy_remove(s):  #移除不需要的商品
    103     print("您已选购如下商品")
    104     while True:
    105         buy_look(s)
    106         flag_y = input("请是否需要删除不需要的商品y/n")
    107         if flag_y == 'y' and len(s):
    108             c = input("请选择所购买的商品序号:")
    109             buy_lis.remove(s[int(c) - 1])
    110 
    111         else:
    112             break
    113 #================================================================
    114 def buy_end(lis,s): #结算,lis为购物清单,s为输入金额
    115     js = input("是否要去结算(y/n):")
    116     if js == 'y':
    117 
    118         sum2 = buy_sum(lis)  # 求和
    119         buy_look(lis)
    120         print("你共计消费总额:", sum2, "还余:", s - sum2)
    121     else:
    122         lis.clear()
    123         print(lis)
    124         print("你共计消费总额:", 0, "还余:", s)
    125 #================================================================
    126 def menu(lis):
    127     for k,v in enumerate(lis,1):
    128        print(k,v)
    129 
    130 
    131 #################################################################
    132 lism=list_m(goods)
    133 lisn=list_n(goods)
    134 goods_look(lism,lisn)
    135 ################################################################
    136 s=input("请输入金额:")
    137 input_s=int(s)
    138 # caidan(cai)
    139 while True :
    140     menu(cai)
    141     cai_s=input("请从上面的菜单选择(1-5):")
    142     if cai_s == "1" :
    143         buy_act(lism,lisn,input_s)
    144     if cai_s == "2" :
    145         if len(buy_lis):
    146             buy_remove(buy_lis)
    147         else:
    148             print("请重新选择")
    149             continue
    150     if cai_s == "3" :
    151         if len(buy_lis):
    152             if buy_sum(buy_lis) <= input_s :
    153                 buy_end(buy_lis, input_s) #结算付款
    154                 temp=input_s - buy_sum(buy_lis)#付款余额
    155                 input_s = temp
    156                 buy_lis.clear()#清空购买物品list数组
    157             else:
    158                 print("余额不足请充值")
    159                 input_s = buy_cz(input_s)
    160                 print("余额为:",input_s)
    161         else:
    162             print("还没有购买请重新选择")
    163             continue
    164     if cai_s == "4" :
    165         input_s = buy_cz(input_s)
    166         print("余额为:",input_s)
    167     if cai_s == "5" :
    168         break
    View Code
    三级连动,输入一个县级市 查看属于哪个省哪个市
     1 #!/usr/bin/env python3
     2 dic = {
     3     "河北": {
     4         "石家庄": ["鹿泉", "藁城", "元氏"],
     5         "邯郸": ["永年", "涉县", "磁县"],
     6     },
     7     "湖北": {
     8         "武汉": ["武昌", "汉口", "汉阳"],
     9         "荆州": ["洪湖", "监利", "沙市"],
    10     },
    11     "广东":{
    12         "深圳":["罗湖","福田","南山","盐田"]
    13     },
    14 }
    15 lis1 = []
    16 lis2 = []
    17 s=input("please input country:")
    18 flag=True  #标识符,没有查到为真,找到了设为假
    19 for i in dic.keys():
    20     for j in dic[i].keys():
    21         lis2.append(j)
    22         k = 0
    23         while k < len(dic[i][j]):
    24             # lis2.clear() 创建 新的数组
    25             # lis2.append(i)
    26             # lis2.append(j)
    27             #
    28             # # lis2.append(j)
    29             #
    30             # lis2.append(dic[i][j][k])
    31             #
    32             # print(lis2)
    33             # lis1.append([lis2[0], lis2[1], lis2[2]])
    34             # print(i, '	', j, '	', dic[i][j][k])
    35             if s==dic[i][j][k]:
    36                 print(i,j,s)
    37                 flag=False
    38                 break
    39             k = k + 1
    40 
    41 if flag:
    42     print("系统中没有您所查的信息")
    View Code


  • 相关阅读:
    WMware下的Linux系统安装VMtools
    VMware虚拟机安装Ubuntu图文攻略
    Python高级编程(三)
    Python高级编程(二)
    Python高级编程(一)
    纯div+css样式弹出泡泡消息框
    EF应用CodeFirst模式,数据迁移的基本用法要点摘记
    sql左连接的误区
    ExtJs,从开始接触到如今,我都觉得你好垃圾阿。。。。
    EntityFramework经典的left join语法
  • 原文地址:https://www.cnblogs.com/wang43125471/p/7573754.html
Copyright © 2011-2022 走看看