Python3.2 --- Print函数用法

本文详细介绍了Python3.2中Print函数的使用,包括输出字符串、格式化输出整数和不同进制数、浮点数,以及列表和自动换行的控制。通过实例演示了如何利用print进行有效输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 输出字符串

>>> strHello = 'Hello World' 
>>> print (strHello)
Hello World

2. 格式化输出整数

支持参数格式化,与C语言的printf类似

>>> strHello = "the length of (%s) is %d" %('Hello World',len('Hello World'))
>>> print (strHello)
the length of (Hello World) is 11

3. 格式化输出16进制,十进制,八进制整数

#%x --- hex 十六进制
#%d --- dec 十进制
#%o --- oct 八进制
  >>> nHex = 0xFF
>>> print("nHex = %x,nDec = %d,nOct = %o" %(nHex,nHex,nHex))
nHex = ff,nDec = 255,nOct = 377
Traceback (most recent call last): File "C:\Python310\lib\threading.py", line 1009, in _bootstrap_inner self.run() File "C:\Python310\lib\threading.py", line 946, in run self._target(*self._args, **self._kwargs) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\core\management\commands\runserver.py", line 124, in inner_run autoreload.raise_last_exception() File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\utils\autoreload.py", line 86, in raise_last_exception raise _exception[1] File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\core\management\__init__.py", line 394, in execute autoreload.check_errors(django.setup)() File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\apps\registry.py", line 116, in populate app_config.import_models() File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\apps\config.py", line 269, in import_models self.models_module = import_module(models_module_name) File "C:\Python310\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\apps\question\models\__init__.py", line 1, in <module> from .category import TblQuestionCategory File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\apps\question\models\category.py", line 4, in <module> class TblQuestionCategory(models.Model): File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\db\models\base.py", line 368, in __new__ new_class._meta.apps.register_model(new_class._meta.app_label, new_class) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\apps\registry.py", line 234, in register_model raise RuntimeError( RuntimeError: Conflicting &#39;tblquestioncategory&#39; models in application &#39;question&#39;: <class &#39;apps.question.models.category.TblQuestionCategory&#39;> and <class &#39;question.models.category.TblQuestionCategory&#39;>. (.venv) PS D:\pythonSpace\django-vue3.2-online-exam-master\backend> pip remove question ERROR: unknown command "remove" (.venv) PS D:\pythonSpace\django-vue3.2-online-exam-master\backend> pip uninstall question WARNING: Skipping question as it is not installed. (.venv) PS D:\pythonSpace\django-vue3.2-online-exam-master\backend> python manage.py runserver Watching for file changes with StatReloader Exception in thread django-main-thread: Traceback (most recent call last): File "C:\Python310\lib\threading.py", line 1009, in _bootstrap_inner self.run() File "C:\Python310\lib\threading.py", line 946, in run self._target(*self._args, **self._kwargs) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\core\management\commands\runserver.py", line 124, in inner_run autoreload.raise_last_exception() File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\utils\autoreload.py", line 86, in raise_last_exception raise _exception[1] File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\core\management\__init__.py", line 394, in execute autoreload.check_errors(django.setup)() File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\apps\registry.py", line 116, in populate app_config.import_models() File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\apps\config.py", line 269, in import_models self.models_module = import_module(models_module_name) File "C:\Python310\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\apps\question\models\__init__.py", line 1, in <module> from .category import TblQuestionCategory File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\apps\question\models\category.py", line 4, in <module> class TblQuestionCategory(models.Model): File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\db\models\base.py", line 368, in __new__ new_class._meta.apps.register_model(new_class._meta.app_label, new_class) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\apps\registry.py", line 234, in register_model raise RuntimeError( RuntimeError: Conflicting &#39;tblquestioncategory&#39; models in application &#39;question&#39;: <class &#39;apps.question.models.category.TblQuestionCategory&#39;> and <class &#39;question.models.category.TblQuestionCategory&#39;>. (.venv) PS D:\pythonSpace\django-vue3.2-online-exam-master\backend> grep -r "class tblquestioncategory" ./question/ grep : 无法将“grep”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1 + grep -r "class tblquestioncategory" ./question/ + ~~~~ + CategoryInfo : ObjectNotFound: (grep:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException (.venv) PS D:\pythonSpace\django-vue3.2-online-exam-master\backend> python manage.py runserver Watching for file changes with StatReloader Performing system checks... Exception in thread django-main-thread: Traceback (most recent call last): File "C:\Python310\lib\threading.py", line 1009, in _bootstrap_inner self.run() File "C:\Python310\lib\threading.py", line 946, in run self._target(*self._args, **self._kwargs) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper fn(*args, **kwargs) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\core\management\commands\runserver.py", line 134, in inner_run self.check(**check_kwargs) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\core\management\base.py", line 492, in check all_issues = checks.run_checks( File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\core\checks\registry.py", line 89, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\core\checks\urls.py", line 16, in check_url_config return check_resolver(resolver) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\core\checks\urls.py", line 26, in check_resolver return check_method() File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\urls\resolvers.py", line 531, in check for pattern in self.url_patterns: File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\utils\functional.py", line 47, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\urls\resolvers.py", line 718, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\utils\functional.py", line 47, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\urls\resolvers.py", line 711, in urlconf_module return import_module(self.urlconf_name) File "C:\Python310\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\backend\urls.py", line 20, in <module> from drf_spectacular.views import SpectacularJSONAPIView, SpectacularRedocView, SpectacularSwaggerView File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\drf_spectacular\views.py", line 15, in <module> from rest_framework.views import APIView File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\rest_framework\views.py", line 18, in <module> from rest_framework.schemas import DefaultSchema File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\rest_framework\schemas\__init__.py", line 33, in <module> authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES, File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\rest_framework\settings.py", line 227, in __getattr__ val = perform_import(val, attr) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\rest_framework\settings.py", line 170, in perform_import return [import_from_string(item, setting_name) for item in val] File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\rest_framework\settings.py", line 170, in <listcomp> return [import_from_string(item, setting_name) for item in val] File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\rest_framework\settings.py", line 179, in import_from_string return import_string(val) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\utils\module_loading.py", line 30, in import_string return cached_import(module_path, class_name) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\django\utils\module_loading.py", line 15, in cached_import module = import_module(module_path) File "C:\Python310\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\utils\auth\authentication.py", line 15, in <module> from utils.auth.jwt_util import JwtUtil File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\utils\auth\jwt_util.py", line 9, in <module> from jose import jwt File "D:\pythonSpace\django-vue3.2-online-exam-master\backend\.venv\lib\site-packages\jose.py", line 546 print decrypt(deserialize_compact(jwt), {&#39;k&#39;:key}, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SyntaxError: Missing parentheses in call to &#39;print&#39;. Did you mean print(...)?
07-13
<think>我们有两个主要问题:模型冲突错误(Conflicting models)和语法错误(SyntaxError in jose.py)。让我们分别解决。 ### 问题1:模型冲突错误(Conflicting &#39;tblquestioncategory&#39; models) 根据错误信息: ``` RuntimeError: Conflicting &#39;tblquestioncategory&#39; models in application &#39;question&#39;: <class &#39;apps.question.models.category.TblQuestionCategory&#39;> and <class &#39;question.models.category.TblQuestionCategory&#39;>. ``` 这个错误表明Django在同一个应用(question)中发现了两个同名的模型。从路径看,一个是`apps.question.models.category.TblQuestionCategory`,另一个是`question.models.category.TblQuestionCategory`。这通常是因为两种不同的导入方式导致的。 #### 解决方案: 1. **检查项目结构**: 确保你的项目结构没有将同一个应用以两种方式导入。例如,在`INSTALLED_APPS`中,你可能同时使用了`&#39;question&#39;`和`&#39;apps.question&#39;`。应该统一使用一种方式。 2. **修改`INSTALLED_APPS`设置**: 打开`settings.py`,检查`INSTALLED_APPS`列表。确保你只添加了一次`question`应用。例如: ```python INSTALLED_APPS = [ ... # 只选择一种方式,不要同时出现两种 &#39;question&#39;, # 方式1:直接使用应用名(如果应用在项目根目录下) # &#39;apps.question&#39;, # 方式2:使用带路径的应用名(如果应用在apps目录下) - 但只能选一种 ... ] ``` 3. **检查导入路径**: 在代码中,确保所有导入`TblQuestionCategory`的地方使用统一的路径。例如: - 如果应用在`apps`目录下,应该使用:`from apps.question.models.category import TblQuestionCategory` - 或者使用相对导入:`from .models.category import TblQuestionCategory` 4. **检查模型定义文件**: 确保`TblQuestionCategory`模型只在一个文件中定义。如果因为拆分模型文件导致重复定义,请合并或删除重复定义。 5. **显式指定app_label**(可选): 在模型类中显式指定`app_label`可以避免冲突。在`TblQuestionCategory`的`Meta`类中添加: ```python class TblQuestionCategory(models.Model): # ... 字段定义 class Meta: app_label = &#39;question&#39; # ... 其他Meta选项 ``` 6. **清理并重新生成迁移**: 在修改后,删除所有迁移文件和数据库(或回滚数据库),然后重新生成迁移: ```bash # 删除迁移文件(在question/migrations/目录下,除了__init__.py) # 然后 python manage.py makemigrations python manage.py migrate ``` ### 问题2:SyntaxError in jose.py 根据引用[1]和[2],SyntaxError通常发生在Python语法错误时。错误信息指向`manage.py`文件,但实际可能是依赖库的问题。引用中提到`jose.py`,可能是`python-jose`库。 #### 解决方案: 1. **检查Python版本**: 确保你使用的Python版本符合项目要求。Django 3.2支持Python 3.63.10(注意:Django 4.0以上需要Python 3.8以上)。根据你的路径`C:\Python310`,你使用的是Python 3.10,请确认Django版本兼容性。 2. **更新`python-jose`库**: 这个错误可能是由于`python-jose`库在Python 3.10下的兼容性问题。尝试更新库: ```bash pip install --upgrade python-jose ``` 3. **检查`jose`库的语法**: 如果更新后仍然有问题,可能是库中某个文件在Python 3.10下存在语法错误(比如使用了过时的语法)。打开报错的文件(如`jose.py`),查看错误行(根据引用[1]和[2],错误在`from exc`附近)。在Python 3中,异常捕获的语法是: ```python except SomeException as exc: ``` 而不是: ```python except SomeException, exc: # Python 2 语法 ``` 如果是后者,需要修改为Python 3语法。 4. **临时解决方法**: 如果问题在第三方库中,且你无法修改,可以尝试降级Python版本(如使用Python 3.9)或等待库更新。 ### 总结步骤: 1. **解决模型冲突**: - 统一`INSTALLED_APPS`中的应用路径。 - 统一代码中导入模型的方式。 - 显式指定`app_label`(可选)。 - 清理迁移并重新生成。 2. **解决语法错误**: - 更新`python-jose`库。 - 检查并修改库文件(如果使用旧语法)。 - 考虑降级Python版本或使用虚拟环境指定兼容版本。 ### 相关问题 §§相关问题§§ 1. 如何正确组织Django应用结构以避免模型冲突? 2. 在Django中如何处理第三方库的Python版本兼容性问题? 3. 如何为Django项目选择合适的Python版本?</think>针对您遇到的Django启动错误(模型冲突和语法错误),我将分步提供解决方案: ### 一、模型冲突错误:Conflicting &#39;tblquestioncategory&#39; models **错误原因**: 在`question`应用中检测到两个同名的模型定义: ```python <class &#39;apps.question.models.category.TblQuestionCategory&#39;> <class &#39;question.models.category.TblQuestionCategory&#39;> ``` #### 解决方案: 1. **统一导入路径** 检查所有模型导入语句,确保使用一致的路径格式: ```python # ✅ 正确:统一使用相对路径 from .category import TblQuestionCategory # ❌ 错误:混合绝对/相对路径 from apps.question.models.category import TblQuestionCategory ``` 2. **显式声明app_label** 在冲突模型的Meta类中添加: ```python class TblQuestionCategory(models.Model): # 字段定义... class Meta: app_label = &#39;question&#39; # 显式声明应用归属 db_table = &#39;tbl_question_category&#39; # 自定义表名 ``` 3. **清理迁移历史**(重要步骤) ```bash # 删除所有迁移文件 find . -path "*/migrations/*.py" -not -name "__init__.py" -delete find . -name "*.pyc" -delete # 重建数据库 python manage.py makemigrations python manage.py migrate ``` 4. **检查INSTALLED_APPS配置** 确保`settings.py`中无重复注册: ```python INSTALLED_APPS = [ # ❌ 删除重复项(只能保留一种形式) # &#39;apps.question&#39;, &#39;question&#39;, # ✅ 标准应用名 ] ``` ### 二、SyntaxError in jose.py 语法错误 **错误原因**: 通常由Python版本不兼容或库版本冲突导致,特别是`python-jose`库在Python 3.10+的兼容性问题[^1][^2]。 #### 解决方案: 1. **升级加密库** ```bash pip install --upgrade pyjwt python-jose cryptography ``` 2. **检查Python版本兼容性** 在`requirements.txt`中固定版本: ```python # 添加以下兼容版本 pyjwt==2.4.0 python-jose==3.3.0 cryptography==38.0.4 ``` 3. **修复语法错误(临时方案)** 定位报错的`jose.py`文件(通常在虚拟环境的`site-packages/jose`目录): ```python # 找到类似行: except Exception, e: # ❌ Python2语法 # 改为Python3语法: except Exception as e: # ✅ ``` ### 三、综合验证步骤 1. 清理环境: ```bash pip install -r requirements.txt --upgrade --force-reinstall rm -rf __pycache__ */__pycache__ ``` 2. 按顺序执行: ```bash python manage.py check python manage.py makemigrations python manage.py migrate python manage.py runserver ``` > **注意**:若使用PyCharm,检查运行配置的`Additional options`是否包含非法参数(如`0.0.0.0:8000`),清空该字段后通过命令行参数启动[^4]。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值