【编程】Python实战手记-2

欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】


模块结构

模块化开发简单说就是不要把所有代码都放在一个文件里😁...所以就是怎么拆分代码的问题。

  • ./main.py。文件放在根目录,只用它调起其他文件代码。它应该尽可能简单,几行代码最好。
  • ./myModules。文件夹可以放置你自己编写的模块,当然也可以叫myUtilities或者myUtil或者什么别的。
  • ./myModules/__init__.py。这个空文件你值得拥有,否则myModules文件夹下的代码文件就不能被调用。
  • ./myModules/myClass.py。假如编写了myClass模块,代码包含class myCls:...
  • main.py中引入from myModules.myClass import myCls,然后myCls()就可以生成一个对象实例。
  • ./myModules/myFunc.py。假如里面只包含def myAdd(a,b):...,那么main.py中同样可以from myModules.myClass import myAdd然后myAdd(3,2)使用。
  • ./myModules/myData.py。假如里面只包含myKey=666,那么main.py中同样可以from myModules.myData import myKey然后print(myKey)就得到666。

面向对象、类Class

面向对象编程就是面向Class编程😁,新文件上来就先是一行class xxx:

Python的class mycls:后面要先跟一行__init__(self):初始化方法:

这样在main里面b=a()实例化之后就可以使用b.height就可以得到1000。同样可以直接使用b.add(100,200)得到300。

初始化函数写全的话是def __init__(self, *args, **kwargs):,args就是直接用数值的参数,例如mycls(1,2)的话args就是(1,2)。kwargs则是键值对参数,例如mycls(wid=100,hei=200)的话,kwargs就是{'wid': 100, 'hei': 200},就有kwargs["wid"]是100,kwargs["hei"]是200。

如果两种参数混用会怎么样?各司其职。比如mycls(1,2,3,a=9,b=10)的话上面代码就输出(1, 2, 3){'a': 9, 'b': 10}

到底哪种参数格式好?建议使用键值对格式,虽然繁琐但含义很清楚,user(name="tom",age=13)明显比user("tom",13)容易理解。
键值对参数没有顺序限制,user(age=13,name="tom")也是对的,但user(13,"tom")就是错的。

类中的super()

如果mycls是从yourcls扩展出来的,该怎么办?

这里yourcls有height属性,mycls没有。但是class mycls(yourcls):就表示我是从你扩展来的,你有的我都有。所以在main里面就可以mycls().height了,否则就会因为没有height而报错。

Pandas搜索和修改值

读取df=pd.read_csv("./src/a.csv"),得到二维表格Dataframe格式。
存储df.to_csv("./src/a.csv",index=False),这样不保存索引列,可以避免建立索引之后重复。

搜索数据中用户名"name"等于"tom"的一行,怎么操作?

搜索df_rows=df.loc[df['name'] == "tom"],得到dataframe格式。len(df_rows)>0检测非空,df_rows.iloc[0]获取第一行结果,df_rows["age"]获取所有"tom"的年龄如13,20,44
如果要找到所有叫tom或jerry的人则用df_rows=df.loc[df['name'].isin(["tom","jerry"])]

索引df.set_index("name",drop=True)。建立索引之后就可以使用df.loc["tom"]直接找到tom一行数据了。如果不drop的话那么就会有两列"name",有一列是复制出来做索引的,保存csv时候要index=False去除重复。

修改df.iloc[0,df.columns.get_loc(key)]=val,不能直接使用等号修改,比如df.iloc[3]["age"]=13是不行的,必须df_rows.iloc[0,df.columns.get_loc('age')]=13才行。如果建立过name索引的话,可以使用df.loc["tom","age"]=13修改。

<未完待续>


欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】


每个人的智能新时代

如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,欢迎转载~


END

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,108评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,699评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,812评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,236评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,583评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,739评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,957评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,704评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,447评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,643评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,133评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,486评论 3 256
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,151评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,889评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,782评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,681评论 2 272

推荐阅读更多精彩内容