新手自学:pytion基础(第二周笔记)

一,模块初识

.标准库,不需要安装使用pytion最基础的内容

 .第三方库 必须下载安装

.自己写模块或者文件名字不能和需要导入的库名相同
import sys  #sys 模块 
sys.path   
print(sys.path) #打印环境变量 提示sys.xxx
print(sys.argv) #打印绝对路径 :相对路径
print(sys.argv[2])
import os #用于和操作系统进行交互模块的os模块
os.system("dir") #dir查看当前路径
cmd_res=os.system("dir")#执行命令不保结果
cmd_res=os.popen("dir").read #read 把结果存到内存里的一个临时的地方
print("-->",cmd_res)
os.mkdir("new_dir") mkdir 创建目录用的

模块调用 自己写一个输入用户密码的py 然后在新的py里inport 这个模块即可使用

二,数据类型

数字
int(整形)
long(长整形)
.整数
.浮点数
float(浮点数)2.32和52.3e-4
complex(复数)(-5+4j)(2.3-4.6j)

布尔值
.真或假.1或0
.真Tune 假false
.字符串
."hello world"

.数据运算
计算机中表示的最小单位,是一个二进制位
计算机中存储的最小单位,是一个二进制位

8bit= byte(字节)
1024byte= 1kbyte
1024kbyte=1mbyte
1024mbyte=1gbyte
1024gbyte=1tbyte
三元运算
result=值1 if条件 else值2
如果条件为真:result=值1
如果条件为假:result=值2
a.b.c=1.3.5
d=a if a>b else c
d=5
d=a if a<b else c
d=1
.二进制,01
.八进制,01234567
.十进制,0123456789
.十六进制0123456789ABCDEF
H代表十六进制 如bh=11
0x也是
encode
decode 二进制转字符块
msg=("我爱爱北京天安门")
print(msg.encode(encoding="utf-8")) #转二进制
print(msg.encode(encoding="utf-8").decode(encoding="utf-8")) #转回
把一个字符块用encode转成二进制byte 再将用decode转回字符块.

三,列表 元祖的使用

列表,元组操作
names=["Alex","enle","good","hello","yello","school"] #列表
names2=("sui lin", "lin xin","zhi qiang")#元组 =只读列表 不具有修改,增加,删除等特性
#print(names[0])#Alex
#print(names[3])#hello
#print(names[1:3])#[‘enle‘, ‘doog‘]切片<取两个数中间的值>
#print(names[-2])#yellow 
#print(names[-3:-1])#[‘hello‘, ‘yello‘]切片
#print(names[:3])#[‘Alex‘, ‘enle‘, ‘good‘]前边或者后边不写即取最后<前>一个值
#names.reverse() #<将列表反着打印>
#names.sort() #按ASCll码排序
#names.append("glood")#增加用户在最后
#names.insert(1,"glood")#再指定位置增加用户,原来用户往后移动一位
#names[2]="king" #替换用户
#names.remove("good")#删除一个用户
#del names [2] #删除用户第二种方法
#names.pop(2)#pop删除最后一个输入位置则执行位置
#print(names.index("good")) 查到用户的位置
#print(names[names.index("good")])#查找并打印用户的账户
#print(names.count("good"))#统计用户姓名数量
#names.clear()#清空用户数据
#del names2[:]#删除names2的用户数
#names.extend(names2)#增加一个分组
print(names)

names.copy() 相当于复制一个列表
复制一份names2 等于name
把names里边的用户改一个成中文
names列表里再包含一个列表
只浅copy第一层 不copy修改的地方

调用copy模块 使name2=copy.copy(names)
使name2=copy.deepcopy(names) #深copy
print(names[0:-1:2])#跳着打印
print(names[::2]) #跳着打印

做列表的for循环
for i in names:
print(i)
代码

names=["Alex","enle","good",["tich","alppe"],"hello","yello","school"]
names2=["sui lin", "lin xin","zhi qiang"]
names3 = copy.deepcopy(names)#深copy
names4= copy.copy(names)#浅copy的三种实现方式
names5= names[:] #切片实现浅copy
naes6= list(names)

#print(names[0:-1:2])
#print(names[::2])
names[2]="非常好"
names [3][1] = "flac"
print(names3)
print(names)
print(names3)

for i in names:
print(i)

四,购物车程序代码

#print(products_list.index(item),item)# index 索引 item 逐条列出
#break

#enumerate ()#把列表的下标排序直接找出来

#print(salary)

五, 字符串的常用操作

print(name.capitalize())#首字母大写
print(name.count("e")) #统计字母数量
print(name.center(50,"-")) #标题50个-号
print(name.encode())#把字符串转成二进制
print(name.endswith("le"))#判断尾数是否以""结尾
print(name.expandtabs(tabsize=50)) #把\t转为空格
print(name[name.find("l"):])# 位置及切片
print(name.format(name="enle",age="22"))#改变{}里的变量
‘‘‘
print(name.isdigit()) #判断name是否为数字
print(‘asdf123‘.isalnum())#判断这是不是一个阿拉伯数字
print(‘abA‘.isalpha())#纯英文字符
print(‘1‘.isdecimal())#忘记他
print(‘1‘.isdigit())#判断是否为一个整数
print(‘a1A‘.isidentifier())#判断是不是一个合法的标识符
print(‘a1a‘.islower())#‘判断是不是小写‘
print(‘33‘.isnumeric())#忘记他
print(‘ ‘.isspace())#判断是不是空格
print(‘My Name Is‘.istitle()) #判断是不是大写开头
print(‘My Name Is‘.istitle())#tty file drive file
print(‘M‘.isupper())#判断是否全是大写
print(‘+‘.join([‘1‘,‘2‘,‘3‘,‘4‘])) #转成字符串
print(name.ljust(50,‘*‘))#表示长50 不够用*号补上
print(name.rjust(50,‘*‘))#表示长50 不够用*号补上
print(‘Enle‘.lower())#把大写变成小写
print(‘Enle‘.upper())#把小写变成大写
print(‘\nEnle‘.lstrip())#去除左边\n换行空格
print(‘Enle\n‘.rstrip())#去除右边\n换行空格
print(‘\nEnle\n‘.strip())#去除左右边\n换行空格
p= str.maketrans("abcdefli",‘123$%456‘)
print("alex li".translate(p)) # 古代的文本加密模式
print("alex li".replace(‘l‘,‘L‘,1))
print("alex lie".rfind(‘e‘))#找到最后面值的下标
print("alex li".split(‘l‘))#按照空格来分成列表或者符号
print("1+2\n+3+4".splitlines())#自动识别不同系统换行
print("alEx li".swapcase()) #大小写互相转换
print("alex li ee".title())#把首字母换成
print("alex li".zfill(50))#不够的用0填充

六,字典的使用

#字典没有下标只有key

info = {
‘stu1101‘: "TengLan Wu",
‘stu1102‘: "LongZe Luola",
‘stu1103‘: "XiaoZe Maliya",
} #字典
for i in info:
print(i,info[i]) #最简单的循环打印出字典所有东西 只有i只答应key值
for k,v in info.items():
print(k,v)
#区别是上面这种比下面哪种高效很多,第一种直接通过key取出数据

‘‘‘
b={
‘stu1101‘:"alex",
1:3,
2:5,
}第二个字典

info.update(b)#有就修改没有及添加合并字典

#print(info)
c=dict.fromkeys([6,7,8],[1,{"name":"alex"},555])#初始化一个新的字典 为key附一个临时的值
print(c)
c[7][1][‘name‘] = "jace chen"
print(c)
#print(info.items()) #把字典转为列表

print(info)
print(info.get("stu1102")) #安全找出stu1102的值
print(‘stu1104‘ in info)# 判断是否有stu1104这个值.ifo.has_key pytion3里没有了

#print(info["stu1103"])
info["stu1101"]="武藤兰"#修改
info["stu1104"]=" cangjingkong"#添加
#info["stu1102"]="武藤兰"#修改
#del info["stu1104"]#删除第一种方法
#info.pop("stu1101")#删除第二种
#info.popitem()#随机删除

av_catalog.setdefault("大陆",{"网址":[1,2]})
print(av_catalog)

#av_catalog.setdefault() 如果能找到字典里的值就用字典里的找不到就添加

#print(info)

七,三级菜单程序

以下为代码

实现每一级都能退出 每一级都能返回上级菜单

八,作业

购物车的优化
用户入口
1.商品信息存在文件里
2.已购商品,余额记录.
商家入口

2.可以添加商品,修改商品价格

时间: 2024-10-10 01:32:04

新手自学:pytion基础(第二周笔记)的相关文章

HarvardX: PH525.4x Introduction to Bioconductor第二周笔记

PH525.4x第二周内容围绕GRange类的操作和使用Annotation进行数据关联两个主题展开,并展示了几个比较“炫”的功能.由于内容繁多,信息量大,故笔记之以便日后参考.该课程的演示数据为ChIP-seq的实验数据,背景为人类肝细胞(cell line:HepG2和GM12878)中被ESRRA (estrogen related receptor alpha)绑定的基因片段.在展示数据操作之前,首先检查bioconductor的版本号,不同版本的输出可能存在差异. library(Bi

计算机基础第二周作业 作业整理函数知识点:(大部分笔记都在电脑的印象笔记里面) 这次总结的粗了一点

一. 字符编码 核心:以什么编码写的存入硬盘,就以什么编码取出 1.1  内存使用的是unicode编码,全是两个字节提高传输速度..一般都是使用utf-8的万国编码,优点是节省空间.缺点是运行速度相对较慢 1.2  数据最先产生在内存中的 是unicode格式,想要传输就要转化成二进制的bytes格式 1 #unicode----->encode(utf-8)------>bytes 2 拿到bytes,就可以往文件内存放或者基于网络传输 3 #bytes------>decode(g

perl正则表达式第二周笔记

1.使用正则表达式修改文本 1.使用正则表达式修改文本 正则表达式的功能不只有查询,还可以对文本进行修改,例如替换 $var=~m/regex/i $var=~s/regex/replacement/i Replacement两侧的斜杠相当于双引号,也就是说replacement中可以有$1,$2这样的变量来代表前面匹配到的内容 用$var=~s/regex/replacement/可以改变$var中的文本,如果没有匹配成功,就不会有文本的替换 $var=Jeff frield;$var=~s/

《机电传动控制》第二周笔记

知识要点: 1.3 时间域描述 1.3.1 微分方程 对于各有一个输入端和输出端的线性传递环节来说,如果是一个时间和数值连续的输入量u(t),那么,输出量v(t)就有下列一般形式的微分方程 在大多数情况下很难采用微分方程进行计算.在实际中,利用这些微分方程来从物理定律中推导出传递环节的特性. 静态传递特性以及动态传递特性解析法描述的基础是与下图相一致的不可调传动系统的等效电路图. 在不可调传动系统情况下,在系统稳定状态下,一个接入的负载转矩会产生一个角速度的固定偏差.为找出起始特性,研究t=0这

第二周笔记

1. 访问网络 加载数据 并显示在标签上 NSString *path = @"http://c.3g.163.com/nc/article/list/  T1348649079062/0-20.html"; // 构建网址 NSURL *url=[NSURL URLWithString:path]; NSData *data=[[NSData alloc]initWithContentsOfURL:url]; // 访问 并得到结果 NSDictionary *dic=[NSJSON

C++面向对象高级编程(下) 第二周笔记 GeekBand

1.vptr和vtbl 当存在虚函数就会出现虚指针vptr指向虚函数所在位置vtbl 将vptr实现vtbl内容翻译为C: (*p->vptr)n; (* p->vptr[n])(p); 动态绑定: 虚机制 1.指针 2.向上转型保证安全 3.调用的是虚函数 2.this指针 [Template Method] This->Serialize()实现: (*(this->vptr)[n])(this) -动态绑定 3.动态绑定 向上转型 : 指针实现 如 B继承A B b; A a

机电传动控制第二周笔记

一.控制系统设计指南 1.控制系统可以分为控制器和被控机器,具体结构和关系如下图所示. 2.拉普拉斯变换在控制理论中被普遍使用,可以实现时间域和频率域之间的转换,其定义为: 3.传递函数.频率域传递函数把两个信号之间的关系描述为一个关于s的函数. 4.拉普拉斯算子,是一个复变量,定义为: 5.线性化与时不变性.均一性:对于均一性元件,输入正比例变化,输出会以同比例变化. 叠加性:输入的线性叠加,会导致同样线性叠加的输出. 时不变性:将输入延迟或提前时间t,则输出同样延迟或提前时间t.但是实际系统

C++面向对象高级编程(上) 第二周笔记 GeekBand

static: (1)static成员数据:例如像银行IT系统中的利率,并不是每个用户拥有一份,而是所有账户都有统一的利率,可以加static,表明所有账户共有相同利率. static成员数据要在class外定义. 例:class Account{ public: static double m_rate; static void set_rate(const double& x){m_rate=x;} } double Account::m_rate=8.0; (2)static成员函数:没有

读书笔记第二周《程序员的自我修养》

读书笔记第二周<程序的自我修养> ??刚看到书名的时候以为这是一本讲述程序员为人处世,享受生活的文章,当我抱着当小说看消遣的心情从群里下载下来的时候,却发现这实际上是一本干货满满的书.当我看到副标题--链接,装载与库, 我意识到这会是一本让我受益匪浅的书,因为我没有选修过操作系统,编译原理相关的课程,对于代码 是如何在电脑上跑起来的是毫无概念的,每次配置环境变量,配置链接库,都是一头雾水.而且我认为要成为一个优秀的程序员 ,仅仅满足于代码能运行是远远不够的,只有对背后的运行机制有所了解,才能写