在浏览了pyaudio的文档并阅读了网上的其他文章后,如果我的理解是正确的,我会感到困惑.
这是在pyaudio网站上找到的录音代码:
import pyaudio
import wave
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"
p = pyaudio.PyAudio()
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
print("* recording")
frames = []
for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print("* done recording")
stream.stop_stream()
stream.close()
p.terminate()
Run Code Online (Sandbox Code Playgroud)
如果我添加这些行,那么我可以播放我记录的任何内容:
play=pyaudio.PyAudio()
stream_play=play.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
output=True)
for data in frames:
stream_play.write(data)
stream_play.stop_stream()
stream_play.close()
play.terminate()
Run Code Online (Sandbox Code Playgroud)
pyaudio.get_sample_size(pyaudio.paInt16). …我不明白什么时候应该在 python 的结构库中使用打包和解包函数?我也无法理解如何使用它们?读完之后,我的理解是它们用于将数据转换为二进制。但是,当我运行一些示例时:
>>> struct.pack("i",34)
'"\x00\x00\x00'
Run Code Online (Sandbox Code Playgroud)
我无法理解它。我想了解它的目的,这些转换是如何发生的,'\x' 和其他符号代表什么/意味着什么以及解包如何工作。
我无法理解这个程序的输出:
#include<iostream>
using namespace std;
int main()
{
int x = 1 , y = 1, z = 1;
cout << ( ++x || ++y && ++z ) << endl; //outputs 1;
cout << x << " " << y << " " << z ; //x = 2 , y = 1 , z = 1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
1
2 1 1
Run Code Online (Sandbox Code Playgroud)
如果||被评为第一,然后这个输出是好的,但是这个文章说,&&比一个更高的优先级||,因此必须首先评估.如果是这种情况那么根据我的输出应该是:
1
1 2 2
Run Code Online (Sandbox Code Playgroud)
如++y …
我无法理解为 ZonedDateTimeClass 中的 plusDays() 方法提供的文档的特定部分。文件指出:
\n\n\n返回添加了指定天数的此 ZonedDateTime 的副本。
\n这在本地时间线上运行,将天数添加到本地日期时间。然后使用区域 ID 获取偏移量,将其转换回 ZonedDateTime。
\n当转换回 ZonedDateTime 时,如果本地日期时间处于重叠状态,则如果可能,将保留偏移量,否则将使用较早的偏移量。如果存在间隙,则本地日期时间将向前调整\n间隙的长度。
\n该实例是不可变的并且不受该方法调用的影响。
\n参数:days \xe2\x80\x93 要添加的天数,可以为负数
\n返回:基于此日期时间并添加了天数的 ZonedDateTime,\n不为 null
\n抛出: DateTimeException \xe2\x80\x93 如果结果超出支持的日期\n范围
\n
我的理解是:假设我们有 ZonedDateTime 对象代表September 4, 2022 6 PM in America/New_York TimeZone. 所以这个方法会先将其转换为LocalDateTime,即会丢失时区信息,只保留September 4, 2022 6 PM。它将向其添加一些天数,假设为 7,以便结果为September 11, 2022 6 PM,现在它将通过提供与时区相关的信息将其转换回 ZonedDateTime 对象。
但是,我无法理解文档的后半部分,即
\n\n\n当转换回 ZonedDateTime 时,如果本地日期时间处于重叠状态,则如果可能,将保留偏移量,否则将使用较早的偏移量。如果存在间隙,则本地日期时间将向前调整\n间隙的长度。
\n
他们的意思是什么local date-time is in an overlap …
我刚刚开始学习python网络编程。我正在阅读 Python 网络编程基础,但无法理解 s.shutdown(socket.SHUT_WR) 的使用,其中 s 是套接字对象。这是使用它的代码(其中 sys.argv[2] 是用户想要发送的字节数,四舍五入为 16 的倍数):
import socket, sys
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
HOST = '127.0.0.1'
PORT = 1060
if sys.argv[1:] == ['server']:
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((HOST, PORT))
s.listen(1)
while True:
print 'Listening at', s.getsockname()
sc, sockname = s.accept()
print 'Processing up to 1024 bytes at a time from', sockname
n = 0
while True:
message = sc.recv(1024)
if not message:
break
sc.sendall(message.upper()) # send it back uppercase
n += len(message)
print '\r%d bytes processed …Run Code Online (Sandbox Code Playgroud) 我无法理解colormap它是如何工作的以及它是如何使用的.
我正在完成一个编程任务,我在其中提供了一些使用的代码colormap,但是我无法理解它究竟完成了什么.
这是一个浓缩代码:
colormap(gray);
h = imagesc(display_array, [-1 1]);
Run Code Online (Sandbox Code Playgroud)
这里display_array包含灰度图像的像素强度.
我读了这篇文章并略微理解这colormap是一个矩阵,其中包含任意数量的行和3列,其值介于0和之间1.
我检查了灰度图像中像素强度的值,-1并在和之间找到了值2.现在我无法理解mapping这个图像与colormap上面文章中提到的内容之间的关系.只是对如何发生这种情况的高层次想法会有所帮助.