标签: string-interpolation

Python 3.6+中是否有格式化的字节字符串文字?

我正在寻找格式化的字节字符串文字.具体来说,相当于

name = "Hello"
bytes(f"Some format string {name}")
Run Code Online (Sandbox Code Playgroud)

可能是类似的东西fb"Some format string {name}".

这样的事情存在吗?

python string-interpolation python-3.x f-string

25
推荐指数
4
解决办法
4770
查看次数

尝试执行字符串插值时,Python 3返回"无效语法"

我最近一直在学习python 3,我无法得到任何涉及字符串插值(格式化)的例子.

In [1]: state = "Washington"

In [2]: state
Out[2]: 'Washington'

In [3]: my_message = f"I live in {state}"
File "<ipython-input-3-d004dd9e0255>", line 1
my_message = f"I live in {state}"
                                ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我认为我的机器默认为python 2,但快速检查显示:

Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
Type "copyright", "credits" or "license" for more information.

IPython 5.2.2 -- An enhanced Interactive Python.
Run Code Online (Sandbox Code Playgroud)

我在Ubuntu 16.04:

python3 --version
Python 3.5.2
Run Code Online (Sandbox Code Playgroud)

我只是忽略了基本语法?我在同学的几台计算机上运行相同的命令,似乎执行得很好.

python string-interpolation python-3.x ubuntu-16.04

24
推荐指数
2
解决办法
3万
查看次数

在bash中,如何在字符串中插入$(...)?

我正在尝试编写一个bash脚本,在我的实时站点的数据库上执行mysqldump,然后添加并将转储提交到git存储库.这是我到目前为止(存储在一个由crontab条目调用的.sh文件中):

/usr/bin/mysqldump --skip-comments --skip-dump-date -u [user] -p[pass] database | gzip > /var/www/site/backup/database.sql.gz
cd var/www/site/backup && git add *
cd var/www/site/backup && git commit -m 'Database $(date +%a %H:%M %h %d %Y)'
Run Code Online (Sandbox Code Playgroud)

我的crontab条目如下所示:

0,20,40 8-22 * * * /var/www/site/backup/script.sh
Run Code Online (Sandbox Code Playgroud)

我可以看到这个脚本会转储数据库,但不会将文件添加或提交给git.有什么东西我错过了吗?

编辑=================================

我做了以下更改,提交工作:

cd /var/www/site/backup && /usr/bin/git add *
cd /var/www/site/backup && /usr/bin/git commit -m 'Database $(date +%a %H:%M %h %d %Y)'
Run Code Online (Sandbox Code Playgroud)

但是,日期不会计算.

编辑=================================

最新修订,包括(大部分)建议

/usr/bin/mysqldump --skip-comments --skip-dump-date -u [user] -p[pass] database > /var/www/site/backup/database.sql
cd var/www/site/backup
/usr/bin/git add *
/usr/bin/git commit -m …
Run Code Online (Sandbox Code Playgroud)

bash shell string-interpolation

23
推荐指数
1
解决办法
1万
查看次数

用Python替换字符串的子字符串

我想就用一些其他文本替换字符串的子串的最佳方法得到一些意见.这是一个例子:

我有一个字符串,a,可能是"你好我的名字是$ name".我还有另一个字符串b,我想在其子字符串'$ name'的位置插入字符串a.

我认为如果以某种方式指示可替换变量将是最简单的.我使用了一个美元符号,但它可以是花括号之间的字符串或任何你认为最好用的字符串.

解决方案: 以下是我决定这样做的方法:

from string import Template


message = 'You replied to $percentageReplied of your message. ' + 
    'You earned $moneyMade.'

template = Template(message)

print template.safe_substitute(
    percentageReplied = '15%',
    moneyMade = '$20')
Run Code Online (Sandbox Code Playgroud)

python string substring string-interpolation

22
推荐指数
5
解决办法
2万
查看次数

Rust支持类似Ruby的字符串插值吗?

在Ruby中,我可以做到这一点.

aaa = "AAA"
bbb = "BBB #{aaa}"

puts(bbb)

> "BBB AAA"
Run Code Online (Sandbox Code Playgroud)

这种语法的重点是消除重复,并使其感觉像一个shell脚本 - 非常适合繁重的字符串操作.

Rust支持这个吗?或者有计划支持这个?或者有一些可以模仿的功能?

string-interpolation rust

22
推荐指数
3
解决办法
6248
查看次数

在字符串插值中格式化破折号

我刚刚在C#6.0中查看了新的字符串插值功能(有关详细信息,请参阅Roslyn语言功能页面).使用当前语法(预计会改变),你可以做这样的事情(例子来自我刚才写的博客文章):

var dob2 = "Customer \{customer.IdNo} was born on \{customer.DateOfBirth:yyyyMdd}";
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法在格式化部分中包含短划线,例如:

var dob2 = "Customer \{customer.IdNo} was born on \{customer.DateOfBirth:yyyy-M-dd}";
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我会收到错误:

错误CS1056意外字符' - 'StringInterpolation Program.cs 21

有什么方法可以让破折号在格式化部分工作吗?我知道我可以使用string.Format(),但我想看看它是否可以用字符串插值完成,就像练习一样.

编辑:因为似乎没有人知道我在说什么,请看关于这个主题的博客文章,看看它应该如何工作.

c# string-formatting string-interpolation c#-6.0

22
推荐指数
2
解决办法
8723
查看次数

使用字典和字符串的Python字符串插值

鉴于:

dict = {"path": "/var/blah"}
curr = "1.1"
prev = "1.0"
Run Code Online (Sandbox Code Playgroud)

插入字符串以生成以下内容的最佳/最短方法是什么:

路径:/ var/blah curr:1.1上一篇:1.0

我知道这有效:

str = "path: %(path)s curr: %(curr)s prev: %(prev)s" % {"path": dict["path"],"curr": curr, "prev": prev}
Run Code Online (Sandbox Code Playgroud)

但我希望有一个更短的方式,例如:

str = "path: %(path)s curr: %s prev: %s" % (dict, curr, prev)
Run Code Online (Sandbox Code Playgroud)

如果这看起来像是一个过于迂腐的问题,我道歉.

python string string-interpolation

20
推荐指数
6
解决办法
4万
查看次数

Rails字符串从数据库中插入字符串

所以这是我的问题.

我想检索存储在模型中的字符串,并在运行时使用rails应用程序中的变量更改其中的一部分.这是一个例子:

我有一个Message模型,我用它来存储几个独特的消息.所以不同的用户有相同的消息,但我希望能够在消息的中间显示他们的名字,例如,

"Hi #{user.name}, ...."
Run Code Online (Sandbox Code Playgroud)

我试图在数据库中存储它,但它在视图中显示之前被转义,或者在存储在数据库中时通过rails控制台进行插值.

提前致谢.

ruby string string-interpolation ruby-on-rails-3

18
推荐指数
2
解决办法
2万
查看次数

动态字符串插值

谁能帮我这个?

必需输出:" Todo job for admin "

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(ReplaceMacro("{job.Name} job for admin", new Job { Id = 1, Name = "Todo", Description="Nothing" }));
        Console.ReadLine();
    }

    static string ReplaceMacro(string value, Job job)
    {
        return value; //Output should be "Todo job for admin"
    }
}

class Job
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

c# string-interpolation

17
推荐指数
3
解决办法
7401
查看次数

为什么_不能在字符串插值中使用?

这有效

(x => s"$x")
Run Code Online (Sandbox Code Playgroud)

但是这个

(s"${_}")
Run Code Online (Sandbox Code Playgroud)

[error] ...: unbound placeholder parameter
[error]   (s"${_}")
Run Code Online (Sandbox Code Playgroud)

这只是因为该(s"$_")构造遭受漏洞抽象

此外: (s"$_")输出完全不同:

[error] ...: invalid string interpolation: `$$', `$'ident or `$'BlockExpr expected
[error]   (s"$_")
[error]      ^
[error] ...: unclosed string literal
[error]   (s"$_")
Run Code Online (Sandbox Code Playgroud)

lambda scala string-interpolation

15
推荐指数
1
解决办法
1971
查看次数