diff --git a/mypy/config_parser.py b/mypy/config_parser.py
--- a/mypy/config_parser.py
+++ b/mypy/config_parser.py
@@ -24,8 +24,8 @@
 _INI_PARSER_CALLABLE: _TypeAlias = Callable[[Any], _CONFIG_VALUE_TYPES]
 
 
-def parse_version(v: str) -> Tuple[int, int]:
-    m = re.match(r'\A(\d)\.(\d+)\Z', v)
+def parse_version(v: Union[str, float]) -> Tuple[int, int]:
+    m = re.match(r'\A(\d)\.(\d+)\Z', str(v))
     if not m:
         raise argparse.ArgumentTypeError(
             f"Invalid python version '{v}' (expected format: 'x.y')")
@@ -36,9 +36,15 @@ def parse_version(v: str) -> Tuple[int, int]:
                 f"Python 2.{minor} is not supported (must be 2.7)")
     elif major == 3:
         if minor < defaults.PYTHON3_VERSION_MIN[1]:
-            raise argparse.ArgumentTypeError(
-                "Python 3.{} is not supported (must be {}.{} or higher)".format(minor,
-                                                                    *defaults.PYTHON3_VERSION_MIN))
+            msg = "Python 3.{0} is not supported (must be {1}.{2} or higher)".format(
+                minor,
+                *defaults.PYTHON3_VERSION_MIN
+            )
+
+            if isinstance(v, float):
+                msg += ". You may need to put quotes around your Python version"
+
+            raise argparse.ArgumentTypeError(msg)
     else:
         raise argparse.ArgumentTypeError(
             f"Python major version '{major}' out of range (must be 2 or 3)")
@@ -142,7 +148,7 @@ def check_follow_imports(choice: str) -> str:
 # Reuse the ini_config_types and overwrite the diff
 toml_config_types: Final[Dict[str, _INI_PARSER_CALLABLE]] = ini_config_types.copy()
 toml_config_types.update({
-    'python_version': lambda s: parse_version(str(s)),
+    'python_version': parse_version,
     'strict_optional_whitelist': try_split,
     'mypy_path': lambda s: [expand_path(p) for p in try_split(s, '[,:]')],
     'files': lambda s: split_and_match_files_list(try_split(s)),

diff --git a/test-data/unit/cmdline.test b/test-data/unit/cmdline.test
--- a/test-data/unit/cmdline.test
+++ b/test-data/unit/cmdline.test
@@ -561,6 +561,15 @@ main.py:1: error: Cannot find implementation or library stub for module named "a
 main.py:1: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
 main.py:1: error: Cannot find implementation or library stub for module named "a"
 
+[case testPythonVersionWrongFormatPyProjectTOML]
+# cmd: mypy -c pass
+[file pyproject.toml]
+\[tool.mypy]
+python_version = 3.10
+[out]
+pyproject.toml: [mypy]: python_version: Python 3.1 is not supported (must be 3.4 or higher). You may need to put quotes around your Python version
+== Return code: 0
+
 [case testPythonVersionTooOld10]
 # cmd: mypy -c pass
 [file mypy.ini]

Friendlier error when 3.10 is parsed as float in pyproject.toml
**Bug Report**

<!--
Note: If the problem you are reporting is about a specific library function, then the typeshed tracker is better suited
for this report: https://github.com/python/typeshed/issues
-->

Running mypy with Python 3.10 and `python_version` in the config file has a few wrong behaviors:
1. It lists mypy must be 3.4 or higher (it should say 3.6)
2. It truncates Python 3.10 to 3.1
3. It outputs a message when there shouldn't be one (you can invoke mypy with Python 3.10)

**To Reproduce**

Here is a subset of my `pyproject.toml`:

```toml
[tool.mypy]
# SEE: http://mypy.readthedocs.io/en/latest/config_file.html#config-file

# Specifies the Python version used to parse and check the target program.
python_version = 3.10

# Enables PEP 420 style namespace packages.
namespace_packages = true
```

I invoke mypy via: `mypy -p namespacepkg`

**Expected Behavior**

<!--
  How did you expect your project to behave?
  It’s fine if you’re not sure your understanding is correct.
  Write down what you thought would happen. If you just expected no errors, you can delete this section.
-->

Not to raise this message.

**Actual Behavior**

<!--
  Did something go wrong?
  Is something broken, or not behaving as you expected?
-->

```
pyproject.toml: [mypy]: python_version: Python 3.1 is not supported (must be 3.4 or higher)
```

**Your Environment**

<!-- Include as many relevant details about the environment you experienced the bug in -->

- Mypy version used: 0.931
- Mypy command-line flags: n/a
- Mypy configuration options from `mypy.ini` (and other config files): see above `pyproject.toml`
- Python version used: 3.10.2
- Operating system and version: macOS v11.5.1 Big Sur

<!--
You can freely edit this text, please remove all the lines
you believe are unnecessary.
-->


You need to quote it as `"3.10"`, because it's a float! We can probably put a special-case message here to make that clear though.
Changing it to:

```toml
# Specifies the Python version used to parse and check the target program.
python_version = "3.10"
```

Indeed fixes the problem. In hindsight it makes total sense.  Yeah maybe a special message would be a good idea, thank you!
@hauntsaninja Being a first-time contributor, I would like to work on this issue. Any suggestions on where I can start with?
@hauntsaninja @jamesbraza 
May I work on this issue?
@radioactive11 @nakatomotoi yes either of you can!  Just make a fork of mypy, cut a branch, try to implement a solution + add test(s) proving it works (see [`CONTRIBUTING.md`](https://github.com/python/mypy/blob/master/CONTRIBUTING.md) for how to run tests), and open a PR back to mypy's master branch.
@jamesbraza Sure!
@jamesbraza Should I add a special message when the version mentioned has two decimal digits or a general one?
There should be a message specific to this case (though it should also cover 3.11 and other future versions).
mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigErrorNoSection mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testErrorContextConfig mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineNonPackageContainingPackage mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlinePackage mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineInvalidPackageName mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testBadFileEncoding mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCannotIgnoreDuplicateModule mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testAltConfigFile mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testFlagsFile mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigFile mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigErrorUnknownFlag mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlinePackageSlash mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testNoConfigFile mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testIgnoreErrorsConfig mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigErrorBadFlag mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineNonPackage mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineNonPackageDuplicate mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPerFileConfigSection mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigFollowImportsNormal mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigErrorBadBoolean mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineNonPackageSlash mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPerFileConfigSectionMultipleMatchesDisallowed mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigFollowImportsSilent mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigErrorNotPerFile mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlinePackageContainingSubdir mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testMultipleGlobConfigSection mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigFollowImportsSkip mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigMypyPath mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testFailedImportOnWrongCWD mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPythonVersionTooOld26 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigFollowImportsError mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testTypeshedSensitivePlugins mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testImportInParentButNoInit mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPythonVersionTooOld33 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigFollowImportsSelective mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testDisallowAnyGenericsBuiltinCollections mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigNoErrorForUnknownXFlagInSubsection mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPythonVersionTooNew28 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigFollowImportsInvalid mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testDisallowAnyGenericsTypingCollections mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testDotInFilenameOKScript mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPythonVersionTooNew40 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPythonVersionAccepted27 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigSilentMissingImportsOff mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testSectionInheritance mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testDotInFilenameOKFolder mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPythonVersionAccepted34 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigSilentMissingImportsOn mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testDisallowUntypedDefsAndGenerics mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testParseError mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testMissingFile mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testDotInFilenameNoImport mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPythonVersionAccepted36 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testParseErrorAnnots mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigUnstructuredGlob mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testFollowImportStubs1 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testModulesAndPackages mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPackageRootEmpty mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPythonVersionTooOld10 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testFollowImportStubs2 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testSrcPEP420Packages mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPackageRootEmptyNamespacePackage mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPackageRootMultiple1 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testShadowFile1 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testNestedPEP420Packages mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPackageRootNonEmpty mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPackageRootMultiple2 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testShadowFile2 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testIniFilesGlobbing mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testErrorSummaryOnFail mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testIniFilesCmdlineOverridesConfig mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCacheMap mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testConfigWarnUnusedSection1 mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testErrorSummaryOnFailNotes mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testErrorSummaryOnSuccess mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testIniFiles mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testErrorSummaryOnFailTwoFiles mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testErrorSummaryOnBadUsage mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testDisableInvalidErrorCode mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testEnableAndDisableInvalidErrorCode mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testEnableValidAndInvalidErrorCode mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testDisableValidAndInvalidErrorCode mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testShowSourceCodeSnippetsWrappedFormatting mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testErrorSummaryOnFailTwoErrors mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testTabRenderingUponError mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testShowSourceCodeSnippetsBlockingError mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testErrorMessageWhenOpenPydFile mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testDuplicateModules mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testEnableInvalidErrorCode mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testStubsDirectory mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testStubsSubDirectory mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testStubsSubDirectoryFile mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testBlocker mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlinePackageAndFile mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlinePackageAndIniFiles mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testStubsDirectoryFile mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineNonInteractiveWithoutInstallTypes mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineNonInteractiveInstallTypesNothingToDo mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineNonInteractiveInstallTypesNothingToDoNoError mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineModuleAndIniFiles mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineNonInteractiveInstallTypesNoSitePackages mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineMultipleExclude mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineInteractiveInstallTypesNothingToDo mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineCfgMultipleExclude mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineExclude mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineCfgExclude mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testCmdlineTimingStats
mypy/test/testcmdline.py::PythonCmdlineSuite::cmdline.test::testPythonVersionWrongFormatPyProjectTOML