精华内容
下载资源
问答
  • 真就是由于不开学闲的,我又开始第二个项目,这个项目是用python爬取唐诗三百首而后诗意取名,特别fash,里面涉及到不少知识点,我以为看完这个,你至少会了python半边江山,好比网络爬虫,程序化设计,中文分词等等...

    真就是由于不开学闲的,我又开始第二个项目,这个项目是用python爬取唐诗三百首而后诗意取名,特别fash,里面涉及到不少知识点,我以为看完这个,你至少会了python半边江山,好比网络爬虫,程序化设计,中文分词等等----html

    许久不见的老同窗生了宝宝,取名张三??我很不解的问他缘由,告诉我说孩子是三点生的,纳尼,那个人孩子是否是得叫派森啊,由于我喜欢python,以后,我就开始了这个项目,目的是为了利用古诗生成一些好听的名字,等我之后取名的时候或许还有用咧,就避免满大街的张三李四张伟王大了,汗颜无比,开始咱们的项目吧。python

    7004933369967eef9fa6c9e596058f6c.png

    来,给咱们的儿子取一个名字吧!git

    项目预览:

    gif预览:

    fc4b3090d36f490d9dd5f4b6.html

    页面预览:

    a68ca252c213a06c0449a3e1d3ea1991.png

    项目技术:

    网络爬虫 : requests库 , xpath语法

    正则 : re库

    随机库 : random库

    中文分词 : jieba库

    GUI界面 :tkinter库

    图片处理 : PIL库

    程序打包: pyinstaller库

    项目思路:

    这个项目的思路大体以下:经过爬虫获取唐诗三百首的全部文本,而后通过中文分词,筛选出想要的,而后组成名字,最后写入GUi界面中,喜欢的也能够打包程序,在哪都能用到了。web

    本次项目也遇到一些bug,筛选词汇的特殊符号,以及筛选过程的误区,使用GUI界面定义按钮的假死状态,这些我都克服了,在下面的讲解中我会详细说说。windows

    项目流程:

    爬取唐诗获得文本:

    网页连接以下:

    http://www.shicimingju.com/shicimark/tangshisanbaishou_1_0__0.html

    http://www.shicimingju.com/shicimark/tangshisanbaishou_2_0__0.html

    http://www.shicimingju.com/shicimark/tangshisanbaishou_3_0__0.html网络

    那么从这个就能看到每一个网页的特性了,就是1,2,3,实现一个循环就能遍历全部的页面,下面看图文源代码:多线程

    首先咱们得肯定这个网页是静态的仍是动态的,我从源代码里面找到了网页的文本信息,全部我大体肯定是静态的网页,没用不少花哨东西。app

    a3293dbe881532ef7e6cdc1262b7e550.png

    文本内容都在我指的哪一个div标签里面,这个若是不会写xpath的,能够去xpath helper 插件,这个能帮助一下吧,我我的不是很习惯用这个,有利有弊,限制本身的思路。dom

    代码以下:svg

    Tang_poems = [] # 诗歌列表

    def get_text(page):

    url = 'http://www.shicimingju.com/shicimark/tangshisanbaishou_' + page + '_0__0.html' # 拼接网址

    r = requests.get(url)

    if r.status_code == 200:

    return r.text

    def get_page_poems(text):

    html = etree.HTML(text) # 造成xpath对象

    html = etree.tostring(html) # 修改类型 成 bytes类型

    html = etree.fromstring(html) # 修改编码

    # 诗歌

    poems = html.xpath(r'//*[@id="main_left"]/div[2]//div/div[@class="shici_list_main"]//text()')

    for i, j in enumerate(poems): # 处理诗句 去掉空格 和 提示信息

    poems[i] = j.replace('\n ', '')

    poems[i] = re.sub('展开全文|收起|\n ', '', poems[i])

    poems[i] = re.sub('《|》|\n ', '', poems[i])

    for i in poems:

    if len(i) < 2:

    continue

    else:

    Tang_poems.append(i)

    这里须要注意的,必定得先去掉明显的特殊符号,否则后面分词处理起来很麻烦,使用正则能很好的帮助咱们。

    取文本然后中文分词:

    这里使用到jieba库中的lcut, 分词好了就放入单个列表,好比我就放了三个列表,分别对应一个字的, 二个字的,三个字的。

    代码以下:

    def cut_page_poems():

    name = jieba.lcut(''.join(Tang_poems))

    one_name, two_name, three_name = [], [], [] # 构建名字长度列表

    excludes = {',', '。', ' ', '?', '(', ')', ';', '!', '?', '/ ', '/', ': ', ':', '·', '· '} # 去掉一些特殊符号 留下牛逼名字

    for i in name:

    if len(i) == 1 and i not in excludes:

    one_name.append(i)

    elif len(i) == 2 and i not in excludes:

    two_name.append(i)

    elif len(i) == 3 and i not in excludes:

    three_name.append(i)

    # 不考虑四个名字的,由于带上姓就很长了

    return one_name, two_name, three_name

    这里返回的one_name里面就是存放分词后的长度,其余类推

    书写GUI界面:

    这里咱们简单的使用了tkinter库,由于我以前也学过这个GUI库,我以为这个有点丑,可是最简单的函数库了,其余的大家也能够尝试,若是很赞,记得评论告诉我哈,我就转库了。

    代码以下:

    def root(): # 生成窗口控件

    my_windows = Tk() # 初始窗口

    my_windows.title('取唐诗三百首然后取名') # 标题

    width = 800

    height = 600

    # 获取屏幕尺寸以计算布局参数,让窗口位于屏幕中央

    screenwidth = my_windows.winfo_screenwidth()

    screenheight = my_windows.winfo_screenheight()

    align_str = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)

    my_windows.geometry(align_str) # 设置窗口大小

    my_windows.resizable(width=True, height=True)

    # 设置窗口是否可变长、宽,True:可变,False:不可变

    photo = PIL.Image.open('D://ps素材//鲸鱼.jpg')

    photo = photo.resize((1000, 600)) # 这里控制大小

    photo = PIL.ImageTk.PhotoImage(photo) # 使用其余库

    # 默认的PhotoImage 只能使用git格式 其余格式使用PIL

    p_label = Label(my_windows, text='北冥有鱼\n其名为鲲',

    fg='white', font=('华文行楷', 25),

    justify=LEFT, # 对其方式

    image=photo,

    compound=CENTER) # 字体显示位置

    p_label.pack()

    # 定义第一个输入框

    inp1 = Entry(my_windows)

    inp1.place(relx=0.4, rely=0.2)

    # 定义第二个输入框

    inp2 = Entry(my_windows)

    inp2.place(relx=0.4, rely=0.3)

    # 定义第一个提示框

    inp_label1 = Label(my_windows, text='输入姓氏:',

    font=('宋体', 12), fg='Tan')

    inp_label1.place(relx=0.3, rely=0.2)

    # 定义第二个提示框

    inp_label2 = Label(my_windows, text='名字长度:',

    font=('宋体', 12), fg='Tan')

    inp_label2.place(relx=0.3, rely=0.3)

    # 定义一个显示文本

    txt = Text(my_windows, bg='#d3fbfb')

    txt.place(rely=0.6, relwidth=1.0)

    # 定义一个肯定按钮 传入二个参数

    btn1 = Button(my_windows, text='肯定', fg='red',

    command=lambda: form_name(inp1.get(), inp2.get(), txt))

    btn1.place(relx=0.4, rely=0.4)

    # 定义一个关闭按钮

    btn2 = Button(my_windows, text='关闭', fg='red', command=my_windows.destroy)

    btn2.place(relx=0.5, rely=0.4)

    # 先定义提示信息

    helps = '------------They maybe can help you !---------------\n\n\n' \

    '当你输入单姓的时候 ----------> 名字长度为(2-4)\n\n\n' \

    '当你输入复姓的时候 ----------> 名字长度为(3-4)\n\n\n'

    txt.insert(END, helps)

    my_windows.mainloop()

    这里使用图片的时候必定得注意库,由于tk库里面也有Image类的使用,可是这个image类只能使用gif格式的图片,因此我想上jpg就得用PIL的image类,这样就起了库名冲突,因此我这样导入PIL :

    import PIL.Image

    import PIL.ImageTk

    这样就能避免了!这很棒!

    构造GUI中的按钮函数:

    在GUI里面中,我点击肯定以后就弹出了随机的名字,那么这个是经过Text控件实现的。我这里是传入的函数form_name()中,而后经过lambda传入了一些特定值,

    代码以下:

    def form_name(first_name, num_name, txt): # 取名

    # first_name = input('请输入后代的姓氏:')

    # num_name = int(input('请输入后代的名字数量:'))

    # 组成名字方式不少 姓名能够一个或者二个 全名最大支持五个字

    sub_num = int(num_name) - len(first_name) # 名字长度差值

    if len(first_name) == 1: # 若是姓氏为单姓

    if sub_num == 1:

    form_two(first_name, one, txt) # 取二个名字

    elif sub_num == 2:

    from_three(first_name, one, two, txt) # 取三个字名字

    elif sub_num == 3:

    form_four(first_name, one, two, three, txt) # 取四个字名字

    elif len(first_name) == 2: # 若是为复姓

    if sub_num == 1:

    forms_three(first_name, one, txt) # 三个名字

    elif sub_num == 2:

    forms_four(first_name, one, two, txt) # 四个名字

    取名:

    这里我使用了随机库random来实现个人功能,具体以下:

    这里就展现一个组成实例了,挺多的。

    def form_two(a, one, txt): # 单姓二字

    s = []

    for i in range(300): # 生成姓名列表

    s.append(a + random.choice(one) + ' ')

    txt.delete(1.0, END) # 清空文本框

    for i, j in enumerate(s): # 输出姓名

    if i % 16 == 0 or i == 0: # 条件限制

    txt.insert(END, '\n\n\n') # 追加换行

    else:

    txt.insert(END, j) # 追加名字

    打包程序:

    使用pyinstaller库实现:

    pyinstaller -F 取名.py

    项目总结:

    此次项目遇到很多的挫折,可是我都挺了过来,哈哈哈,不错哟!

    修复了特殊符号致使的分词阻碍

    抓文本的思路错误,刚开始想匹配标题和文本,结果发现这很难,诗歌有不少联,我实现不了。

    在GUI界面中修复了导入图片的函数库名冲突问题,以及修复了按钮超时,界面崩溃问题,缘由是我想加入延迟,而后一次一次的打印,达到一个效果,结果有点不容许,最后仍是直接生成文本列表,而后从中选取。

    我想用多线程实现界面崩溃的问题,可是我尝试了好久没有实现,若是有懂的人,但愿告诉我。

    项目后记:

    来自灵魂的问答,你有孩子吗,就想到起名的程序了。哎。。。。。以为喜欢的朋友给个关注和赞咯!

    展开全文
  • /usr/bin/python2.7 import importlib import os import sys from os.path import dirname, join sys.path.append(dirname(__file__)) sys.path.append(dirname(dirname(__file__))) sys.path.append(join(dirname...

    标准库importlib

    内置getattr

    内置dir

    这几个可以帮助你实现想要的需求,这也是项目当中lazyImport很常见的一种方式。

    题主可以自己先根据文档尝试怎么写,有空我再写具体怎么实现

    不太清楚你的具体需求是什么,我就说说整体思路和贴一些参考代码仅供参考,如有疑惑或者我说错的地方,欢迎讨论。

    首先第一步是利用importlib实例化包/模块,参数具体使用请参考文档

    经过importlib实例化以后生成了包/模块对象,此时如果调用该对象,是已经能够获取到对象的所包含的方法/类的(特殊情况除外,后面讨论)。

    此时我们可以通过内置dir获取该对象的所包含的所有属性名称列表

    获取到属性名称列表以后就可以利用内置getattr方法了

    遍历属性列表,通过getattr获取该对象的属性实例了

    至于如果判断是否为我们所需要的属性,这个就看你的需求了,如果是只需要该对象当中的函数属性,那么可以通过inspect.isfunction(attr)来判断是否为函数,如果只需要类,那么可以通过isinstance(attr, type)来判断该属性是否为类

    贴上我的项目中的__init__文件的部分代码,我是用的是python2,大体看python3也可以兼容

    # coding=utf8

    # !/usr/bin/python2.7

    import importlib

    import os

    import sys

    from os.path import dirname, join

    sys.path.append(dirname(__file__))

    sys.path.append(dirname(dirname(__file__)))

    sys.path.append(join(dirname(dirname(dirname(__file__))), 'Config'))

    for m in [f[:-3] for f in os.listdir(dirname(__file__)) if f.endswith('py') and f != '__init__.py']:

    module = importlib.import_module(m)

    clses = [getattr(module, x) for x in dir(module) if isinstance(getattr(module, x), type)]

    for cls in clses:

    setattr(sys.modules[__name__], cls.__name__, cls)

    另一个项目中用到的方式,在A工具包当中导入了Config工具包对象(A和Config同级),因为在这个项目中我有使用到一些相对导入(类似from . import toolkit),出现了无法获取到该模块对象属性的情况,需要在_init_文件中添加该模块的属性对象。

    例如我的Config模块下存在名为TreeManager管理模块,但是在此时我通过Config.TreeManager是无法调用的,只能在Config模块下的__init__文件当中添加一句from . import TreeManager,这应该与importlib导入层次有关,importlib只能导入两层结构(这里我也比较疑惑为什么必须在init文件当中添加,import也是个大话题,python有专门的PEP讲解)

    import importlib

    Config = importlib.import_module("Config", "../Config")

    展开全文
  • 1 #-*- coding: UTF-8 -*- 2 #coding==utf-8 3 #from selenium.webdriver.support.wait import WebDriverWait 4 from selenium import webdriver 5 from time import sleep ... 7 if __name__...

     

     1 #-*- coding: UTF-8 -*-
     2 #coding==utf-8
     3 #from selenium.webdriver.support.wait import WebDriverWait
     4 from selenium import webdriver
     5 from time import sleep
     6 
     7 if __name__=="__main__":
     8     driver = webdriver.Chrome()
     9     driver.get("http://www.dytt8.net/html/dongman/new/20150111/47110.html")
    10 
    11     links = driver.find_element_by_id("Zoom").find_elements_by_tag_name("a")
    12     print(links)
    13 
    14     for link in links:
    15         print(link.text)

     

    转载于:https://www.cnblogs.com/zhuzhubaoya/p/9236105.html

    展开全文
  • 真就是因为不开学闲的,我又开始第二个项目,这个项目是用python爬取唐诗三百首然后诗意取名,特别fash,里面涉及到很多知识点,我觉得看完这个,你至少会了python半边江山,比如网络爬虫,程序化设计,中文分词等等...
  • 取名字还正不是一件容易得事, 就像给函数或者类取一个恰如其分的名字一样。 听说恰当的函数名或类名还能反应整个项目的设计是否合理, 逻辑清晰, 语言的名字似乎并没有这样的意义。 我脑袋里闪过的第一个名字是...
    66b32485e57d1071ac9add3ec1d7425b.png

    导读

    我在之前的文章中说过多次,大学生在校期间应该去搞定那些基础知识,因为大学生没有工作的压力,有大块的时间,基础知识相对枯燥,要想有成就感,可以做一些简单的系统,例如一个简单的编程语言,一个有基本功能的OS......

    杨韬是我的知识星球“码农翻身”的一个大学生,他在星球提到做了一个简单的编程语言解释器,我建议他把过程给写出来, 就是这篇文章了。

    下文的“我”就是杨韬。


    为什么要自己写一个解释器?

    从大学开始学习编程, 现在已经快两年了, 接触了不少的编程语言。最开始入门学了C语言; 后来想写安卓软件, 学了Java; 接着接触后台开发,学了Python; 后面又陆续地接触Go, Dart, C++。 仔细算算, 已经接触过6门语言了!

    但是仔细想想我似乎又什么也没有学到,过年回家的时候, 遇到一个对计算机很感兴趣的四年级的小朋友(ps: 小朋友会写一点点python, html, 现在的小孩也太强了), 问了我诸如计算机上面的程序是怎么跑起来的, 代码是怎么运行这种看似很基础的问题, 可悲的是我居然对这些问题似懂非懂, 不能给小朋友很清楚地解释出来。

    我都不好意思说自己是学计算机的了, 居然连这些基础的问题都没有搞清楚。 这是促使我去深入学习编译原理, 计算机组成原理和操作系统这些基础知识的重要原因。

    学习编译原理最简单的方法(对我来说)大概是自己实现一门编程语言, 虽然费时费力, 不过能对整个过程有个清晰的了解。

    另外一个重要原因是有一种想要自己写一门语言的冲动。 尤其是在学了这么多门语言之后就会萌生出这样的念头。不同的语言有不同的让我喜欢的特性: Python有漂亮简洁的语法, 静态语言Go实现了像动态语言一样的鸭子类型的接口, Dart有很多语法糖和方便的异步… (当然这些特性是仁者见仁, 智者见智的)。

    但是又不能找到一门语言,具备所有自己喜欢的特性, 那就自己写一个好了,可以把自己喜欢的特性都加上。

    学习的过程

    学校的编译原理的课程安排在了大三, 我还没有学过, 所以一切都是从0开始。 我先看了前桥和弥写的《自制编程语言》一书, 这本书的实战性很强, 没有介绍太多的理论知识, 而是直接教你怎么写编程语言。

    我从这本书中了解了写一门编程语言的大致过程和大致的思路。 不过书中的很多解释不够充分, 对于完全没有接触过编译技术的人来说还是有点费解(也可能是我自己理解能力不够好)。

    我也是在自己了解了大致思路后就开始自己尝试写, 然后再回过头来看书, 看作者提供的源代码, 才能比较好地了解作者是在干嘛。

    还有一些书中内容介绍的不够充分, 比如yacc和lex的使用。 这种工具毕竟比较流行, 网上找找别人写的博客多看看, 自己再多尝试就能很好地掌握。

    因为更喜欢在实战中学习, 所以前期只是了解了大致思路没有特别深入的学习理论知识, 就直接开始码代码了。 在具体实现的过程中遇到问题, 再去看书或是网上寻找答案。

    设计和实现

    我选择写一个动态语言的解释器, 而不是静态语言的编译器。

    之所以要写解释器, 不是因为我更偏好动态语言, 其实相比而言我更喜欢静态语言。 真正的原因是, 我觉得这只是第一次尝试, 很多东西都不会, 肯定会写得很烂的,不如先就写动态语言, 等真正学得比较好了, 再回过头来写一门自己喜欢的语言。

    正式开始写代码前, 我还要给这门语言取个名字,虽然只是个练手的项目, 不过还是得有个名字吧。 取名字还正不是一件容易得事, 就像给函数或者类取一个恰如其分的名字一样。

    听说恰当的函数名或类名还能反应整个项目的设计是否合理, 逻辑清晰, 语言的名字似乎并没有这样的意义。

    我脑袋里闪过的第一个名字是Cactus(仙人球, 仙人掌)。 我觉得很喜欢这个名字, 就把Cactus暂时留个我要写的静态语言了(希望我真的会写, 没有白留)。 仙人球是植物(正好是静态的), 同样带刺的动物是刺猬(Hedgehog)。 动物是动态的, 正好符合我要写的动态语言, 于是就叫Hedgehog了。

    前面提到了lex和yacc, 我在自己写的编程语言里面也使用了这两个工具做词法分析和语法分析。 既然是自己要写一门语言为什么还要用别的工具呢? 当然不能以”不重复造轮子”作为借口, 我就是为了造轮子才想要自己写编程语言的, 真正的目的是为了简单。

    前面提到我把这当作一个练手的项目, 为了熟悉整个过程, 我把简单作为了整个过程的一个原则,很多地方我可以想到更优但更加复杂的实现方式, 但是大多数仍然采用了最简单最能保持整个项目逻辑清晰的实现方式。 我更多的目的是为了了解整体过程, 整体结构, 所以局部就尽量保持简单了吧(当然比较懒也是重要原因)。

    当然后续词法分析和语法分析肯定会自己实现一下, 毕竟这算是编译器或者解释器的前端, 也很重要的。

    解释器是用C语言写的。 之前从来没有用C语言写过这么大的项目(虽然到目前一共也就2千多行的代码), 这次也让我学会了很多C语言的高级用法。 比如 :

    void (*func)(void)

    是一个返回值为空, 参数为空的函数指针;

    void (*signal(int signo,void(*func)(int)))(int);

    是一个返回值为函数指针, 参数为(int signo,void(*func)(int)), (一个int, 一个函数指针)的函数, 其中函数名为signal。

    之所以用函数指针, 是为了用C语言写面向对象, 最开始我完全是使用面向过程, 只是简单的通过不同文件实现简单的封装。

    后来越写越大, 就出现各种问题, 比如头文件交叉引用引起编译器报错。 还有很多地方用面向对象可以更好地实现, 比如要处理表达式的创建和求值, 如果能有一个表达式的接口, 就能利用多态的好处, 不需要再写一个巨大的switch, case语句, 使用枚举来判断不同的表达式, 调用不同的函数。

    我听说限制程序员的不是编程语言而是编程思维, C语言当然也可以写面向对象, 数据可以封装在结构体中, 再给结构体加上函数指针就实现了类的方法。

    多态也可以通过自己实现虚函数表, 在对象初始化时把函数指针指向不同的函数就实现了。 大多数的面向对象的特性都有相应的方法实现, 只不过是语法上不如原生支持面向对象的语言简单罢了。

    还有一些问题是关于这门语言本身的设计问题:

    (1) for, if这类的语句中变量的作用域问题

    一开始我设计的是Java, C++一样的, for, if的代码块中声明的变量, 它作用域只存在于整个代码块中。 后来想到了这是一门弱类型的动态语言, 独立的运行环境也没什么特别的用处, 于是就改成了和Python一样: 这种代码块都没有独立的运行环境。

    (2) 把函数看成什么的问题

    比如Java这种纯粹面向对象的语言, 函数只能是对象的方法。 我这里是把函数作为一种基础数据类型, 像字符串一样, 可以直接用于传参, 赋值。

    毕竟这是自己的编程语言,可以把它设计成自己喜欢的样子, 所以大多数的设计都是根据自己的想法, 自己觉得怎么合理就怎么来(当然不是天马行空地胡乱设计, 而是根据自己地实际经验选择合理的设计吧)。

    当然最开始写一门编程语言的时候,有很多地方不知道怎么设计才合理, 这个时候我就参考自己学过的编程语言, 想想它为什么要采用这种设计, 出于怎样的考虑。

    这样的思考, 让我对之前学过的编程语言有有了更加深刻的认识, 可以说是受益匪浅吧。 我渐渐地也认识到编程语言的设计很多时候都是设计者编程思维的体现。

    简单地介绍一下Hedgehog

    说了这么多, 是时候简单地介绍一下我写的这门编程语言了。目前还很简陋, 后面再慢慢地完善它吧。

    hedgehog 的多数设计和 python 比较相似, 无需声明变量类型, if,for等语句没有块级作用域。

    语法上又有点像 go 语言: if, for后面不需要(), 但是后面的代码块都必须加{};

    没有while, 不过有for condition {}来替代。 不过行尾必须加;这点和 go 不同。

    大多数设计都是为了简化实现方式, 比如必须加{}, ;是为了简化语法的解析。

    数据类型

    a = 10; //intb = 3.14;//floatc = true;//booleand = null;//nulls = "Hello, World!";//string

    控制语句

    a = 10;if a > 10 { // `()` is not necessary. b = a+20;} elsif a==10 { b = a+10;} else { b = a-10;}print(b);

    循环

    for i=0; i<10; i=i+1 { print(i); if i>=4 {break;}}i = 0;for i<10 { if i<5 {continue;} print(i);}

    函数

    function也被看作一种值(基本数据类型), 不过目前还没有对它实现垃圾回收, 所以直接以函数赋值或者其他操作会出现内存错误。

    // 模仿python首页的函数func fbi(n) { a, b = 0, 1; for a
    func factorial(n) { if n==0 {return 1;} return n*factorial(n-1);}print(factorial(5));

    目前只实现了一个原生函数print。 print接收一个基本数据类型作为参数, 输出并换行, 或者无参数, 直接换行。

    运算符

    大多数与c保持一致, 除了&, |。 因为没有提供位运算的功能, 所以直接用这两个符号表示逻辑与和逻辑或。

    b = 2;a = 10;if a>20 & b<10 { print("`b` is less than 10 and `a` is greater than 20");}if a>20 | b<10 { print("`b` is less than 10 or `a` is greater than 20");}

    What I cannot create, I do not understand。” 我喜欢这种从自己制作过程中学习的方式。 这种方式给了我一种踏实感, 让我觉得自己是真地明白了整个过程,而不是仅仅记住了什么公式, 学会了调用新的API。

    这个简单的解释器的代码都在我的GitHub上,感兴趣的可以访问下面的链接。

    https://github.com/yangtau/hedgehog

    原文出处:微信公众号:码农翻身

    原作者: 杨韬

    展开全文
  • python

    2020-09-19 10:30:26
    Python取名字的讲究就是要有一定意义,能够从名字中看出这个函数是用来干什么的。从 add_function 这个名字中,是不是看出她是用来计算加法的呢(严格地说,是把两个对象“相加”,这里相加的含义是比
  • 背景:家里有个亲戚生了对龙凤胎,取名字很头痛。他们要求名字的第三个字要是五行属土的字,而且两个孩子名字的第三个字能组成一个寓意不错的词。 于是我写了个小程序,突然觉得python真的很强大。哈哈哈。 1.先...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • Python】:排名第三 【算法】:排名第四 编者注:三才五格、五行八字等理论是否真实本人是持中立态度的。就像是贴春联、放鞭炮、吃粽子等等一样,都是中国的传统文化。作为一个工科男只是被七大姑八大姨...
  • python基础 python编程语言在许多语法结构、标准库函数和交互式开发环境功能。 表达式包含“值”和“操作符”,并且总是可以求值为单个值。...变量取名字规则: 1.只能是一个词; 2.只能包含字母、
  • 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。1.引入在现在这个全是人工智能...这里笔者为大家介绍一下图灵机器人,这是一款可以全凭自己配置的机器人,你可以给他取名字,设定各种...
  • python学习

    2019-11-08 14:30:55
    字典表: d={’name’=’tony’,’...d.get(’name’)也可以用来直接取名字,如果遇到没有的元素也不会报异常,如果d.get(‘gender’)没有的话,就可以d.get(‘gender’,’男’) 把这个gender附上一个男 数值类型 ...
  • Python 基础语法

    2018-12-29 10:23:16
    一.Python 基础语法 1.标识符 **定义:取名字,你来命名的都叫标识符 比如 项目名 包名 文件名 函数名 变量名 类名** 2.规范 2.1数字.字母 下划线组成 不包含中文和其他特殊符号 2.2不能以数字开头 2.3字母...
  • 如何给变量命名,如何让它变得有意义成了程序员不可逾越的难题,这篇文章参考了 Clean Code ,提供7条命名建议,希望能在取名字的过程中给你带来一些帮助。以下都是基于Python3.7语法1、使用有意义而且可读的变量名...
  • 今天开始我的Python学习教程,我思考了很久该如何降低学习编程的门槛,最终也没有得到一个明确的答案,参考了一些国外的教学资料,决定编写一个宠物猫作为我的教学素材,如果还有更好的建议欢迎联系我,帮助我改进。...
  • Python语言可能是第一种即简单又功能强大的编程语言(PS:老外取名字很有意思,大象、蜜蜂、蛇等等,Python的英文是蟒蛇,logo也是2蛇扭在一起)。它不仅适合于初学者,也适合于专业人员使用,更加重要的是,用Python...
  • 本来想取名字为:双11前为马云爸爸疯狂打Call鉴于此账号人设的正经脸,还是决定使用程序员看得懂的标题:Docker+Selenium Grid+Python搭建分布式测试环境(如转载的时候需要用到第一个标题名称,请 简信 联系CC先生)...
  • Python读取txt文件 1)在任意路径下创建date.txt(txt 文本文件)...2)新建一个python文件,任意取名字:例如read.py 使用编辑器打开read.py文件输入一下内容: import sys input_file = sys.argv[1] file_read = ...
  • python解决五格与起名问题 大二的暑假闲来无事,恰逢python自学刚刚入门,为了巩固知识,于是想通过python来解决日常生活中的一些问题。 关于姓名的学问——五格 如何取一个好听又好看的名字确实是一个难题。...
  • Python中,为了方便使用,你经常需要给一些变量和常量等数据取名字。这个名字就叫标识符,允许使用字母、数字和下划线来组成。取名字的时候也不能瞎取,要注意两点: 1. 开头不能是数字 你大可使用字母、数字、...
  • python之基础语法

    2018-12-10 16:01:40
    1.1标识符 —自定义(取名字)命名的都叫标识符 例如:项目名、包名、文件名、变量名、函数名、类名 1.2标识符的规范 a.由数字、字母、下划线组成 b.不能以数字开头 c.不同的字母或者字母和数字之间用下划线隔...
  • python自动化学习1

    2018-12-04 18:04:27
    1、如何安装在线依赖包(例如openpyxl) ...2、Python基础语法 1)标识符 --取名字,你来命名的豆角标识符 例如:项目名 包名 文件名 函数名 变量名 类名... 标识符的规范: a、数字 、字母、下划线组成 ...

空空如也

空空如也

1 2 3 4 5
收藏数 83
精华内容 33
关键字:

python取名字

python 订阅