• Python学习Day1-补充


    一.解释器:

    二.编写一个HelloWorld:

    a.在Notepad++中编写代码,保存到桌面命名为HelloWorld.py

    b.进入Cmd终端:cd进入桌面目录

    c.运行保存于桌面上的python文件:

    d.可以进入python的交互界面直接编写代码:

      在交互界面中编写代码相当于保存于内存中,关闭之后无法保存。交互器是主要用来对代码进行调试的。

    三.变量命名规范:

    1 变量定义的规则:
    2  
    3 变量名只能是 字母、数字或下划线的任意组合
    4 变量名的第一个字符不能是数字
    5 以下关键字不能声明为变量名
    6 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global',
    7  'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'

    a.驼峰体:

    AgeOfOldboy = 56

    NumberOfStudents = 80

    b.下划线:

    age_of_oldboy = 56

    Number_of_students = 80

    建议下划线

    不规范的命名示例:

    *补充拓展:

    为什么name2不会随着name1的变化而变化呢???

    如图所示:

    四.常量:

     五.格式化输出:

     1 #提示输入姓名,年龄,工作,家乡,并按一定的格式输出:
     2 
     3 name = input("Name:")
     4 age = int(input("Age:") ) #%d类型是数字类型,需要将字符串类型强制转换为数字类型
     5 job = input("Job:")
     6 hometown = input("Hometown:")
     7 
     8 # print("----------info of " + name +"---------")
     9 # print("Name:   " + name)
    10 # print("Age   " + age)
    11 # print("Job:   " + job)
    12 # print("Hometown:   " + hometown)
    13 # print("-----------end------------")
    14 
    15 info = '''
    16 -----------info of %s---------
    17 Name:      %s
    18 Age:       %d
    19 Job:       %s
    20 Hometown:  %s
    21 ------------- end -----------
    22 ''' % (name,name,age,job,hometown)
    23 #s:string
    24 #d:digit
    25 #f:float
    26 print(info)
    27 
    28 结果为:
    29 Name:mm
    30 Age:18
    31 Job:it
    32 Hometown:GD
    33 
    34 -----------info of mm---------
    35 Name:      mm
    36 Age:       18
    37 Job:       it
    38 Hometown:  GD
    39 ------------- end -----------

    六.if判断语句:

    1.实例:用if语句判断用户登录。

     1 #-------------验证用户登录----------------
     2 #提示用户输入用户名密码
     3 #验证用户名密码
     4 #  如果用户名密码正确则登录成功
     5 #  如果用户名密码错误则提示重新输入
     6 
     7 _username = "MM"
     8 _password = "abc123"
     9 
    10 username = input("username:")
    11 password = input("password:")
    12 
    13 if (username == _username) and (password == _password):
    14     print("恭喜你,%s,登录成功!" % username)
    15 else:
    16     print("请重新输入用户名或密码!!!")

    2.实例:输入姓名,性别,判断如果是女生,打印我喜欢女生,否则,打印 一起来搞基!

     1 #---------------判断男女生----------------
     2 #提示输入姓名,性别
     3 #判断性别是否为女生
     4 #   如果是女生,则输出我喜欢女生
     5 #   如果不是,则输出一起来搞基
     6 
     7 
     8 name = input("name:")
     9 sex = input("sex:")
    10 
    11 if sex == "F" or sex == "f":
    12     print("我喜欢女生")
    13 else:
    14     print("一起来搞基!")

    3.实例:输入姓名,年龄,判断如果是女生且年龄小于28岁,打印我喜欢女生,否则,打印 姐弟恋也很好哦!

     1 #-----------判断男女生和年龄--------------
     2 #提示输入姓名,性别和年龄
     3 #判断性别是否为女生且年龄是否小于28岁
     4 #   如果是,则输出我喜欢女生
     5 #   如果不是,则输出姐弟恋也很好哦!
     6 
     7 name = input("name:")
     8 sex = input("sex:")
     9 age = int(input("age:"))
    10 
    11 if (sex == "F" or sex == "f") and age < 28:
    12     print("我喜欢女生")
    13 else:
    14     print("姐弟恋也很好哦!")

    4.实例:输入姓名,年龄,判断如果是女生且年龄小于28岁,打印我喜欢女生,否则,打印 姐弟恋也很好哦!如果是男生,打印 一起来搞基!

     1 #-----------判断男女生和年龄升级版----------
     2 #提示输入姓名,性别和年龄
     3 #判断是否为女生
     4 #   判断是否小于28岁
     5 #       如果是则输出,我喜欢女生
     6 #    否则输出,姐弟恋也很好哦!
     7 #否则输出,一起来搞基
     8 
     9 
    10 name = input("name:")
    11 sex = input("sex:")
    12 age = int(input("age:"))
    13 
    14 if (sex == "F" or sex == "f"):
    15     if age < 28:
    16         print("我喜欢女生")
    17     else:
    18         print("姐弟恋也很好哦!")
    19 else:
    20     print("一起来搞基!")

    5.实例:成绩有ABCDE5个等级,分别对应如下:

    # A 90-100
    # B 80-89
    # C 60-79
    # D 40-59
    # E 0-39
    #
    # 要求用户输入0-100的数字后,打印对应成绩
     1 #-----------打印成绩-----------
     2 #提示输入一个数字
     3 #判断是否大于100
     4 #    如果是输出成绩最多只能到100
     5 #否则判断是否大于等于90
     6 #    如果是输出A
     7 #否则判断是否大于等于80
     8 #    如果是输出B
     9 #否则判断是否大于等于60
    10 #    如果是输出C
    11 #否则判断是否大于等于40
    12 #    如果是输出D
    13 #否则判断是凑大于等于0
    14 #    如果是输出E
    15 #否则输出成绩不能是负数!
    16 
    17 
    18 score = int(input("请输入0-100的数字:"))
    19 
    20 if score > 100:
    21     print("成绩最多只能到100")
    22 elif score >= 90:
    23     print("A")
    24 elif score >= 80:
    25     print("B")
    26 elif score >= 60:
    27     print("C")
    28 elif score >= 40:
    29     print("D")
    30 elif score >= 0:
    31     print("E")
    32 else:
    33     print("成绩不能是负数!")
    34 
    35 
    36 最早写的一般代码,如下:
    37 score = int(input("请输入0-100的数字:"))
    38 
    39 if (score <= 100) and (score >= 90) :
    40     print("A")
    41 elif (score <= 89) and (score >= 80) :
    42     print("B")
    43 elif (score <= 79) and (score >= 60) :
    44     print("C")
    45 elif (score <= 59) and (score >= 40) :
    46     print("D")
    47 elif (score <= 39) and (score >= 0) :
    48     print("E")
    49 else:
    50     print("输入值有误!")

    七.while循环:

    1.实例:实现打印1-100的偶数

     1 #----------实现打印1-100的偶数------------
     2 #初始化count等于1
     3 #当count小于等于100
     4 #  判断count模2是否为0
     5 #       如果是,则打印偶数
     6 
     7 count = 1
     8 
     9 while count <= 100:
    10     if count %2 == 0:
    11         print("loop ",count)
    12     # else:
    13     #     pass
    14     count += 1

    2.实例:循环打印1-100,第50次不打印值,第60-80次打印对应值的平方

     1 #-----循环打印1-100,第50次不打印,60-80打印平方
     2 #初始化count为1
     3 #当count小于等于100
     4 #    判断count是否为50,如果是,则pass
     5 #    否则判断count是否大于等于60并且小于等于80
     6 #          如果是则输出count的平方
     7 #    否则输出count的值
     8 
     9 count = 1
    10 
    11 while count <= 100:
    12     if count == 50:
    13         pass
    14     elif count >= 60 and count <= 80:
    15         print(count*count)
    16     else:
    17         print(count)
    18 
    19     count += 1

    3.实例:猜一次年龄游戏

     1 #-----------猜年龄游戏-------------
     2 #初始化年龄为25
     3 #提示出入猜测的年龄
     4 #判断猜测年龄是否等于实际年龄
     5 #     如果是,则输出恭喜你,猜对了!
     6 #否则判断是否大于
     7 #     如果是,则输出try smaller!
     8 #否则,输出 try bigger!
     9 
    10 
    11 age = 25
    12 
    13 user_guess = int(input("请猜测年龄:"))
    14 if user_guess == age:
    15     print("恭喜你,猜对了!")
    16 elif user_guess > age:
    17     print("try smaller!")
    18 else:
    19     print("try bigger!")

    4.实例:(猜年龄升级版)优化猜年龄游戏,允许用户最多猜3次,中间猜对了,直接跳出循环。

     1 #-----------3次猜测年龄机会-----------
     2 
     3 age = 25    #初始化年龄
     4 count = 0   #计数初始化
     5 while count < 3:        #while判断count是否小于3,如果小于3则
     6                                   #提示输出猜测的年龄
     7     user_guess = int(input("请输入猜测年龄:"))
     8     if user_guess == age:    #判断猜测年龄和实际年龄是否相等
     9         print("恭喜你猜对了!") #输出结果
    10         break                          #break跳出整个循环,continue跳出本次循环,exit退出程序
    11     elif user_guess > age:    #判断猜测年龄大于实际年龄,则
    12         print("try smaller!")     #输出往小了猜
    13     else:                                #判断猜测年龄小于实际年龄,则
    14         print("try bigger!")       #输出王大了猜
    15     count += 1                      #每次循环结束count加1

    5.实例:(猜年龄完善版)优化猜年龄游戏,允许用户最多猜3次,猜了3次后,再问是否还想玩,如果用户选y,在允许猜3次,以此往复。

     1 #---------------猜年龄游戏完善版----------------------
     2 
     3 #思路:在guess_age升级版的基础上进行修改,猜3次结束之后来判断,所以直接在while循环下一层开始进行判断count是否为3,
     4 #     如果是,增加一个是否想玩的输入,选择y则进入之前猜测的环节,此时count为3无法循环,所以这时候count初始化为0,
     5 #     如果count不是3,直接进入之前猜测的环节。
     6 #反思:思维不严谨,重复代码太多,后面进行修正。
     7 
     8 原始代码如下:
     9 '''
    10 age = 25
    11 count = 0
    12 while count < 4:
    13     if count == 3:
    14         choice = input("是否还想玩?y/n:")
    15         if choice == "y":
    16             user_guess = int(input("请输入猜测年龄:"))
    17             count = 0
    18             if user_guess == age:
    19                 print("恭喜你猜对了!")
    20                 break
    21             elif user_guess > age:
    22                 print("try smaller!")
    23             else:
    24                 print("try bigger!")
    25             count += 1
    26         else:
    27             break
    28     else:
    29         user_guess = int(input("请输入猜测年龄:"))
    30         if user_guess == age:
    31             print("恭喜你猜对了!")
    32             break
    33         elif user_guess > age:
    34             print("try smaller!")
    35         else:
    36             print("try bigger!")
    37         count += 1
    38 '''
    39 
    40 #修正版本:
    41 #思路:当猜测了3次之后要想重新猜测3次的关键点在于这个count = 0!!!!!!!,所以需要在猜测3次之后将count变成0.
    42 
    43 age = 25
    44 count = 0
    45 
    46 while count < 3:
    47     user_guess = int(input("请输入猜测年龄:"))
    48     if user_guess == age:
    49         print("恭喜你,猜对了!")
    50         break
    51     elif user_guess > age:
    52         print("try smaller!")
    53     else:
    54         print("try bigger!")
    55 
    56     count += 1
    57 
    58     if count == 3:     #判断是否猜测了3次,如果是,则
    59                               #提示输入是否继续猜年龄
    60         choice = input("是否继续猜年龄?(y|Y):")
    61         if choice == 'y' or choice == 'Y':   #继续猜年龄
    62             count = 0                                #初始化count为0

    6.while。。。else语句:

    实例:

     1 #while后面的else作用是指,当while循环正常执行完,中间没有被break终止的话,就会执行else后面的语句.
     2 #作用:提供一个简单的方法,帮助我们判断一个程序是否正常执行完,是否有问题
     3 
     4 count = 0          #初始化coun为0
     5 while count <= 5:         #while判断count是否小于等于5,如果是;
     6     print("loop ",count)   #输出count的值
     7     # if count == 3:        #判断count是否等于3,如果是
     8     #     break                #跳出整个循环
     9     count += 1               #每次循环结束count加1
    10 else:          
    11     print("loop is done...")   #while正常循环5次结束后输出循环结束
    12 
    13 print("out of loop!")

    八.break和continue:

    1.实例:break

     1 #-------------break--------------
     2 
     3 count = 0
     4 while count <= 100:
     5     print("loop ",count)
     6     if count == 5:
     7         break           #break跳出整个循环
     8     count += 1
     9 
    10 #输出结果:
    11 # loop  0
    12 # loop  1
    13 # loop  2
    14 # loop  3
    15 # loop  4
    16 # loop  5

    2.实例:continue

     1 #------------------continue--------------------------
     2 
     3 count = 0
     4 while count <= 100:
     5     print("loop ",count)
     6     if count == 5:
     7         continue    #跳出本次循环,count依然是5,继续判断是否为5,则又进入if判断语句中,最后是个死循环
     8     count += 1
     9 
    10 结果:continue在这里会是一个死循环,她是跳出本次循环
    11 #loop 0
    12 #loop 1
    13 #loop 2
    14 #loop 3
    15 #loop 4
    16 #loop 5
    17 #loop 5
    18 #loop 5
    19 #.
    20 #.
    21 #.
    22 
    23 
    24 count = 0
    25 while count <= 100:
    26     count += 1     # count在continue判断语句前面,防止进入死循环
    27     if count > 5 and count < 95:
    28         continue
    29     print("loop ",count)
    30 
    31 print("------out of while loop-------")
    32 
    33 
    34 # 结果:
    35 # loop  1
    36 # loop  2
    37 # loop  3
    38 # loop  4
    39 # loop  5
    40 # loop  95
    41 # loop  96
    42 # loop  97
    43 # loop  98
    44 # loop  99
    45 # loop  100
    46 # loop  101
    47 # ------out of while loop-------

    九.浮点数:

    1.浮点数:有限小数或者无限循环小数

    2.小数精度:python默认是17位,也就是小数点后16位,这个精确度越往后越不准

    如:

     1 #python默认的是17位的精度,所以小数点之后只能存16位。
     2 
     3 a = 1.21212121212121212121
     4 b = 1.23456789123456789123
     5 print(a)
     6 print(b)
     7 
     8 # 1.2121212121212122
     9 # 1.234567891234568
    10 #结果为何???
    11 # Python默认的是17位精度,也就是小数点后16位,尽管有16位,但是这个精确度却是越往后越不准的。

    3.如何使用更高精度呢?

     1 #借助decimal模块的"getcontext"和"Decimal"方法
     2 
     3 a = 1.21212121212121212121
     4 b = 1.23456789123456789123
     5 
     6 from decimal import *
     7 print(getcontext())
     8 #Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])
     9 
    10 #prec表示的是精度,可以进行调整
    11 getcontext().prec = 50
    12 print(getcontext())
    13 #Context(prec=50, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])
    14 
    15 print(Decimal(a))
    16 print(Decimal(b))
    17 
    18 # 1.2121212121212121548552431704592891037464141845703125
    19 # 1.2345678912345678934769921397673897445201873779296875

    十.列表:

    1.常用操作: 

     1 #----------list常用操作-----------  
     2 #1.创建: 
     3 
     4  list_test1 = ['mm','tt']
     5  list_test2 = list('mm')
     6  list_test3 = list(['mm','tt'])
     7   
     8  #2.索引:
     9 name = ['mm','tt','MM',5,13,8,24]
    10 print(name[0])
    11 print(name[2])
    12 # mm
    13 # MM
    14  
    15 #3.切片:
    16 print(name[0:2])
    17 print(name[2:5])
    18 print(name[:2])
    19 print(name[2:])
    20 print(name[:])
    21 print(name[::2])  #2为步长
    22 print(name[::-1])  #反转列表
    23 
    24 # ['mm', 'tt']
    25 # ['MM', 5, 13]
    26 # ['mm', 'tt']
    27 # ['MM', 5, 13, 8, 24]
    28 # ['mm', 'tt', 'MM', 5, 13, 8, 24]
    29 # ['mm', 'MM', 13, 24]
    30 # [24, 8, 13, 5, 'MM', 'tt', 'mm'] 
    31 
    32 #4.追加:
    33 name.append('mumu')
    34 print(name)
    35 
    36 #['mm', 'tt', 'MM', 5, 13, 8, 24, 'mumu']
    37 
    38 #5.删除:
    39 name.remove('tt')
    40 print(name)
    41 print(name.pop())
    42 
    43 #['mm', 'MM', 5, 13, 8, 24, 'mumu']
    44 # 'mumu'
    45 
    46 #6.长度:
    47 print(len(name))
    48 
    49 # 6
    50 
    51 #7.包含:
    52 print('mm' in name)
    53 print('tt' in name)
    54 
    55 # True
    56 # False
    57 
    58 #8.循环:
    59 for i in name:
    60     print(i)
    61 
    62 # mm
    63 # MM
    64 # 5
    65 # 13
    66 # 8
    67 # 24

    2.习题:

      1 #习题1:创建一个空列表,命名为names,往里面添加old_driver,rain,jack,shanshan,peiqi,black_girl元素
      2 
      3 names = []
      4 names.append('old_driver')
      5 names.append('rain')
      6 names.append('jack')
      7 names.append('shanshan')
      8 names.append('peiqi')
      9 names.append('black_girl')
     10 print(names)
     11 
     12 #结果:['old_driver', 'rain', 'jack', 'shanshan', 'peiqi', 'black_girl']
     13 
     14 #习题2:往names列表里black_girl前面插入一个alex
     15 names.insert(5,'alex')
     16 print(names)
     17 
     18 #结果:['old_driver', 'rain', 'jack', 'shanshan', 'peiqi', 'alex', 'black_girl']
     19 
     20 #习题3:把shanshan的名字改为中文,姗姗
     21 names[3] = '姗姗'
     22 print(names)
     23 
     24 #结果:['old_driver', 'rain', 'jack', '姗姗', 'peiqi', 'alex', 'black_girl']
     25 
     26 #习题4:往names列表里rain的后面插入一个子列表,['oldboy','oldgirl']
     27 names.insert(2,['oldboy','oldgirl'])
     28 print(names)
     29 
     30 #结果:['old_driver', 'rain', ['oldboy', 'oldgirl'], 'jack', '姗姗', 'peiqi', 'alex', 'black_girl']
     31 
     32 #习题5:返回peiqi的索引值
     33 print(names.index('peiqi'))
     34 
     35 #结果:5
     36 
     37 #习题6:创建新列表[1,2,3,4,2,5,6,2]合并入names列表
     38 names2 = [1,2,3,4,2,5,6,2]
     39 print(names + names2)   #结果为:['old_driver', 'rain', ['oldboy', 'oldgirl'], 'jack', '姗姗', 'peiqi', 'alex', 'black_girl', 1, 2, 3, 4, 2, 5, 6, 2]
     40 
     41 names.extend(names2)
     42 print(names)   #结果为:['old_driver', 'rain', ['oldboy', 'oldgirl'], 'jack', '姗姗', 'peiqi', 'alex', 'black_girl', 1, 2, 3, 4, 2, 5, 6, 2]
     43 
     44 #习题7:取出names列表中索引4-7的元素
     45 
     46 a = names[4:7]
     47 print(a)
     48 
     49 #结果:['姗姗', 'peiqi', 'alex']
     50 
     51 #习题8:取出names列表中索引2-10的元素,步长为2
     52 
     53 b = names[2:10:2]
     54 print(b)
     55 
     56 #结果:[['oldboy', 'oldgirl'], '姗姗', 'alex', 1]
     57 
     58 
     59 #习题9:取出names列表中最后3个元素
     60 
     61 c = names[-3:]
     62 print(c)
     63 
     64 #结果:[5, 6, 2]
     65 
     66 #习题10:循环names列表,打印每个元素的索引值,和元素
     67 
     68 #尝试1:
     69 
     70 for i in names:
     71     print('索引值:',names.index(i),',','元素:',i)
     72 
     73 #结果:
     74 # 有相同的元素的时候只能返回最前面元素的索引!!!
     75 '''
     76 索引值: 0 , 元素: old_driver
     77 索引值: 1 , 元素: rain
     78 索引值: 2 , 元素: ['oldboy', 'oldgirl']
     79 索引值: 3 , 元素: jack
     80 索引值: 4 , 元素: 姗姗
     81 索引值: 5 , 元素: peiqi
     82 索引值: 6 , 元素: alex
     83 索引值: 7 , 元素: black_girl
     84 索引值: 8 , 元素: 1
     85 索引值: 9 , 元素: 2
     86 索引值: 10 , 元素: 3
     87 索引值: 11 , 元素: 4
     88 索引值: 9 , 元素: 2
     89 索引值: 13 , 元素: 5
     90 索引值: 14 , 元素: 6
     91 索引值: 9 , 元素: 2
     92 '''
     93 
     94 #正确方法1:
     95 for index,value in enumerate (names):   #enumerate:枚举
     96     print('索引值:',index,',','元素:',value)
     97 
     98 #正确结果:
     99 '''
    100 索引值: 0 , 元素: old_driver
    101 索引值: 1 , 元素: rain
    102 索引值: 2 , 元素: ['oldboy', 'oldgirl']
    103 索引值: 3 , 元素: jack
    104 索引值: 4 , 元素: 姗姗
    105 索引值: 5 , 元素: peiqi
    106 索引值: 6 , 元素: alex
    107 索引值: 7 , 元素: black_girl
    108 索引值: 8 , 元素: 1
    109 索引值: 9 , 元素: 2
    110 索引值: 10 , 元素: 3
    111 索引值: 11 , 元素: 4
    112 索引值: 12 , 元素: 2
    113 索引值: 13 , 元素: 5
    114 索引值: 14 , 元素: 6
    115 索引值: 15 , 元素: 2
    116 '''
    117 
    118 #正确方法2:
    119 count = 0
    120 for i in names:
    121     print(count,i)
    122     count += 1
    123 
    124 #正确结果:
    125 '''
    126 0 old_driver
    127 1 rain
    128 2 ['oldboy', 'oldgirl']
    129 3 jack
    130 4 姗姗
    131 5 peiqi
    132 6 alex
    133 7 black_girl
    134 8 1
    135 9 2
    136 10 3
    137 11 4
    138 12 2
    139 13 5
    140 14 6
    141 15 2
    142 '''
    143 
    144 #习题11:循环names列表,打印每个元素的索引值和元素,当索引为偶数时,把对应的元素改成-1
    145 
    146 for index,value in enumerate (names):
    147     if index % 2 == 0:
    148         print('索引值:',index,',','元素:',-1)
    149     else:
    150         print('索引值:',index,',','元素:',value)
    151 
    152 #结果:
    153 '''
    154 索引值: 0 , 元素: -1
    155 索引值: 1 , 元素: rain
    156 索引值: 2 , 元素: -1
    157 索引值: 3 , 元素: jack
    158 索引值: 4 , 元素: -1
    159 索引值: 5 , 元素: peiqi
    160 索引值: 6 , 元素: -1
    161 索引值: 7 , 元素: black_girl
    162 索引值: 8 , 元素: -1
    163 索引值: 9 , 元素: 2
    164 索引值: 10 , 元素: -1
    165 索引值: 11 , 元素: 4
    166 索引值: 12 , 元素: -1
    167 索引值: 13 , 元素: 5
    168 索引值: 14 , 元素: -1
    169 索引值: 15 , 元素: 2
    170 '''
    171 
    172 # for index,value in enumerate(names):
    173 #     if index %2 == 0:
    174 #         names[index] = -1
    175 #         print(index,value)
    176 #
    177 # print(names)
    178 
    179 #习题12:names里有3个2,请返回第2个2的索引值,要动态找(提示,找到第一个2的位置,再此基础上在找第2个)
    180 
    181 ''' #这种方法不可取,因为将列表的元素改变了
    182 names[names.index(2)] = 'x'
    183 print(names.index(2))
    184 
    185 #由于列表中有相同的元素的时候,只能返回第一个元素的索引,所以这个时候将一个不同的元素替换掉这个相同的元素的时候,就可以返回第二个相同元素的所以
    186 #结果:12
    187 '''
    188 
    189 #正确方法:
    190 #可以使用切片的方法,当找到第一个元素之后,从第一个元素后面切割出一个新的列表,然后在新的列表中找到第一个元素,然后用第一次找到的元素的索引加上第二次找到的元素的索引在加上1就找到了题目答案
    191 
    192 first_index = names.index(2)
    193 new_list = names[first_index+1:]
    194 second_index = new_list.index(2)
    195 print(first_index+second_index+1)
    196 
    197 #正确答案:12
    198 
    199 
    200 习题13:
    201 # 现有商品列表如下:
    202 # products = [['Iphone8',6888],['MacPro',14800],['小米6',2499],['Coffee',31],['Book',80],['Nike Shoes',799]]
    203 # 需打印出这样的格式:
    204 # 
    205 # ---------商品列表----------
    206 # 0.Iphone 6888
    207 # 1.MacPro 14800
    208 # 2.小米6 2499
    209 # 3.Coffee 31
    210 # 4.Book 80
    211 # 5.NIke Shoes 799
    212 
    213 #不规范解答:
    214 
    215 products = [['Iphone8',6888],['MacPro',14800],['小米6',2499],['Coffee',31],['Book',80],['Nike Shoes',799]]
    216 
    217 print("---------商品列表----------")
    218 
    219 for index,value in enumerate (products):
    220         print(index,value)
    221 
    222 #结果:
    223 '''
    224 ---------商品列表----------
    225 0 ['Iphone8', 6888]
    226 1 ['MacPro', 14800]
    227 2 ['小米6', 2499]
    228 3 ['Coffee', 31]
    229 4 ['Book', 80]
    230 5 ['Nike Shoes', 799]
    231 '''
    232 
    233 #low方法1:
    234 print("---------商品列表----------")
    235 for i1,v1 in enumerate (products):
    236     print(i1,end=" ")  #end="" 表示不换行,在这里表示输出一个索引不换行
    237     for i2,v2 in enumerate(v1):
    238         print(v2,end= " ") #表示输出值不换行
    239     print("")  #任意输出一个空的东西也会换行
    240 
    241 #正确结果:
    242 '''
    243 ---------商品列表----------
    244 0 Iphone8 6888
    245 1 MacPro 14800
    246 2 小米6 2499
    247 3 Coffee 31
    248 4 Book 80
    249 5 Nike Shoes 799
    250 '''
    251 
    252 #正确方法2:
    253 print("---------商品列表----------")
    254 for i3,v3 in enumerate(products):
    255     print("%s. %s  %s" % (i3,v3[0],v3[1]))  #格式化输出
    256 
    257 #正确结果:简单太多
    258 '''
    259 ---------商品列表----------
    260 0. Iphone8  6888
    261 1. MacPro  14800
    262 2. 小米6  2499
    263 3. Coffee  31
    264 4. Book  80
    265 5. Nike Shoes  799
    266 '''
    267 
    268 #习题14:写一个循环,不断的问用户想买什么,用户选择一个商品编号,就把对应的商品添加到购物车里,最终用户输入q退出时,打印购物车里的商品列表
    269 
    270 #方法:
    271 exit_flag = False   #标志位,控制while循环
    272 products = [['Iphone8',6888],['MacPro',14800],['小米6',2499],['Coffee',31],['Book',80],['Nike Shoes',799]]
    273 shopping_cart = []   #创建一个空购物车列表
    274 
    275 while not exit_flag:
    276     print("---------商品列表----------")
    277     for i,v in enumerate(products):
    278         print("%s. %s  %s" % (i,v[0],v[1]))
    279     choice = input("请问您想买什么:")
    280     if choice.isdigit():   #isdigit:判断是否为数字
    281         choice = int(choice)  #将str转换为int
    282         if choice >= 0 and choice < len(products):  # 判断输入的数值是否超过列表长度
    283             print("加入购物车的产品为:%s" % (products[choice]))
    284             shopping_cart.append(products[choice])    #将选择的产品加入到购物车中
    285         else:
    286             print("对不起!您输出的数值有误!")    #若输出的数值超过选项的结果
    287     elif choice == "q":
    288         exit_flag = True  #将while的标志位改变,将跳出循环
    289         if len(shopping_cart) > 0:  #判断购物车是否有产品
    290             print("-------您的购物车产品--------")
    291             for i,v in enumerate(shopping_cart):
    292                 print("%s. %s  %s" % (i,v[0],v[1]))
    293     else:
    294         print("对不起!您输出的数值有误!")
  • 相关阅读:
    对javascript匿名函数的理解(透彻版)
    使用Emmet(前身Zen Coding)加速Web前端开发
    实现IE6-Ie8媒体查询
    css3常用伪类选择器
    ScriptManager,updatepanel中按钮事件不兼容IE10以后版本
    UpdatePanel中弹出不能弹出消息
    页面缓冲显示正在加载图片
    练习JsonJquery查找数据
    Ajax练习:使用jQuery验证用户名是否存在
    使用Android SDK中的WebView
  • 原文地址:https://www.cnblogs.com/mumupa0824/p/8527252.html
Copyright © 2020-2023  润新知