我之前在python中取得了一些基本的进步,只不过命令陆地代数计算器做数学作业,使用用户定义的函数,输入和基本的东西。我已经采用了codeacademy所拥有的Python 2课程,而且我发现PY3没有使用%和%s。
我已经将其缩小到与格式()有一些关系,但这就是我在谷歌上找到的。
作为初学者,我真的很感激如何将其转化为Python 3:
str1 = "Bob,"
str2 = "Marcey."
print "Hello %s hello %s" % (str1, str2)
编辑:另外,我知道print(“Hello”+ str1 +“hello”+ str2)可以正常工作。
答案 0 :(得分:3)
str.__mod__()
继续在3.x中工作,但str.format()
中描述了使用PEP 3101执行字符串格式设置的新方法,并随后被移植到最新版本的2。 X
print("Hello %s hello %s" % (str1, str2))
print("Hello {} hello {}".format(str1, str2))
答案 1 :(得分:3)
这应该按预期工作:
str1 = "Bob,"
str2 = "Marcey."
print("Hello {0} hello {1}".format(str1, str2))
虽然使用%来格式化Python 3中的字符串仍然有效,但建议使用新的string.format()。它更强大,%将在某些时候从语言中删除。
访问Python网站,查看从Python 2.7到Python 3的更改,文档包含您需要的所有内容。
:)
答案 2 :(得分:1)
%
运算符与print
无关;相反,它是一个字符串运算符。考虑这个有效的Python 2.x代码:
x = "%s %s" % (a, b)
print x
几乎相同的代码在Python 3中起作用:
x = "%s %s" % (a, b)
print(x)
您的尝试将被正确写为
print("%s %s" % (a, b))
%
运算符类似于C函数sprintf
,而不是printf
。
答案 3 :(得分:0)
您正在使用的方法在Python 3中仍然可用(str。 mod ())。 除此之外,您还可以在Python中使用字符串格式。 例如:
#include "Window.h"
Window::Window() {
width = 800;
height = 600;
}
Window::Window(GLint width, GLint height) {
width = width;
height = height;
}
int Window::Initialise() {
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
printf("SDL initialisation failed\n");
SDL_Quit();
return 1;
}
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);
mainWindow = SDL_CreateWindow("Test game", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_OPENGL);
if (!mainWindow) {
printf("SDL window creation failed!\n");
SDL_Quit();
return 1;
}
//Set context for GLEW to use
SDL_GLContext context = SDL_GL_CreateContext(mainWindow);
//Allow modern extension features
glewExperimental = GL_TRUE;
if (glewInit() != GLEW_OK) {
printf("GLEW initialization failed!\n");
SDL_DestroyWindow(mainWindow);
SDL_Quit();
return 1;
}
glEnable(GL_DEPTH_TEST);
//Setup viewport size
glViewport(0, 0, 800, 600);
}
Window::~Window() {
SDL_DestroyWindow(mainWindow);
SDL_Quit();
}
或
print("This is {}".format("sparta")) #gives output
"This is sparta"
答案 4 :(得分:0)
使用f
或F
为要在行内求值的变量和表达式在字符串内的花括号之间插入前缀str1 = "John Cleese"
str2 = "Michael Palin"
age1 = 73
age2 = 78
print(f"Hello {str1}, hello {str2}, your ages add to {age1 + age2}.")
或{1}}
print()
请注意.format()
中的Python3括号。显然,字符串插值比Python 2的@override
Widget build(BuildContext context){
//here is the reason of losing focus.
final GlobalKey<FormState> _formKey = new GlobalKey<FormState>()
}
语法要快。