Julia: 亿元估值AI网红代码的不同版本(readline与replace的用法)

在这里插入图片描述
上面就是一段网红搞笑的AI代码。

在Julia中有两个知识点:

1、readline(): 获得输入的字符串
2、replace():替代函数,用法如下:

replace(s::AbstractString, pat=>r; [count::Integer])
julia> replace("Python is a programming language.", "Python" => "Julia")
"Julia is a programming language."

julia> replace("The quick foxes run quickly.", "quick" => "slow", count=1)
"The slow foxes run quickly."

julia> replace(["吗?","在"],"吗?"=>"","?"=>"","?"=>"") 
2-element Array{String,1}:
 ""
 "在"
julia> A =["吗?"=>"","?"=>"","?"=>""]
3-element Array{Pair{String,String},1}:
 "吗?" => ""
  "?" => ""
  "?" => ""

julia> replace(["吗?","在"],A...)
2-element Array{String,1}:
 ""
 "在"

因此,如果用Julia来写 ( 感谢水牛兄的支持!):

方案一: replace 套合

while true
      input =readline();
      println(replace(replace(replace(input,"吗"=>""),"?"=>"!"),"?"=>"!"))
end

如果你还要更省一点:

while true
      println(replace(replace(replace(readline(),"吗"=>""),"?"=>"!"),"?"=>"!"))
end

但还不算优雅。不知还有没有其它简洁优雅的写法?

方案二:global

while true
a = readline()     
_dict=["吗"=>"","?"=>"!","?"=>"!"]
for element in _dict
   global a =replace(a,element)
end
println(a)
end

思考一下:为什么要在循还中写一个global?

方案三:最优雅的写法

while true
        _dict=["吗"=>"","?"=>"!","?"=>"!"]
        reduce(replace,_dict,init=readline())
end

方案四:用split,join,replace结合起来,也可以写出第四种写法。

whlie true
      _dict=["吗"=>"","?"=>"!","?"=>"!"]
      join(replace(split(readline(),""),_dict...))
end
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值