python学习
填充对齐
'{0:*>10}'.format(10) #右对齐
'{0:*<10}'.format(10) #左对齐
'{0:*^10}'.format(10) #居中对齐
符号 \ 续航符,\\ 反斜杠符号 ,\' 单引号 ,\'' 双引号 ,\n 换行
字符串格式化
'my name is {name},age is {age}'.format(name='luo',age=25)
则输出:'my name is luo,age is 25'
计算元组的个数 len
键值key是否存在于字典
has_key() 如:字典名.has_key('键')
in 如:‘键' in 字典名 有则返回true 无则返回false
修改字典元素
字典名['键'] = 值
删除元素
del 或者clear()
del 字典名["键"] clear删除字典中所有键值对
添加元素
字典名['键'] = 值
update()
字典2更新字典1 如两字典中有相同的键值对则覆盖掉
访问元素
1.字典名[键] 这方式访问的话键如果不存在会报错
2.get 字典名.get('"键") 这方式访问的话键如果不存在不会报错
3.setdefault()
字典名.setdefault("键", "键值") 这种方式访问如果键不存在则添加
分支
if语句
1.if..else..语句
2.if..elif..语句
循环
1.while循环
初始化循环计数器 i i = 1 循环一次后 i += 1 计算平均值avg 计算和sum
2.for循环
for 变量 in 列表生成器:
语句
如:迭代字典
d = { 'x': 1, 'y': 2, 'z': 3 }
for key in d:
print "key -> {} value -> {}".format(key, d[key])
#或者
for key, value in d.items():
print "key -> {} value -> {}".format(key, value)
循环中如果遇到条件不符合的我们控制某些循环
如:if score < 0 or score > 100
使用continue跳过当前一轮循环进入下一次循环,break终止当前循环
并行迭代 for循环同时迭代两个序列 行如:for i in range(len(name))
zip函数也可以 行如:for ji_value, yi_value in zip(ji_value, yi_value)
同时循环列表的索引和值 enumerate
函数
1.无参函数
2.有参函数
* 收集其余的位置参数,返回的是元组 ** 收集其余的关键字参数 返回的是字典
获取用户输入选项choice = raw_input(prompt).strip()[0].lower()
print "你选的选项是:[{}]".format(choice)
字符串类型转化为整数型:
def convert(op):
if op.isdigit():
return int(op)
return None
判断整数:if op1 == None:
变量作用域
global 全局变量
同一个程序中,全局变量和局部变量同名时,局部变量具有更高的优先级(就近原则)
函数加注释:一 加#号,二 直接写下字符串 称为文档字符串
打开文件
open()
file_object = open(file_name[, access_mode[, buffering]])
file_name 相对路径
access_mode r :读取,w:写入,a:追加, b:二进制文件 r+:读写, w+:读写, a+读写
buffering 参数为0/false,读写操作针对硬盘;为1/true 针对内存,参数大于1 代表缓冲区大小,字节为单位;小于0或没有参数,代表使用默认的缓冲区大小
想文件写入数据
file.write(str) file.writelines(seq) 写入字符串
python学习,使用version是3.0
os.system()模块只是即时执行命令,然后显示输出结果。不能通过赋值操作给某个变量再进行打印操作
os.popen()模块,执行后,是将数据放到内存中,所以,如果将结果进行赋值操作,显示的只是一个内存地址。
os.popen()执行后得到一个内存地址,想要将内存地址的结果输出就必须调用.read()方法。os,popen().read()
os.mkdir()在当前目录下创建目录
使用import一个模块名字的时候,它首先会去被执行文件的当前目录下找,如果找到同样名字.py结尾的文件则自动导进,如果没有找到它就去python全局变量里找,类似于shell脚本的include。
如你把自定义的模块移走,那么import找不到则报错。但你把模块移到/usr/local/(也就是你的python安装路径下)python3/lib/python3/site-packages/路径下,该模块又能找得到了。
python的系统内置模块库放置/usr/local/(你的python安装目录下)/python3/lib/python3/路径下,第三方则自己下载或者写在默认的/usr/local/python/lib/python3/site-packages/路径下
#python的环境变量
import sys
sys.path
['', '/usr/local/python3/lib/python30.zip', '/usr/local/python3/lib/python3.0', '/usr/local/python3/lib/python3.0/plat-linux2', '/usr/local/python3/lib/python3.0/lib-dynload', '/usr/local/python3/lib/python3.0/site-packages']
python是一门先编译后解释的语言
pyc文件是pyCodeObject的一种持久化保存方式
python2.2起,如整数溢出,自动将整数转换成长整数。python3取消了长整型(long)
字符串死%s
整数%d
浮点数%f
循环
while True
for ,,in,else
if ,,,else
if ,,,elif,,,else
各种表的写法
列表名 = [元素,,,,,,]
元组名 = (元素1,,,,,,,)
字典名 = {键1:值1,,,,,,}
追加
表名.append("被追加的元素")
插入
表名.insert(键,插入的键值)
修改
表名[键] = "新修改的元素"
删除
del 表名[键]
删除元素
表名.remove["键值"]
python3.0里不同的数据类型不能放在一起排序
表名.sort()排序
表名.reverse()翻转
统计列表中某个元素的拥有个数
列表名.count("元素")
拷贝
表名.copy()
两组列表并合
表名.extend(被合并表名)
获取下标(index)
表名.index("需要找的元素")
如有多个元素则返回找到的第一个
获取元素个数
len(表名)
元组里的元素不能修改,又叫只读列表
元组只有两个方法 一:count 二:index
python_version2.7
import 模块名
import 模块名 as 模块新名称
from 模块名import 方法名 as新方法
import sys
sys.path.append("自定义的路径")
python_version3
在python版本为3中字符串和二进制可以相互转换
如:"str".encode() #字符串转换二进制
"str".encode().decode() #二进制转换字符串
版本3中若要进行数据传输,须先将字符串转换成二进制才能进行传输;对方接收后再转换成字符串版本2.7中没有要求
python_version3
字典
dict无序
Dict是字典名
增加
Dict["key"] = "value" 原字典没有则增加 无序
修改
Dict["key"] = "value" 原字典里存在则修改
删除
Dict.pop("key") 删除指定的key 返回对应的value
del 字典名["key"] 删除key 无返回值
删除整个字典
del 字典名
随机删除 返回的key对应的value
Dict.popiten()
查找
字典名.get("key") #key存不存在都不会报错
Dick["key"] #当key不存在则报错
提取字典里所有的keys
字典名.keys()
判断字符串是否在字典中
"key" in 字典名
"key" in 字典名.keys()
提取字典里所有values
字典名.values()
判断字符串是否存字典中
"values" in 字典名
"values" in 字典名.values()
字典合并
字典名1.update(字典名2)
没有的键值对则增加有的则覆盖
python_version3
按行读取和一次性读取
readline,read
打开模式
文件的读模式(r)
python2中整除 print 3/2得1.5和python3中做整除 需要使用两个前斜杠(//)print 3//2得1
python 中**表示指数或者将一个数自乘为幂
+=(自增)-=(自减)
E记法表示乘以10的几次幂
int()函数总是下取整
函数type() 判断变量类型
python3中,raw_input()改名为input(),它与python2中的raw_input()完全一样
如果希望用户在消息的同一行上键入他的答案,只需要在print语句的末尾放上一个逗号,可以将多个print语句合并到同一行上;使用逗号将多个print语句合并到同一行时,python会增加一个空格。
多个按钮对话框
使用easygui模块,按钮框(button box,buttonbox)。显示选择列表(choice box,choicebox)
文本输入
(enter box,enterbox)可以放入默认值defaule,整数框(integer box,integerbox)
输入数字 easygui提供了整数框(integer box,integerbox)
等号(=)用来设置变量或赋值,相等(==),小于(<),大于(>),不等于(!=)/<>,大于或等于(>=),小于或等于(<=)。python3中不支持<>形式的不等于只能用!=
两个大于和小于操作符串在一起完成一个测试范围
and结合多个条件,两个条件都必须为真才能执行
or结合多个条件,但是只需任意一个条件为真,即可。
not把比较倒过来,表示相反的逻辑
计数循环 条件循环
range()函数 需输入起始值和结束值
循环变量名
按步长计数
跳出循环break和continue continue直接跳到循环的下一次迭代 break完全中止循环
单行注释
行末注释
多行注释
嵌套循环
更多可变嵌套循环
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述