第二天的关于学习的python

 

1、讲了模块

    import os 

    import  sys

                os.path

                sys.argv   #输入参数

 

2、讲了导入模块

    

3、讲了 pyc

     就是python 编译后的

     而检查机制就是 刚编译的文件时间和编译后的文件进行比较,从而对新编译的内容重新载入!

 

3、python 数据类型

     int   float  bloon

4、数据运算

      + - *  /  %取余数  ** 

 5、关于bytes新类

  a="CCC"
  b = bytes(a,encoding="utf-8")
  print(b)

就是 a 于 utf-8的形式转入 二进制形式

当然也可以 b"str" encode 编译

如二进制转换成 string a.decode 解译

六、关于列表
 1 #-*- coding:utf-8 -*-
 2 __author__ = 'andylin'
 3 __date__ = '2017/7/7 17:31'
 4 
 5 #列表的案例
 6 namelist = ['phone','watch','cat','dog','python','yy']
 7 #              0         1      2       3       4       5
 8 #              -6       -5     -4       -3     -2       -1
 9 #切片: 取多个元素
10 print(namelist[0:3])    #表示取 0,1,2 而3不包括在内
11 print(namelist[:3:2])   #表示取 0 1 2 ,隔2取一个
12 print(namelist[:-1])    #表示除最后一个外,其他都取出来
13 print(namelist[-4:-1])  #表示取出-4、-3、-2等
14 print(namelist[2:])     #表示从2开始输入所有
15 
16 #追加
17 namelist.append('andylin')
18 print(namelist)                #追加到后面
19 
20 #插入
21 namelist.insert(3,'andylinss')
22 print(namelist)                #在3的前面插入 andylinss
23 
24 #修改
25 namelist[2] = 'www'
26 print(namelist)            #直接输入就改变了
27 
28 #删除
29 del namelist[2]
30 print(namelist)    #删除key为2的值
31 namelist.pop(2)    #也是删除操作
32 
33 #扩展
34 hao = ['3','4','5']
35 namelist.extend(hao)  #加入
36 
37 #拷贝
38 name = namelist.copy() #只是浅拷贝
39 print(name)
40 
41 #统计
42 print(name.count('watch'))  #表示这个watch出现的次数
43 
44 #排序或倒序
45 namelist.sort()                #这种是强制把namelist都改变了
46 print(namelist)
47 namelist.reverse()
48 print(namelist)
49 print(sorted(namelist))        #不进行强制改变的
50 print(namelist)
51 
52 #获取下标
53 print(namelist.index('3'))    #可以取得下标
列表
七、关于元组                                                                                               
练习
#-*- coding:utf-8 -*-
__author__ = 'andylin'
__date__ = '2017/7/7 11:11'


"""
题为 先进行输入自己的金额
然后再进行购买物品
"""

shopprotion=[
    ('phone',5000),
    ('watch',1200),
    ('book',100),
    ('bike',700),
    ('python',88)
]
storange = []
while True:
    momery= input("请输入你现在身上的钱有(人民币):")
    if momery.isdigit():
        momery = int(momery)
        story = momery
        while True:
            for key,vale in enumerate(shopprotion):
                print(key,vale)
            choise =  input("请选择你要购买的商品:")
            if choise.isdigit():
                choise = int(choise)
                if choise < len(shopprotion):
                    story -=shopprotion[choise][1]
                    if story  < 0:
                        story +=shopprotion[choise][1]
                        print("不好意思,你现在的余额为:",story )
                    else:
                        storange.append(shopprotion[choise][0])
                else:
                    print("你输入的商品有误,请重新输入!")
            elif choise == 'q':
                print("购物的商口:%s,还剩%s" % (storange,story))
                print("退出购买商品!")
                break
            else:
                print("你输入的商品有误,请重新输入!")
    elif momery == 'q':
        if len(storange) > 0:
            print("你购物买的商口", storange)
        try:
            print("剩下的钱", story)
        except:
            pass
        print("欢迎下次光临!")
        break
    else:
        print("你输入有误,请重新再来!")
购物的练习

八、关于字符串常用操作
 1 print("ali li".count('l'))      #查找含有l字母的个数
 2 print("ali li".capitalize())    #把第一个字母变成大写
 3 print("ali Li".casefold())      #效果与lower非常类似
 4 print('ß'.lower())               #'ß'  汉语和英语大小写没问题
 5 print('ß'.casefold())            #'ss'  其他语言的大小写
 6 print("ali Li".center(50,"#"))  #其实就是填充 字符串居中
 7 print("ali Li".encode('utf-8'))  #从字符串转为 二进制编码
 8 print("ali Li".endswith("i"))     #判断是否与 i 结尾,返回 True and False
 9 print("ali\tLi\ta".expandtabs(20))  # tab 符号('\t')转为空格, tab 符号('\t')默认的空格数是 810 print("ali Li".find('e'))           #从左边开始找到第一个,则就进行输出key, 找不到则输出-1
11 print('{name} Al li {age}'.format(age=18,name='ali'))   #输出对应的格式
12 
13 class Default(dict):
14     def __missing___(self,key):
15         return key
16 print("{name} was ali Li ".format_map(Default(name='Guido')))   #需要输入的必须是字典形式
17 
18 print('ali li'.ljust(50,'#'))    #表示在字符串里50个字符中,剩下的用 # 填充
19 print('ali li'.ljust(2,'#'))     #如果小于2就不会进行任何动作了
20 
21 print('   \nali li   '.lstrip())   #只删除左边的空格和换行符
22 
23 nao = 'ali li'
24 trantab = nao.maketrans('abc','123')
25 print(nao.translate(trantab))              #就是需要进行在 里面进行替换操作
26 
27 print("ali li".partition('l'))          #第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串
28 print(type("ali li".partition('l')))    #注意是字符串,而空格不属于字符串, 转变为字典型类型
29 
30 print("ali li".replace('ali','abc'))   #就是替换想要替换的字符串
31 print("ali li".rfind('i'))              # 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-132 print("ali li".rindex('l'))             #返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数
33 print("ali li".rjust(50,'#'))           #左边开始填充
34 print("ali li".rpartition('l'))         #问题是有空格以后的都成为一个字符.
35 print("    ali li      ".rsplit())     #这个是从右至左进行字符串分隔,后变成list
36 print("   ali li   ".rstrip())          #表示删除右边的空格与换行。
37 
38 print("ali li".split())                  #从左到右进行分隔,不包括本身
39 print("ali li".startswith('i'))         #是否以i进行开头
40 print("ali\n li\rss".splitlines())            #按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
41 print(" ali li\n".strip())                  #表示删除左右两边的空格和换行符
42 print("ali Li".swapcase())              #方法用于对字符串的大小写字母进行转换。 #原大写的转成小写,原小写的转成大写
43 print("ali Li".title())                 #方法返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
44 print("ali Li".upper())                #全部换成大写
45 print("ali Li".zfill(20))                #方法返回指定长度的字符串,原字符串右对齐,前面填充0。 十六进制有用
字符串案例

 

九、关于字典                                                                                               
#-*- coding:utf-8 -*-
__author__ = 'andylin'
__date__ = '2017/7/8 8:33'

dictlist = {
    'python':'auto',
    'c++':'machine',
    'dangdang':'book',
    'jd':'shop',
    'good':'world',
    'd':'a'
}

"""
字典是无序的
key是唯一的
"""

#添加
dictlist['baidu'] = 'search'
print(dictlist)                 #表示搜索

#删除
del dictlist['d']
print(dictlist)
dictlist.pop('good')
print(dictlist)             #删除动作
dictlist.popitem()         #随机删除一个
print("#################")
print(dictlist)

#修改
dictlist['jd'] = 'hello world'
print(dictlist)             #修改
b = {
    'jd':'买产品',
    1:2,
}
dictlist.update(b)
print(dictlist)       #表示有的就更新,没有的就添加


#查找
print(dictlist.get('baidu'))   #找到了就返回对应的value值
print(dictlist.get('hello'))   #没找到返回None
print('jd' in dictlist)        #判断jd key是否存在

#其他
dictlist.pop('jd')
print(dictlist.setdefault('jd','京东'))     #表示如果没有就使用默认的值
print(dictlist)

c = dictlist.fromkeys([6,7,8],'test')
print(c)

c=dictlist.fromkeys([6,7,8],[1,{"name":'who'},444])
print(c)
c[7][1]['name'] = 'baidu'
print(c)                                 #既然全部都改了, 有点像潜伏制

for i in dictlist:                   #最好选择这项
    print(i)
for k,v in dictlist.items():
    print(k,v)
字典相关的案例

 


关于三级菜单的练习
#-*- coding:utf-8 -*-
__author__ = 'andylin'
__date__ = '2017/7/8 17:19'

"""
 三级菜单实例化的问题
"""

areadict = {
    '广东':{
        '广州':{
            '天河':'美食城',
            '番禺':'长隆'
        },
        '深圳':{
            '福田':'政府',
            '南山':'科技园'
        }
    },
    '海南':{
        '海口':{
            '龙华':'万绿园',
            '美兰':'美食'
        },
        '三亚':{
             '吉阳':'美丽',
            '天涯':'海边'
        }
    }
}

exec_for_return = True

while exec_for_return:
    for choise1  in areadict:
        print(choise1)
    choisenow = input('输入选择省>>>')
    if choisenow in areadict:
        for choise2 in areadict[choisenow]:
            print(choise2)
        choisenow2 = input('输入选择市>>>')
        if choisenow2 in areadict[choisenow]:
            for choise3 in areadict[choisenow][choisenow2]:
                print(choise3)
            choisenow3 = input('输入选择区镇>>>')
            if choisenow3 in areadict[choisenow][choisenow2]:
                print(areadict[choisenow][choisenow2][choisenow3])
                choisenow4 = input('输入选择(q退出)>>>')
                if choisenow4 == 'q':
                    print('结束!')
                    exec_for_return = False
                else:
                    pass
        elif choisenow2 == 'q':
            print('结束!')
            exec_for_return = False
        else:
            pass
    elif choisenow == 'q':
        print('结束!')
        exec_for_return = False
    else:
        pass
三级菜单

 

十、集合


#-*- coding:utf-8 -*-
__author__ = 'andylin'
__date__ = '2017/7/8 20:18'

a = set([1,2,3,4,5])
print(a)
b = set([3,4,5,6,7,8])
print(b)

print(a.union(b)) #表示并集
print(a|b)     #表示并集

print("##########a & b ########")
print(a.intersection(b))#表示交集
print(a & b)   #表示交集

print("############a^b################")
print(a.symmetric_difference(b)) #去除相同的
print(a ^ b)  #去除相同的

print(a.difference(b))    #表示剔除b中的所有
print(a-b)    #求差集(项在a中,但不在b中)

#添加
a.add(9)
print(a)
a.update([22,33])      #可以看到其参数是 *other 形式,表示为list
print(a)

#删除
a.remove(9)
print(a)

#表示长度
print(len(a))

print(1 in a )  #表示 1是否为a的元素

print(a.issuperset([1,2,3]))   # a >=[1,2,3] 表示为list形式





print(a.copy())   #浅复制

print(a.clear()) #表示清除所有

 

 

 十、函数

    

def abc():
    print("AAAA")

abc()   #简单调用

def a(ab):
    print(ab)
a('dd')  #参数调用

def b(*ab):
    print(type(ab))
    for i in ab:
        print(i)
a=[1,2,3,4,5,6]
b(*a)   #说明这个是tuple类型,但前面必须要带个*


def d(a,b='1'):
    print(a,b)

d('a','c')  #就是默认参数的要写在后面


def d(a,b='1',**dict):
    print(a,b)
    for i in dict:
        print(i,dict[i])

d('a','c',ab='ccc')   #字典形式

import sys
def abcd(a):
    print(a)
    if a == 8:
        sys.exit()
    return abcd(a*2)
 
abcd(2)   #递归
函数

 

递归特性:

    1、必须有一个明确的结束条件

    2、每次进入更深一层递归时,问题规模相比上次递归都应有所减少

   3、递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回

       栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)

 

 

    

转载于:https://www.cnblogs.com/andylinpy/p/7096240.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值