所以我在哈斯克尔身上愚弄,试着自己去学习.我正在尝试解决某个问题,我应该创建一个随机数列表然后总结它们.
我有生成它们的代码 - 使用getStdRandom和randomR.使用它们都返回一个列表IO Float:[IO Float]
现在,当我尝试使用say foldl或foldr总结列表,或者甚至尝试简单的递归求和时,我得到错误等等 - 据我所知这是因为IO Float是monad,所以我需要做一些Haskell魔法来获取它工作.
我一直在谷歌搜索,并没有找到有用的东西.
有没有办法总结清单?甚至将其转换为浮点列表,以便在代码的其他部分更容易解决?
我正在尝试使用HSpec在haskell中进行TDD.因此,在为除法运算符编写特殊情况时,例如:
3 / 0 => Infinity0 / 0 => Nan如何使用Hspec测试上述案例?
通过示例简要介绍类型和事件.
EX1.
abbacb
a,b,c是类型.
a发生2次;b发生3次;c发生1次.
这可以更简洁地表示为[('a',2),('b',3),('c',1)](实际上,顺序无关紧要).
EX2.
abbacb
ab,bb,ba,ac,cb是的类型的序列每个序列只出现一次.
这可以表示为 [("ab",1),("bb",1),("ba",1),("ac",1),("cb",1)]
以下图形结构具有前两个相同的信息内容:
('a',2) -- 'a' occurs 2 times
('b',1) -- "ab" occurs 1 times
('c',1) -- "ac" occurs 1 times
('b',2) -- 'b' occurs 2 times
('a',1) -- "ba" occurs 1 times
('b',1) -- "bb" occurs 1 times
('c',1) -- 'c' occurs 1 times
('b',1) -- "cb" occurs …Run Code Online (Sandbox Code Playgroud) 我在这里发现了一个类似的问题,但答案似乎并不适用于我的问题.
这是我的代码:
y = 3
list1 = [1,2,3,4,5]
if y != 0 or y != list1:
print("y is not in range")
else:
print(y)
Run Code Online (Sandbox Code Playgroud)
它不断印刷y is not in range.
我的目标是要检查,如果y确实不等于0 或者是否y不等于列表中的任何项目.
我理解上面or应该是一个and,我特别感兴趣的是如何检查y列表中包含的条件.
我正在尝试设置一个程序,它将从RabbitMQ中的每个队列中消耗,并根据某些消息运行某些脚本.不幸的是,当添加消费者时,如果它遇到单个错误(即没有找到超时或队列),则整个通道都已死亡.此外,队列来来去去,所以它必须经常刷新队列列表.这甚至可能吗?到目前为止,这是我的代码.
import pika
import requests
import sys
try:
host = sys.argv[1]
except:
host = "localhost"
def get_queues(host="localhost", port=15672, user="guest", passwd="guest", virtual_host=None):
url = 'http://%s:%s/api/queues/%s' % (host, port, virtual_host or '')
response = requests.get(url, auth=(user, passwd))
return response.json()
queues = get_queues(host)
def get_on_message(queue):
def on_message(channel, method_frame, header_frame, body):
print("message from", queue)
channel.basic_ack(delivery_tag=method_frame.delivery_tag)
return on_message
connection = pika.BlockingConnection(pika.ConnectionParameters(host))
channel = connection.channel()
for queue in queues:
print(channel.is_open)
try:
channel.basic_consume(get_on_message(queue["name"]), queue["name"])
print("queue added",queue["name"])
except Exception as e:
print("queue failed",queue["name"])
sys.exit()
try:
channel.start_consuming()
except KeyboardInterrupt: …Run Code Online (Sandbox Code Playgroud) 考虑以下两个文件:
FILE1.TXT:
file1line1
file1line2
file1line3
Run Code Online (Sandbox Code Playgroud)
FILE2.TXT
file2line1
file2line2
file2line2
Run Code Online (Sandbox Code Playgroud)
我想将file1中的每一行与file2中的相应行组合在一起.
怎么能在python中完成.
您可以假设两个文件中的行数相等.
我对 OOP 和 Python 很陌生。我所知道的几乎所有内容都是自学的,因此如果您能提供一些链接供我阅读,我将不胜感激,因为我不知道为了澄清我的疑问而应该寻求的确切术语。
到目前为止,这是我的代码:
class Point(object):
x = 2
y = 3
def __init__(self, x, y):
self.x_a = x
self.y_b = y
class RectPoint(Point):
def __init__(self, x, y):
self.x_1 = x
self.y_1 = y
self.dist = (x*x + y*y)**0.5
class CircPoint(Point):
pass
a = Point(3,4)
b = CircPoint(3,4)
c = RectPoint(3,4)
print a.x # 2
print a.y # 3
print a.x_a # 3
print a.y_b # 4
print b.x # 2
print b.y # 3
print b.x_a # …Run Code Online (Sandbox Code Playgroud) 注意:我不是在询问可以使用哪些类型来存储类名,也不是要求使用解决方法来存储类名,例如反射或使用Strings.这也不是询问如何使用instanceof运算符的问题.
考虑这个例子:
A a = new A();
Class c1 = A.class;
System.out.println(a instanceof c1); //Does not Work
Class c2 = A.class.getClass();
System.out.println(a instanceof c2); //Does not Work
class A{}
Run Code Online (Sandbox Code Playgroud)
我知道上面的代码会失败.但我很好奇是否可以存储一个类,以便它可以像我正在键入类名本身一样工作.
System.out.println(a instanceof A); //This will work
Run Code Online (Sandbox Code Playgroud)
我们可以保留(类)A一些变量,xx以便这可以工作吗?
System.out.println(a instanceof xx);
Run Code Online (Sandbox Code Playgroud)
我的问题是:是否可以存储A一个变量,以便编译器将该变量看作是看到它A?
注意:我不是在问如何存储A的对象.我在问是否可以存储A本身.
我正在练习明天练习考试.该文本告诉我将数据库实现到库中,以定义Item可以是书籍或杂志的s.对于每本书,我保存了姓名+作者.每个Magazine我保存的名称:
data Item = Book String String
| Magazine String
deriving(Show)
data Requisition = Req String Item
type Database = [Requisition]
exDB :: Database
exDB = [Req "John" (Book "PF" "HS"),Req "Jay"(Book "Apple" "Steve Jobs"),Req "Francis"(Magazine "Forbes")]
books :: Database -> String -> [Item]
books db name = {-- what's next?-}
Run Code Online (Sandbox Code Playgroud)
现在,我需要创建一个名为的函数books :: Database -> String -> [Item],它在我的数据库中按名称搜索并向我提供该人请求的书籍.
我该怎么做呢?
众所周知,如果自然数的平方根不是整数,那么它是不合理的.这种平方根的十进制扩展是无限的,没有任何重复模式.
二的平方根是
1.41421356237309504880...,并且前一百个十进制数字的数字和是475.对于前100个自然数,找到所有无理平方根的前100个十进制数字的数字和的总和.
这是我为这个问题制作的代码:
from decimal import *
from math import sqrt
getcontext().prec = 100
def digitalsum(n):
sum = 0
for a in n:
sum += int(a)
return sum
total = 0
for a in range(1, 101):
if not sqrt(a) % 1 == 0:
ans = str(Decimal(a).sqrt())
ans = ans[2::]
print(a)
print(digitalsum(ans))
print("-------")
total += digitalsum(ans)
print(total)
Run Code Online (Sandbox Code Playgroud)
它显示错误的答案,我认为我一路上都错过了一些东西.任何形式的帮助表示赞赏.
python ×5
haskell ×4
class ×2
list ×2
attributes ×1
hspec ×1
if-statement ×1
inheritance ×1
instanceof ×1
java ×1
linguistics ×1
monads ×1
pika ×1
python-2.7 ×1
python-3.x ×1
rabbitmq ×1
square-root ×1
sum ×1
types ×1
variables ×1