jupyter notebook 非阻塞输入一个字符
时间: 2024-10-30 09:03:23 浏览: 28
Jupyter Notebook是一个交互式的计算环境,它支持Python和其他多种编程语言,常用于数据科学、机器学习等领域的数据分析和实验。在Jupyter Notebook中,如果你想非阻塞地获取用户的单个字符输入,通常不会直接像命令行程序那样操作,因为它的交互模式更倾向于线程安全的环境。
然而,你可以利用`input()`函数结合`asyncio`库来实现类似的效果,虽然不是完全意义上的“非阻塞”(因为它会在等待用户输入时暂停),但它可以让你创建一个异步程序,在用户按下回车之前,其他任务仍在继续运行。以下是简单的示例:
```python
import asyncio
async def get_char():
char = await input("请输入一个字符:")
return char
async def main():
user_input = await get_char()
print(f"您输入的字符是:{user_input}")
if __name__ == "__main__":
asyncio.run(main())
```
在这个例子中,`get_char()`函数通过`await`关键字进入等待状态,直到用户输入完成。当你运行这个程序,Jupyter Notebook并不会停止显示其他内容,只是会暂停在`input()`部分。
相关问题
jupyter notebook调用deepseek
### 如何在 Jupyter Notebook 中调用 DeepSeek
为了在 Jupyter Notebook 中成功调用并使用 DeepSeek,需先完成必要的环境配置和依赖安装。确保已获取有效的 API Key 后,按照如下方法操作可以实现对 DeepSeek 的调用。
#### 安装所需库
首先,在 Python 环境下安装 `requests` 库用于发起 HTTP 请求至 DeepSeek API 接口:
```bash
pip install requests
```
接着,在 Jupyter Notebook 单元格内执行上述命令以确保所有必需包都处于最新状态。
#### 创建 API 调用函数
定义一个简单的 Python 函数来进行 API 调用,并允许设置参数如查询字符串、请求头等。此函数支持两种模式——阻塞式(默认)与非阻塞性(流式),后者可通过传递额外参数开启[^2]。
```python
import requests
def call_deepseek_api(api_key, query_string, use_stream=False):
url = "https://api.deepseek.com/v1/search"
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
}
params = {'q': query_string}
response = None
if not use_stream:
response = requests.get(url, headers=headers, params=params)
else:
response = requests.get(url, headers=headers, params=params, stream=True)
return response.json() if not use_stream else response.iter_lines()
```
#### 使用示例
现在可以在同一个笔记本文件中的其他单元格里轻松地利用该函数发送请求给 DeepSeek 并处理返回的数据了。下面给出了一段完整的例子,展示了怎样传入关键词作为搜索条件并打印部分结果摘要。
```python
API_KEY = '<your-api-key-here>' # 替换成自己的 api key
query = 'artificial intelligence'
response_data = call_deepseek_api(API_KEY, query)
for item in response_data['results'][:5]:
print(f"Title: {item['title']}\nDescription: {item['description']}\n---\n")
```
对于希望采用流式传输方式接收数据的情况,则只需调整最后一个参数即可获得迭代器对象,从而逐行读取服务器推送过来的内容片段。
阅读全文