diff --git a/python/dumux/common/__init__.py b/python/dumux/common/__init__.py
index 872be2ffe593253705e7ee24b1d33ae9b183044c..879a0f7a8f00325af079aef0defa9e41a0b4989d 100644
--- a/python/dumux/common/__init__.py
+++ b/python/dumux/common/__init__.py
@@ -23,15 +23,13 @@ def _createFVProblemDecorator(gridGeometry, enableInternalDirichletConstraints=F
     """
 
     def createModule(numEq):
-        priVarType = "Dune::FieldVector<double, {}>".format(numEq)
+        priVarType = f"Dune::FieldVector<double, {numEq}>"
         ggType = gridGeometry._typeName
         enableIntDirConstraint = "true" if enableInternalDirichletConstraints else "false"
-        problemType = "Dumux::Python::FVProblem<{}, {}, {}>".format(
-            ggType, priVarType, enableIntDirConstraint
-        )
+        problemType = f"Dumux::Python::FVProblem<{ggType}, {priVarType}, {enableIntDirConstraint}>"
         includes = gridGeometry._includes + ["dumux/python/common/fvproblem.hh"]
         moduleName = "fvproblem_" + hashIt(problemType)
-        holderType = "std::shared_ptr<{}>".format(problemType)
+        holderType = f"std::shared_ptr<{problemType}>"
         generator = SimpleGenerator("FVProblem", "Dumux::Python")
         module = generator.load(includes, problemType, moduleName, options=[holderType])
         return module
@@ -57,12 +55,12 @@ def _createBoundaryTypes(numEq=1):
     """Create BoundaryTypes instances"""
 
     # only compile this once per numEq
-    cacheKey = "BoundaryTypes_{}".format(numEq)
+    cacheKey = f"BoundaryTypes_{numEq}"
     try:
         return globals()[cacheKey]()
     except KeyError:
         includes = ["dumux/python/common/boundarytypes.hh"]
-        typeName = "Dumux::BoundaryTypes<{}>".format(numEq)
+        typeName = f"Dumux::BoundaryTypes<{numEq}>"
         moduleName = "boundarytypes_" + hashIt(typeName)
         generator = SimpleGenerator("BoundaryTypes", "Dumux::Python")
         module = generator.load(includes, typeName, moduleName)
diff --git a/python/dumux/discretization/__init__.py b/python/dumux/discretization/__init__.py
index f9ab3d47ec0839603a8e5f41ed462a7e55f64aea..535dee88a33899037e27ac78d144e429d611602f 100644
--- a/python/dumux/discretization/__init__.py
+++ b/python/dumux/discretization/__init__.py
@@ -18,10 +18,10 @@ def _createGridGeometry(gridView, discMethod="cctpfa"):
         includes += ["dumux/discretization/box/fvgridgeometry.hh"]
         typeName = "Dumux::BoxFVGridGeometry<double, " + gridView._typeName + ">"
     else:
-        raise ValueError("Unknown discMethod {}".format(discMethod))
+        raise ValueError(f"Unknown discMethod {discMethod}")
 
     moduleName = "gridgeometry_" + hashIt(typeName)
-    holderType = "std::shared_ptr<{}>".format(typeName)
+    holderType = f"std::shared_ptr<{typeName}>"
     generator = SimpleGenerator("GridGeometry", "Dumux::Python")
     module = generator.load(includes, typeName, moduleName, options=[holderType])
     return module.GridGeometry(gridView)
@@ -43,10 +43,10 @@ def _createGridVariables(*, problem, model):
     ggeo = f"Dumux::GetPropType<{model.cppType}, Dumux::Properties::GridGeometry>"
     gvv = f"Dumux::GetPropType<{model.cppType}, Dumux::Properties::GridVolumeVariables>"
     gfc = f"Dumux::GetPropType<{model.cppType}, Dumux::Properties::GridFluxVariablesCache>"
-    typeName = "Dumux::FVGridVariables<{}, {}, {}>".format(ggeo, gvv, gfc)
+    typeName = f"Dumux::FVGridVariables<{ggeo}, {gvv}, {gfc}>"
 
     moduleName = "gridvariables_" + hashIt(typeName)
-    holderType = "std::shared_ptr<{}>".format(typeName)
+    holderType = f"std::shared_ptr<{typeName}>"
     generator = SimpleGenerator("GridVariables", "Dumux::Python")
     module = generator.load(
         includes, typeName, moduleName, options=[holderType], preamble=model.cppHeader
diff --git a/python/dumux/io/__init__.py b/python/dumux/io/__init__.py
index c92e22f9e63bf43f96cead7c71cff2e1bda05a8d..5d6453d673362f3a14c6c44d07b2afeac625033b 100644
--- a/python/dumux/io/__init__.py
+++ b/python/dumux/io/__init__.py
@@ -11,9 +11,7 @@ def _createVtkOutputModule(*, gridVariables, solutionVector, name):
 
     includes = gridVariables._includes + solutionVector._includes
     includes += ["dumux/python/io/vtkoutputmodule.hh", "dumux/io/vtkoutputmodule.hh"]
-    typeName = "Dumux::VtkOutputModule<{}, {}>".format(
-        gridVariables._typeName, solutionVector._typeName
-    )
+    typeName = f"Dumux::VtkOutputModule<{gridVariables._typeName}, {solutionVector._typeName}>"
     moduleName = "vtkoutputmodule_" + hashIt(typeName)
     generator = SimpleGenerator("VtkOutputModule", "Dumux::Python")
     module = generator.load(includes, typeName, moduleName, preamble=gridVariables.model.cppHeader)