Python学习笔记[第二周]

sys模块:导入模块默认从当前文件夹中寻找,如找不到则到环境变量中找
sys.path 环境变量
sys.argv 脚本路径(相对路径)
OS模块
os.system(“dir”) 只执行命令,不保存结果
os.popen(“dir”).read() 执行命令并保存结果
数据类型
Python3中无长整型(long),其他数据类型与java类似,注意不同操作系统下的int类型所占位数不同
布尔值
真(1)假(0)
三元运算
result = value1 if (True) else value2
eg:
a,b,c = 1,2,3
d = a if a > b else c
d = 3
字符类型转换
String –>bytes (encode)
bytes –>String(decode)
Python3中.encode(“–”)默认参数为”utf-8”
列表、元组操作
print(List[1:3]) 不包括索引为3的数据,共3-1=2条数据。#切片(顾前不顾后)
print(List[-1]) 输出最后一条数据(表示从后往前数)
print(List[-2: ]) 第二个索引位置省略,表示取最后两个(负数索引取值时依然按照从左往右,顾前不顾后)
print(List[0:3])和print(List[ :3])效果一样
print(List[start:end:step]) 步长切片
List.append() 列表末尾追加数据
List.insert(index,parameter) 在索引位置添加数据(原位置数据顺序后移一位,列表长度+1)
List[index]=”parameter” 修改索引位置的数据
List.remove(“–”) 删除数据
del List[index] 删除该索引位置的数据
List.pop() 默认删除最后一条数据
List.pop(index) 删除该索引位置的数据
List.index(“parameter”) 返回parameter的索引
List.count(“parameter”) 计算parameter出现的次数
List.clear() 清空列表
List.reverse() 列表反转
List.sort() 列表排序(ASCII码)
List.extend(List1) 扩展列表(合并)
List.copy() 浅copy,只copy列表的第一层,二层以下的列表copy的是内存地址,并非实际的列表。
copy模块
import copy
List1 = copy.copy(List) 浅copy 可用于创建共享账号
List1 = copy.deepcopy(List) 深copy,完全独立的一份内存空间,copy所有层
列表循环
for i in List:
print(i)
元组又叫只读列表,只有.index(),.count()方法
for index,item in enumerate(List):
print(index,item)
可将索引与数据项一同打印
高亮输出
print(“\033[31;1m%s\033[0m” %(parameter))
31红色字体 32绿色字体
41红色背景 42绿色背景

字符串操作
str.capitalize() 字符串首字母大写
str.count(‘parameter’) 统计字符串中parameter的个数
str.center(50,’-‘) 字符串长度为50,str居中,两侧’-‘补齐
str.endwith(‘?’) 判断字符串是否以’?’为结尾 True/False
str = ‘my \t name is…’
str.expandtabs(tabsize=30) 将str中的\t更改为长度为30的空字符
str.find(‘parameter’) 查找parameter的索引位置
str[str.find(‘parameter’):index] 字符串切片,与列表用法相同
str.format() 格式化输出,与{ }和形参搭配使用
str.format_map() 传字典型参数{‘name’:’leo’,’age’:23}
str.isalnum() 判断字符串是否只由字母和数字组成 True/False
str.alpha() 判断字符串是否为纯英文字符 True/False
str.isdecimal() 判断字符串是否只包含十进制字符 True/False
str.isidentifier() 判断字符串是不是合法的标识符(是否可作变量名)
str.islower() 判断字符串是否为小写 str.isupper() 大写
str.isnumeric()和str.isdigit()
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无
isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)
str.isspace() 判断是否为空格 True/False
str.istitle() 判断是否为标题(每个单词首字母大写) True/False
str.isprintable() 判断是否可打印 #Linux下tty file,drive file不可打印
join()用法:
”.join([‘1’,’2’,’3’]) 字符列表转成字符串“123”
‘,’.join([‘1’,’2’,’3’]) 字符列表转成字符串“1,2,3”
‘+’.join([‘1’,’2’,’3’]) 字符列表转成字符串“1+2+3”
str.ljust(50,’-‘) 字符串长度为50,不足50用‘-’补在后面
str.rjust(50,’-‘) 字符串长度为50,不足50用‘-’补在前面
str.lower() 大写转小写
str.upper() 小写转大写
‘\nleo’.lstrip() 去掉左侧的空格或换行 .rstrip()右侧的 .strip()全去掉
maketrans()用法:加密,随机密码
p = str.maketrans(‘abcdef’,’123456’)
print(‘leo’.translate(p))
->l5o
将字符串中的’abcdef’对应的替换为’123456’
str.replace(‘l’,’L’) ‘l’替换为’L’
str.replace(‘l’,’L’,1) count = 1,只替换1个
str.rfind(‘?’) 查找字符串中最右侧的’?’,并返回其索引
str.split() 将字符串以空格为分隔符转换成列表
str.split(‘l’) 将字符串以’l’为分隔符转换成列表
str.splitlines() 将字符串以’\n’为分隔符转换成列表
str.swapcase() 将字符串大写转小写,小写转大写
str.zfill(50) 字符串长度为50,不够用0补在前面
字典操作:字典是无序的,输出是乱序
info = {‘key1’:’value1’,’key2’:’value2’,’key3’:’value3’,’key4’:’value4’}
info[‘key’] 取值
info[‘key’] = ‘value’替换值(key不存在时则为添加值)
del info[‘key’] 删除值
info.pop(‘key’) 删除值
info.popitem() 随机删除
info.items() 字典转列表
info.get(‘key’) 取值,如果存在,返回值,否则,返回None
‘key’ in info 判断’key’是否在info中 True/False
info.update(info1) 将info1更新到info中,同一key值以info1中为标准修改,不存在于info中的key则添加进去(合并)
字典循环
①for i in info:
print(i,info[i])
②for k,v in info.items():
print(k,v)
循环①更高效,不需要将字典转换成列表再进行操作
多级字典嵌套及操作
d=dict.fromkeys([1,2,3],’test’) 创建单层初始化字典
print(d)
->{1: ‘test’, 2: ‘test’, 3: ‘test’}

# -*- coding: utf-8 -*-
"""
Created on Thu Dec 14 20:00:54 2017

@author: Administrator
"""
#三级菜单代码示例
data  = {
        'A学院':{
                 'A1专业':{
                         '1班':['leo','lily','bob'],
                         '2班':['leo','lily','bob'],
                         '3班':['leo','lily','bob']
                         },
                 'A2专业':{
                         '1班':['leo','lily','bob'],
                         '2班':['leo','lily','bob'],
                         '3班':['leo','lily','bob']
                         },
                 'A3专业':{
                         '1班':['leo','lily','bob'],
                         '2班':['leo','lily','bob'],
                         '3班':['leo','lily','bob']
                         }
                },
        'B学院':{
                'B1专业':{
                         '1班':['leo','lily','bob'],
                         '2班':['leo','lily','bob'],
                         '3班':['leo','lily','bob']
                         },
                'B2专业':{
                         '1班':['leo','lily','bob'],
                         '2班':['leo','lily','bob'],
                         '3班':['leo','lily','bob']
                         },
                'B3专业':{
                         '1班':['leo','lily','bob'],
                         '2班':['leo','lily','bob'],
                         '3班':['leo','lily','bob']
                         }
                },
        'c学院':{
                'C1专业':{
                         '1班':['leo','lily','bob'],
                         '2班':['leo','lily','bob'],
                         '3班':['leo','lily','bob']
                         },
                'C2专业':{
                         '1班':['leo','lily','bob'],
                         '2班':['leo','lily','bob'],
                         '3班':['leo','lily','bob']
                         },
                'C3专业':{
                         '1班':['leo','lily','bob'],
                         '2班':['leo','lily','bob'],
                         '3班':['leo','lily','bob']
                         }
                }       
        }
for i in data:
    print(i)  
flag = True              
while flag:
    choice1 = input("学院>>>")
    if choice1 in data:        
        while flag:
            for i in data[choice1]:
                print(i)
            choice2 = input('专业>>>')            
            while flag:
                if choice2 in data[choice1]:
                        for i in data[choice1][choice2]:
                            print(i)
                        choice3 = input('班级>>>')
                        if choice3 in data[choice1][choice2]:
                            for i in data[choice1][choice2][choice3]:
                                print(i)                        
                            choice4 = input('最后一层,输入b可返回上一层,输入q退出>>>')
                            if choice4 == 'b':
                                pass
                            if choice4 == 'q':
                                flag = False
                        elif choice3 == 'b':
                            break
                        elif choice3 == 'q':
                            flag = False                    
                        else:
                            print("班级不存在,请重新输入>>>")
                elif choice2 == 'b':
                    break
                elif choice2 == 'q':
                    flag = False               
                else:
                    print("专业不存在,请重新输入>>>")
    elif choice1 == 'b':
        break
    elif choice1 == 'q':
        flag = False               
    else:
        print("学院不存在,请重新输入>>>")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值