您可能已经听说过Python,这是一种交互式编程语言,可轻松处理数据。 如今,它已用于从网站和应用程序到统计,机器学习和AI的所有内容。

使用Python,编写代码很简单,但是创建一个真正有用的程序需要花费一些时间。 您还可以使用开源应用程序Jupyter Notebooks处理数据,但是当您要开发实际的软件时,这不会使您走得太远。 今天,我将向您展示如何使用Python快速轻松地创建程序,从而为您改变游戏规则。

我正在制作星座生成器。 为什么? 因为我认为构建一个从预制块生成随机文本的程序会很有趣。 还有什么比大多数人对日常命运的伪科学预测更好地使用Python了? 具有讽刺意味的对我来说很有意义。 所以走吧

注意:您可以使用此代码随机编写任何文本块:政治演讲,广告,正式的申请信,随便命名。 因此,即使您对星座不感兴趣,也可以出于自己的兴趣使用此程序。

创建算法

这是我们将要做的,以及我们的软件将如何工作:

1.我们将做一些基本的整理工作,并设置预制的文本块。 我们的星座生成器的工作是从中随机选择。

2.我们将对星座生成器进行编程,使其与用户交互或交互。 在此阶段,我们将使用命令行,因此我们仅假设用户要在屏幕上键入内容。 (不过,稍后,我们可以使用一些精美的API将生成器与消息传递应用程序甚至语音助手相关联。)

3.如前所述,我们的程序将通过随机选择文本块并将它们放在一起来生成星座。

1.客房整理和设置

确保您的Python环境正在运行(即,您已安装Anaconda或纯Python)。 制作一个新的文本文件,并将其另存为horoscope.py到可以在命令行中键入其位置的位置。 对于Windows,我将文本文件保存到D:\ projects \ horoscope.py中,以便于访问。 如果您使用的是Mac,则可以在主目录(以及桌面和文档)中创建一个文件夹,并将Python项目保存在该文件夹中。

现在,让我们开始编码。

该应用将需要随机选择文本块。 为此,需要导入一个名为“ random ”的Python库:

import random

接下来,让我们建立预制文本块库。 为此,我们可以使用Python列表。 列表基本上是东西的集合,您可以通过知道东西的序号来解决东西的任何部分。 Python中的列表非常强大,但让我们从简单的事情开始:

first = [ "Today is perfect for new endeavors. " , “The tensions of this week will feel heavier today than yesterday. ", " Today is the day to cherish and embrace others. ", " Making yourself useful is a main component of a successful day. ", " Today, exercise caution when crossing the street. ",]
second = [" Remember that good things come to those who work hard. ", " Don’t let the circumstances bring you down. ", " Patience is key, but sometimes a little push can get the job done. ", " A smile can get you a long way. "]
third = [" Looking ahead may seem like a waste of time, but it pays off in the end. ", " Luck favors those who mind the risks and take them. ", " Today is the day for that thing you always wanted to do. ", " Luck is on your side today, so seize it! ", " Things are looking up for you! "]

这三个集合包括适用于几乎所有情况的通用文本行。 看一下它们的结构:

●有三组,每组包含一堆句子。 我们为每个组指定了自己的名称。

●每个句子都用引号引起来,在Python中,其意思是“字符串”(或文本)。

●要将大量文本放入集合中,我们用逗号分隔了它们。

因此,这里是:三个逗号分隔的字符串集合。

2.与用户对接

我们的星座计划的规则很简单:您输入十二生肖,作为回报,您将获得一些建议。 这些建议是否实际上基于您的十二生肖并不重要。

主要思想是您首先提交一些内容,然后得到一些回报。 (如果星座生成器只是在没有您提示的情况下发出建议,那将违反星座规则,我尊重游戏。)

因此,我们需要一个与用户交谈的界面。

与大多数编程语言一样,默认情况下,Python通过命令行与用户交互。 这是黑屏,带有白色文本,当您打开终端程序之类的应用程序时,会看到该文本,您可以访问计算机的操作系统。

当您打开终端时,您可以在命令行中输入文本,Python可以使用文本进行响应。 它不是很用户友好,但是现在可以了。 在下一课中,我们将把程序带到即时消息和语音应用Telegram。

在Python中,我们使用命令' print '向用户写一些东西。 让我们使用以下代码:

print( "1 — Aries" )
print( "2 — Taurus" )
print( "3 — Gemini" )
print( "4 — Cancer" )
print( "5 — Leo" )
print( "6 — Virgo" )
print( "7 — Libra" )
print( "8 — Scorpio" )
print( "9 — Sagittarius" )
print( "10 — Capricorn" )
print( "11 — Aquarius" )
print( "12 — Pisces" )

现在,让我们向用户询问一下:

zodiac = int(input( "Pick your sign by typing a number and pressing Enter: " )))

这行代码很有趣,因为它包含两个命令,一个嵌套在另一个命令中:

1. zodiac = int(...)将括号内的内容转换为整数(即​​整数),然后将该数字存储在名为“ zodiac”的变量中

2. input("...")输出引号内的内容,并要求用户输入一些信息。 一旦用户输入了他们的信息并按Enter,此命令会将信息从用户返回到调用它的任何地方。

由于这些可能是新主题,因此让我们简要地谈谈回电和退货。

在编程中,许多过程涉及调用和返回。 我经常“调用”函数和方法来执行任务,它们执行任务,然后“ return ”结果。 在这种情况下,我将调用方法input(“…”) ,它将返回用户输入的信息。

这是关于回电话和退货的很酷的事情。 你可以做A; 在A内部,您可以致电B; 然后在B内部,您可以调用C。因此,C向B返回了一些东西,B处理了该过程并将结果返回给了A,然后A做了它的事情。

例如,假设您需要计算特定用户的所得税。 要找出他们的收入,您需要询问一个数据库。 要找出要从数据库中请求的用户收入,您需要知道他们的姓名或税号。 说,对于此任务,您可以使用以下功能(假设有人已经定义并编写了这些功能):

askUserID()
queryDatabaseByID()
calculateTax()

我们可以通过以下代码来完成任务:

userID = askUserID()
income = queryDatabaseByID(userID)
tax = calculateTax(income)
print(tax)

在这四行中,我们使用了三个内存块来存储用户的ID,用户的收入以及所产生的税金。 该数据在程序运行时位于内存中。

如果我们必须在程序中的某些其他过程中重用这些数据,那么这种方法将很有意义-例如,从数据库中查找与该用户有关的其他信息; 或在其他计算中使用用户的所得税。

但是,如果我们只需要这些数据进行一次计算,那么存储所有这些数据并命名它们就太麻烦了。 一个更简单的方法是:

print( calculateTax( queryDatabaseByID( askUserID() ) ) )

在这一行中,上述所有四件事都是在调用和返回过程中一个接一个地发生的。 打印调用calculateTax ,后者调用queryDatabaseByID ,后者调用UserID 。 因此,第一个UserID返回一些ID。 接下来, queryDatabaseByID在数据库中找到该ID的收入信息,并将结果返回到calculateTax 。 然后, CalculateTax接收收入,计算税款,然后退回税款以进行打印。 最后,“打印”接收打印所需的内容,并将税收信息输出到旨在输出的任何地方。

这种嵌套和调用使您的代码更容易编写,但更难阅读。 因此,请勿过度使用此方法。

现在回到编程我们的星座生成器。 目前,我们已经获得了源文本和用户已输入的星座。 我们还需要什么?

3.生成星座

为了生成星座运势,我们同意从我们的库中选择一些随机的文本并将其吐出。 我们可以用一条简单的线来做到这一点:

print(random.choice(first), random.choice(second), random.choice(second_add), random.choice(third))

多亏了美丽的Python库“ random ”,我可以利用一种名为“ choice ”的方法,该方法从字面上从列表或任何其他集合中选择一个随机存在的项目。 要了解此方法的简洁性,请考虑一下。 用其他语言,要从数组中随机选择,您需要:

1.找出该数组是否包含项目,并找出其中有多少项目

2.使用随机数生成器,生成一个随机数

3.进行数学运算以确保您的随机数在原始数组中有多少个项目的范围内

4.选择随机项目

根据语言的不同,这很容易花费三到七行代码。 现在,您要做的就是调用random.choice()并将其提供一些集合或数组。 然后您的代码将返回该随机元素。

那么,我们完成了吗? 没呢还没。

看到,前面我们要求用户输入其十二生肖的数字。 虽然这对我们来说是一个很好的接触,但我们从未真正检查过用户是否输入了该号码。 如果他们输入99怎么办? 如果他们输入0怎么办? 尽管我们显然在用这些随机星座来欺骗用户,但我们不希望用户欺骗我们,所以让我们检查一下他们的输入:

if 0 < zodiac < 13 :print(random.choice(first), random.choice(second), random.choice(second_add), random.choice(third))
else :print( "This does not correspond to a zodiac sign" )

这些行仅检查' zodiac '是否大于零和小于13,在这种情况下输入是正确的,并且我们的程序可以基于random.choice()输出文本的混搭。 如果用户输入的数字不是1或12之间的数字,则我们的程序将生成错误并结束。

现在我们完成了。 用户可以输入他们的电话号码,并收到一些很好的建议,以改善他们的生活。 这是最终代码,您可以根据需要进行扩展:

first = [ "Today is perfect for new endeavors. " , "The tensions of this week will feel heavier today than yesterday. " , "Today is the day to cherish and embrace others. " , "Making yourself useful is a main component of a successful day. " , "Today, exercise caution when crossing the street. " ,]
second = [ "Remember that good things come to those who work hard. " , "Don’t let the circumstances bring you down. " , "Patience is key, but sometimes a little push can get the job done. " , "A smile can get you a long way. " ]
third = [ "Looking ahead may seem like a waste of time, but it pays off in the end. " , "Luck favors those who mind the risks and take them. " , "Today is the day for that thing you always wanted to do. " , "Luck is on your side today, so seize it! " , "Things are looking up for you! " ]
print( "1 — Aries" )
print( "2 — Taurus" )
print( "3 — Gemini" )
print( "4 — Cancer" )
print( "5 — Leo" )
print( "6 — Virgo" )
print( "7 — Libra" )
print( "8 — Scorpio" )
print( "9 — Sagittarius" )
print( "10 — Capricorn" )
print( "11 — Aquarius" )
print( "12 — Pisces" )
zodiac = int(input( "Pick your sign by typing a number and pressing Enter: " )))
if 0 < zodiac < 13 :print(random.choice(first), random.choice(second), random.choice(second_add), random.choice(third))
else :print( "This does not correspond to a zodiac sign" )

我们如何改善这个程序? 您可能会注意到,我们的大多数代码实际上都是内容(在这种情况下为文本)。 因此,最好在一个文件中包含所有内容而在另一个文件中包含所有逻辑的情况下设计该软件。 这样,即使程序正在运行,我们也可以轻松地更新内容。

我们还可以大大缩短程序输出黄道十二宫的代码部分。 如果使用循环,那部分代码可能大约是5行而不是12行,循环是一种编程语言元素,允许您重复执行特定操作。

但是对于生成几个星座的简单任务,我们现在的代码可以正常工作。

接下来 :如何将这个星座生成器转换为Telegram服务。

要获得专家开发人员的更多教训,请探索Yandex的Practicum,并继续您的技术职业。

From: https://hackernoon.com/want-to-learn-python-lets-do-it-with-horoscopes-raq44oo

如何构建基于Python的星座脚本相关推荐

  1. python游戏开发引擎_基于Python的网络游戏脚本系统的设计与实现

    基于 Python 的网络游戏脚本系统的设计与实现 摘要:传统的网络游戏开发采用 c/c++ 实现游戏的逻辑功能,随 着游戏内容越来越丰富以及快速变化的市场需要, c/c ++ 已经不能 满足开发者对 ...

  2. python selenium脚本_怎样开始写第一个基于python的selenium脚本

    1.下载并安装python(http://www.python.org/geti/). 2.安装selenium(http://pypi.python.org/pypi/selenium)下载并解压缩 ...

  3. python嵌入式脚本_基于Python的嵌入式脚本研究

    基于Python的嵌入式脚本研究 王国强;张贝克 [期刊名称]<计算机应用与软件> [年(卷),期]2010(027)003 [摘要]嵌入脚本语言到应用程序当中在用户自动化和个性化定制方面 ...

  4. 高效构建基于Python的商品评论文本挖掘网页APP

    CDA数据分析师 出品 作者:CDALevel Ⅰ持证人 岗位:数据分析师 行业:大数据 背景 电子商务行业在近几年发展得极为迅猛,很多在传统行业就业但是薪资不理想的都在网电子商务行业去转.这种趋势造 ...

  5. python 脚本_基于Python的ArcGIS脚本编程知识点总结

    1. ArcGIS中的组件-ArcObjects Esri主要使用C++开发ArcGIS软件,在ArcGIS软件中,所有的组件或者对象被统称为ArcObjects. ArcObjects部分知识点如下 ...

  6. python运势预测程序_基于Python的星座运势接口调用代码实例

    [python]代码库#!/usr/bin/python # -*- coding: utf-8 -*- import json, urllib from urllib import urlencod ...

  7. python签到脚本_基于Python实现签到脚本过程解析

    无聊刷日剧,看到签到断了好久,简单写了个脚本,通过模拟抓包的方式实现 1.先登录到字幕组网站获取token 2.用获取到的token登录到人人活动页面获取cookie 3.用获取到的cookie进行签 ...

  8. python写签到软件_基于Python实现签到脚本过程解析

    无聊刷日剧,看到签到断了好久,简单写了个脚本,通过模拟抓包的方式实现 1.先登录到字幕组网站获取token 2.用获取到的token登录到人人活动页面获取cookie 3.用获取到的cookie进行签 ...

  9. 基于python的json脚本解析

    super_json_v0.01 源码和解释 func_super_json(处理Json文件方法) def func_super_json(js_path,s,tk,vk,c_o):'''传入jso ...

最新文章

  1. C内存2:程序是如何运行的
  2. 安卓MediaPlayer框架之Binder机制
  3. java向后兼容吗_Java向后不兼容历史的观察
  4. 14 WM配置-主数据-定义存储单位类型(Storage Unit Type)
  5. php excel下载和使用,PHP:使用PHPExcel完成电子表格文件的导出下载和导入操作_PHP教程...
  6. 火速收藏!Android 开发者必会的内存泄漏指南
  7. 从源码分析ArrayList集合
  8. 社交网络和社会计算入门路径
  9. Halcon教程-HALCON19.05Progress将于2019年5月31日正式发布
  10. cesium使用obj格式的3D模型
  11. vue 2.0项目中使用tinymce富文本框遇到的问题
  12. 计算共形几何暑假课lecture1
  13. windows server域服务器作用,windows server 2012 r2AD域搭建以及域的简单功能介绍
  14. 统计推断-经典统计推断
  15. 基于Java Web的房屋出租管理系统
  16. 城市之眼视觉计算技术
  17. 国外5个在网页设计最具影响力的人物
  18. 动态规划--基本思路理念
  19. 身体质量指数BMI——python
  20. 外媒曝大规模数据泄露事件:涉11亿条

热门文章

  1. 出租屋网络常用配置方案
  2. 服务器群 密码定期修改,服务器密码设置定期修改密码
  3. 从图像中删除不想要的东西。
  4. DIY孔明锁(6根)自制鲁班锁
  5. 认识Linux物理内存回收机制
  6. 论文阅读笔记:3D deeply supervised network for automated segmentation of volumetric medical images
  7. 属于自己的“携程旅行”
  8. 2048游戏python源代码_Python2048游戏的实现
  9. ActionScript 3.0 加载外部SWF素材资源MovieClip,SimpleButton不支持鼠标事件
  10. stata外部命令大全(包含面板门槛、系统GMM、空间计量、Pvar、中介效应等)