Python小程序 - 文件處理3:正則表達式

正則表達式:文本年鑒表。遺留的問題很多。。。用AI再想想

  1. 需求:讀入txt文件,過濾文件有關年記錄
    0)讀入txt文件
    1)以“。”,中文句號,為界區分一句,最小統計單位
    2)年格式:YYYY,4位
    3)輸出:YYYY:所在句子內容
    4)說明
    ? ? ? -??一句中包含多個年的,以“,”,中文逗號連接
    ? ? ? - 剔除句中的非文字內容:換行符,非正常的標號等
    ? ? ? - 按行輸出過濾到的有關年記錄
  2. AI提問 -- AI的思考過程幫助我們理清思路、補充異常處理過程
    DeepSeek文心一言
    你是python專家,請用正則表達式對文本進行處理
    1. 以中文句號開頭、結尾為一個獨立句子,兩個句號之間為句子內容
    2. 句子中不再包含句號
    3. 提出每個句子中的4位數字作為年份標識

    好的,我現在需要解決用戶的問題,使用正則表達式處理文本,按照他們的三個要求來做。首先,我需要仔細理解每個要求的具體含義。

    第一個要求是,以中文句號開頭和結尾作為一個獨立句子,兩個句號之間的內容是句子內容。也就是說,每個句子應該被兩個中文句號包圍,比如“。這是一個例子。”這樣的結構。但這里可能存在一點疑問,用戶是不是指句子以中文句號開頭和結尾?比如,整個文本中的句子被分割成類似“。內容。”的結構?或者可能用戶的意思是以中文句號作為分隔符,比如兩個中文句號之間的部分是一個句子?比如文本可能是“。句子一。句子二。”這樣,每個句子被包裹在兩個句號之間?

    這個時候可能需要進一步分析,但根據常規情況,可能用戶的意思是,用兩個中文句號來分割句子,例如句子被包裹在“。”之間。比如,文本中的結構是“。句子內容。”,然后另一個句子是另一個“。另一個句子。”。這種情況下,需要提取兩個句號之間的內容作為獨立句子,而每個獨立句子本身不應該包含句號

    第二個要求是,句子中不再包含句號,也就是每個提取出來的句子內部沒有句號,這可能意味著在分割句子的時候,必須確保在兩個中文句號之間的內容里不含有其他句號。

    第三個要求是提取每個句子中的4位數字作為年份標識,比如像“2023”這樣的年份。

    那現在,我需要分步驟處理:

    第一步,使用正則表達式來分割文本,提取出所有以中文句號開頭和結尾的句子。這里可能需要用正則表達式來匹配兩個中文句號之間的內容,但要注意可能存在其他句號的情況。不過根據第二個條件,句子內部不應包含句號,所以可能每個匹配的部分必須不包含中文句號或者其他類型的句號?

    不過,用戶的第二個條件說明句子中不再包含句號,所以分割后的句子內部不會有句號。這可能意味著,在分割的時候,確保兩個中文句號之間的內容不包含任何句號,或者用戶在輸入文本中的句子已經被正確分割,只需要正確匹配結構?

    這里可能需要用正則表達式來找到所有符合“。”開頭和結尾,中間不含句號的字符串。

    例如,正則表達式可能是 r'。([^。]*)。',但需要確認是否正確。不過中文句號的Unicode是“\u3002”,所以可能需要使用unicode編碼。或者用戶提供的文本中是否使用全角句號?

    假設處理的是中文文本,中文句號是“。”,那么正則表達式應該匹配這個符號。所以可能的正則式是:r'。(.*?)。',但是這樣可能會匹配中間有內容的句子,但根據條件,句子中不能包含句號,所以中間的內容應該不含句號。所以,可能需要使用否定字符類,即中間不包含“。”的內容。

    所以正確的正則表達式可能是:r'。([^。]+)。',這樣匹配兩個中文句號之間的非句號字符組成的字符串。這里用+確保至少有一個字符,避免匹配空句子。

    這樣,第一步可以提取出所有符合條件的句子。

    接下來,對于每個提取的句子,需要從中找出4位數字作為年份。通常年份是介于1000到9999之間的數字,但用戶可能只需要任何4位連續數字。比如,正則表達式可以是r'\d{4}',但需要注意是否可能包含其他情況,比如數字周圍是否有邊界,或者是否可能與其他數字相連,例如5位數字中的前四位或后四位。不過用戶可能希望單獨提取4位數字,所以可能需要使用邊界判斷,比如\b\d{4}\b,但中文中可能沒有單詞邊界,所以可能需要使用環視斷言,確保前后不是數字。

    因此,正確的正則表達式可能是r'(?<!\d)\d{4}(?!\d)',這樣確保匹配的是獨立的4位數字,不會在更長數字中的一部分。

    所以綜合起來,步驟如下:

    1. 使用正則表達式找到所有以中文句號包圍且中間不含中文句號的句子。

    2. 對每個找到的句子,使用正則表達式提取其中的4位數字作為年份。

    3. 返回每個句子對應的年份列表。

    現在需要考慮代碼的結構。例如,輸入的文本可能包含多個句子,每個句子被兩個中文句號包圍,但可能存在前后空格或其他情況,所以需要處理可能的空白字符?

    例如,如果句子是“。 這是一個例子,2023年。。”,中間可能有空格,或者在句號周圍有空格?用戶是否允許這樣的情況?

    可能需要調整正則表達式,允許在中文句號前后有空格。例如,正則表達式可能修改為r'\s*。\s*([^。]+)\s*。\s*',這樣忽略句號前后的空格。但具體要看用戶的需求。

    此外,用戶提供的例子可能需要處理不同的情況,但根據用戶的問題描述,可能不需要處理空格,所以暫時假設中文句號是嚴格相連的,即句子是緊跟在句號后的,沒有空格。或者可能在處理時需要考慮可能存在的空格,例如使用\s*來匹配可能的空白。

    現在,代碼的大致思路是:

    - 用正則表達式找到所有符合條件的句子。

    - 對每個句子,提取其中的4位數字。

    - 最后返回一個字典或列表,其中每個句子對應提取到的年份。

    比如,輸入文本可能是:“。這是一個測試句子,2023年。另一個句子,包含1999和2020。”,那么分割后的句子應該是“這是一個測試句子,2023年”和“另一個句子,包含1999和2020”,然后分別提取其中的2023,以及1999和2020。

    接下來,編寫代碼示例:

    首先,導入re模塊。

    然后,定義處理函數:

    def extract_years(text):

    # 分割句子

    sentences = re.findall(r'。([^。]+)。', text)

    result = {}

    for idx, sentence in enumerate(sentences, 1):

    years = re.findall(r'(?<!\d)\d{4}(?!\d)', sentence)

    result[f"Sentence {idx}"] = years

    return result

    測試這個函數,假設輸入文本為:

    text = "。這是2023年的例子。另一個句子里有1999和2020年。"

    那么,sentences會被匹配為 ['這是2023年的例子', '另一個句子里有1999和2020年']

    然后,對第一個句子,找到2023;第二個句子找到1999和2020。

    注意,第二個句子的“2020年”中的2020會被正確提取,因為后面的“年”不是數字,所以(?<!\d)和(?!\d)確保前后沒有其他數字。

    但需要測試,例如如果句子中有數字如12345,那么中間的四個數字是否會被匹配?例如,12345中的2345是否會被匹配?但根據正則表達式中的(?<!\d)\d{4}(?!\d),只有當四個數字前后都不是數字時才會被匹配。例如,在“12345”中,可能無法匹配到任何四位數字,因為它里面都是連續五位,所以不會找到四位獨立的情況。因此,這個正則表達式是正確的。

    現在,測試另一個例子,比如句子中有“編號是1234”,則會提取1234,而如果有“編號12345”,則不會提取任何四位數字,因為1234后面有一個5,所以后面的斷言失敗。

    綜上,這樣的代碼應該可以滿足用戶的需求。但需要處理可能的邊界情況,例如句子中存在多個四位數字,或者沒有四位數字的情況。

    最后,返回的結果結構是字典,鍵是“Sentence 1”、“Sentence 2”等,值是對應的年份列表。

    可能用戶希望結果以這樣的結構呈現,所以這個代碼應該符合要求。

    使用正則表達式處理文本,以提取符合特定格式的句子及其中的四位數字年份。首先,我需要明確任務的具體要求。用戶提到,句子以中文句號開頭和結尾,且句子內部不再包含句號。同時,需要提取每個句子中的四位數字作為年份標識。

    首先,我應該考慮如何正確分割句子。由于句子以句號開頭和結尾,且句子之間可能由其他句號分隔,但需要確保每個句子獨立。例如,文本可能是“。這是第一個句子。這是第二個句子。”,需要分割成兩個句子:“。這是第一個句子。”和“。這是第二個句子。”。不過,用戶提到兩個句號之間為句子內容,可能意味著句子的結構是“。內容。”,所以正確的分割應該是以句號開頭和結尾的部分作為一個句子。

    接下來,需要處理句子中的內容,確保其中不再包含句號。但根據用戶的描述,可能句子本身在分割后已經確保了內部沒有句號,或者需要進一步檢查并移除內部的句號。不過,用戶的第二點說明句子中不再包含句號,可能意味著在分割后的句子中,內容部分不應有句號,因此在處理時需要確保這一點。

    然后,提取每個句子中的四位數字作為年份。這里需要考慮四位數字可能出現在句子的任何位置,且可能有多個四位數字,但用戶可能希望提取第一個出現的四位數字,或者所有四位數字。但根據問題描述,用戶可能希望提取每個句子中的一個四位數字作為年份標識,可能需要確認是否每個句子中只有一個四位數字,或者如何處理多個的情況。

    現在,我需要構建正則表達式來匹配整個句子結構。首先,句子的模式是:以句號開頭,接著是任意字符(除句號外),然后以句號結尾。但用戶提到兩個句號之間為句子內容,所以可能句子的結構是“。內容。”,其中內容可以包含任何字符,除了句號。或者,可能允許內容中有其他句號,但根據第二點,句子中不再包含句號,因此內容部分不能有句號。

    因此,正則表達式應該匹配以句號開頭和結尾,且中間內容不包含句號的句子。例如,模式為:.([^。]+).

    然后,對于每個匹配的句子,需要提取其中的四位數字。四位數字的正則表達式為:\b\d{4}\b,但需要確保匹配的是四位數字,且可能作為年份出現。

    接下來,處理步驟可能是:

    使用正則表達式分割文本為句子,每個句子以句號開頭和結尾,且中間沒有句號。 對于每個句子,提取其中的四位數字。

    但可能存在一些邊緣情況,例如句子中沒有四位數字,或者四位數字出現在不適當的位置。需要根據用戶需求決定如何處理這些情況,比如忽略沒有四位數字的句子,或標記為無年份。

    現在,我需要考慮如何用Python實現這一點。首先,使用re.findall來找到所有符合句子模式的部分。然后,對每個句子,使用re.search來查找四位數字。

    可能的代碼結構:

    import re

    text = "。這是2020年的一個例子。另一個句子包含1999年和2005年。"

    分割句子

    sentences = re.findall(r'.([^。]+).', text)

    for sentence in sentences:
    # 提取四位數字
    year_match = re.search(r'\b\d{4}\b', sentence)
    if year_match:
    year = year_match.group()
    print(f"句子: {sentence},年份: {year}")
    else:
    print(f"句子: {sentence},無年份")

    但這里可能存在一個問題,即原句中的句號被包含在匹配結果中,例如原句是“。內容。”,而findall的結果可能只捕獲內容部分,即句子變量是“內容”,而不包括前后的句號。或者,可能正則表達式需要調整,以正確捕獲整個句子包括句號。

    例如,原文本是“。句子內容。”,使用正則表達式r'.([^。]+).',則匹配到的是整個句子,包括前后的句號,而group(1)是內容部分。因此,可能需要調整正則表達式,以正確捕獲整個句子。

    或者,可能應該使用re.finditer來遍歷所有匹配項,并獲取整個句子,包括句號。

    例如:

    pattern = r'.([^。]+).'

    for match in re.finditer(pattern, text):
    sentence = match.group(0) # 整個匹配的句子,包括句號
    content = match.group(1) # 內容部分,不包括句號
    # 提取年份
    year_match = re.search(r'\b\d{4}\b', content)
    if year_match:
    year = year_match.group()
    print(f"句子: {sentence},年份: {year}")
    else:
    print(f"句子: {sentence},無年份")

    這樣,sentence變量將包含整個句子,包括前后的句號,而content是中間的內容。然后,在content中查找四位數字。

    但用戶的要求是句子以句號開頭和結尾,且句子中不再包含句號,因此content部分不應有句號。因此,在提取年份時,只需要在content中查找即可,因為content已經確保沒有句號了。

    不過,可能用戶提供的文本中,句子之間可能有其他句號,例如多個句號分隔,但根據用戶的要求,兩個句號之間為一個句子,因此正確的分割應該是每個句子由兩個句號包圍,且中間沒有句號。

    例如,文本可能是“。句子1內容。句子2內容。句子3內容。”,分割后得到三個句子:“。句子1內容。”,“。句子2內容。”,“。句子3內容。”。

    因此,正則表達式應該正確匹配這種模式。

    現在,測試一下正則表達式:

    例如,文本為“。這是2020年的例子。另一個例子是1999年。”,使用正則表達式r'.([^。]+).',finditer將找到兩個匹配項,每個匹配項是整個句子,包括句號,而group(1)是內容部分。

    然后,在內容部分提取四位數字。

    但可能用戶希望將整個句子(包括句號)作為處理對象,而不僅僅是內容部分。例如,句子是“。內容。”,而年份可能出現在句子的任何位置,包括開頭或結尾,但根據用戶的描述,年份是句子中的一個四位數字,因此需要確保在句子內容中提取。

    現在,考慮可能的錯誤情況,例如句子中沒有四位數字,或者四位數字出現在不適當的位置,例如“abc1234def”,其中1234是四位數字,應該被提取。

    綜上,代碼的大致步驟是:

    使用正則表達式分割文本為句子,每個句子以句號開頭和結尾,中間沒有句號。 對每個句子,提取其中的四位數字作為年份。

    現在,編寫Python代碼:

    首先,導入re模塊。

    然后,定義文本。

    接著,使用re.finditer來遍歷所有匹配的句子。

    對于每個句子,使用re.search查找四位數字。

    最后,輸出結果。

    可能的代碼:

    import re

    def extract_sentences_and_years(text):
    # 匹配以句號開頭和結尾的句子,中間不包含句號
    sentence_pattern = r'.([^。]+).'
    sentences = []
    for match in re.finditer(sentence_pattern, text):
    sentence = match.group(0) # 整個句子,包括句號
    content = match.group(1) # 內容部分,不包括句號
    # 提取四位數字年份
    year_match = re.search(r'\b\d{4}\b', content)
    year = year_match.group() if year_match else None
    sentences.append((sentence, year))
    return sentences

    示例文本

    text = "。這是2020年的一個例子。另一個句子包含1999年和2005年。沒有年份的句子。"

    處理文本

    results = extract_sentences_and_years(text)

    輸出結果

    for sentence, year in results:
    print(f"句子: {sentence},年份: {year}")

    但這里可能存在一個問題,即如果句子中有多個四位數字,例如“句子包含1999年和2005年”,則re.search只會找到第一個匹配項,即1999年。如果用戶希望提取所有四位數字,可以使用re.findall,但根據用戶需求,可能只需要提取一個年份標識,因此取第一個即可。

    此外,需要確保四位數字是獨立的,即作為單獨的詞出現,或者被非數字字符包圍。例如,使用\b來匹配單詞邊界,確保四位數字前后沒有數字。

    例如,在字符串“abc2020def”中,2020會被匹配,而在“20200”中,不會被匹配,因為不是四位。

    現在,測試示例文本:

    text = "。這是2020年的一個例子。另一個句子包含1999年和2005年。沒有年份的句子。"

    處理后的結果應該是:

    句子: 。這是2020年的一個例子。,年份: 2020
    句子: 。另一個句子包含1999年和2005年。,年份: 1999
    句子: 。沒有年份的句子。,年份: None

    這樣,第三個句子沒有年份,返回None。

    用戶可能需要處理這種情況,例如忽略沒有年份的句子,或者標記為無。根據用戶需求,可能需要調整代碼,例如只保留有年份的句子。

    此外,可能用戶希望年份出現在句子中的任何位置,而不僅僅是內容部分,但根據問題描述,句子已經確保內部沒有句號,因此年份應該出現在內容部分。

    綜上,代碼應該能夠正確提取符合要求的句子及其中的四位數字年份。

    - DeepSeek代碼

    import redef process_text(text):# 提取所有以中文句號包圍且不包含內部句號的句子sentences = re.findall(r'。([^。]+)。', text)result = {}for i, sentence in enumerate(sentences, 1):# 提取句子中的4位年份數字years = re.findall(r'(?<!\d)\d{4}(?!\d)', sentence)result[f"Sentence {i}"] = {"content": sentence,"years": years if years else None}return result# 示例用法
    text = "。這是2023年的例子,包含多個年份如1998和2020。另一個句子。這個沒有年份。最后一個2024案例。"
    output = process_text(text)# 打印結果
    for key, value in output.items():print(f"{key}:")print(f"   內容:{value['content']}")print(f"   年份:{value['years']}\n")

    - 文心一言 代碼

    import redef extract_sentences_with_years(text):# 匹配以句號開頭和結尾的獨立句子(中間不含句號)sentence_pattern = r'\.([^。]+)\.'results = []# 使用finditer遍歷所有匹配項for match in re.finditer(sentence_pattern, text):full_sentence = match.group(0)  # 包含句號的完整句子content = match.group(1)        # 句子內容(不含句號)# 在內容中查找4位數字年份(匹配單詞邊界確保獨立數字)year_match = re.search(r'\b\d{4}\b', content)# 提取年份或標記為Noneyear = year_match.group() if year_match else Noneresults.append({"sentence": full_sentence,"year": year})return results# 示例用法
    text = "。這是2020年的示例文本。第二個句子包含1998和2005兩個年份。沒有數字的句子。最后測試2023年。"processed = extract_sentences_with_years(text)# 打印結果
    for item in processed:print(f"句子:{item['sentence']} | 年份:{item['year']}")

  3. 問題與改進
    # 連續的兩句包含4位數字
    fr = fr.replace("。","。。")   # why omit when 4 digital exist 2 continuous sentenses, fill 1 more "。"; no found more effe # 4全數字并非真實意義的年
    pattern = re.compile(r'\。[^。]*1[6-9]\d{2}[^。]*\。') # year start with 1
    pattern = re.compile(r'\。[^。]*20\d{2}[^。]*\。')     # year start with 2
  4. 代碼實現
import os, redef show_year(file_name, out_file):with open(file_name, "r", encoding="UTF8") as fp:fr = fp.readlines()  # get file contentfr = ''.join(fr)fr = fr.replace("\n","")fr = fr.replace("。","。。")   # why omit when 4 digital exist 2 continuous sentenses, fill 1 more "。" pattern = re.compile(r'\。[^。]*[12]\d{3}[^。]*\。')yl = re.findall(pattern,fr)   # get sentense with 4 digitalds = {}for fm in yl:pattern = re.compile(r'\d{4}')gy = re.findall(pattern, fm)   # get 4 digital, which yeary = ','.join(gy)ds[y] = fm.replace("。","")    # no show "。"yl = list(ds.keys())    # get year listyl.sort()               # sort year and then show as ascendwith open(out_file, "w", encoding="UTF8") as fo:for i in yl:print(i,": ", ds[i])  # show year and sentencefo.writelines(i + ": " + ds[i] + '\n')   # output result to fileif __name__ == "__main__":out_file = 'year_out.txt'     file_name = "yck.txt"
##    file_name = "繁榮與衰退.txt"file_path = os.path.abspath(os.curdir) + "\\" + file_nameshow_year(file_path, out_file)################################ output
1000: 相比之下,全美新生兒死亡率為每1000名中有197名死亡
1000,1870,1000: 死亡的還不僅僅是人類:戰前美國每1000人擁有749頭牛,到1870年降至每1000人僅擁有509頭牛,這主要是由于南方各州大量屠宰了這些牲口
1001: 用美國電話電報公司總經理的話來說,這個實驗室所積攢的“1001項小專利”把競爭對手擋在了門外
1028: 歐文·費雪組織了1028名經濟學家聯名反對這項法案,全美324家新聞報紙中有238家敦促國會不要通過這項法案
1036: 密西西比河三角洲最大的農場主斯蒂芬·鄧肯(Stephen Duncan)擁有1036名奴隸
1058,7755: 拉斐特學院的妮科爾·克雷思(Nicole Crain)和馬克·克雷恩(MarkCrain)計算得出,對雇員人數在19人以下的企業,聯邦法規遵從的單個雇員花費是10585美元;而雇員人數在500人以上的,相應的花費為7755美元
1093: 美國人天生就支持熊彼特的經濟學理念,也就是說,他們相信推動歷史變革的真正動力不是工人,而是那些能夠憑空創造出新事物的發明家,如擁有1093項專利的愛迪生,有能力創建大型企業的企業家亨利·福特、托馬斯·沃森和比爾·蓋茨
1100: 20世紀50年代,列出所有新條例的《聯邦公報》(FederalRegister )以年均11000頁的速度更新
1164: 如果走河道,匹茲堡和圣路易斯之間的距離是1164英里
1202,2222,1997: 他們得到的結果令人震驚:一部電話機需要1202美元,一輛自行車需要2222美元,而1997年這些商品的實際售價遠低于測算值,這說明根據工資水平調節之后的物價出現了大幅下降
1220,1040: 美國工業的問題波及消費經濟的其他領域:新建房屋數量下降了近200萬套——從20世紀60年代的1220萬套降至20世紀70年代的1040萬套
1300: 奴隸制的幽靈甚至還糾纏著當時尚未存在的金融品牌:在回顧自己的歷史收購案之后,大通銀行驚訝地發現,自己曾經收購的路易斯安那州市民銀行和新奧爾良運河銀行都曾以奴隸為抵押品向農場主放貸,涉及的奴隸總數超過13000人
1500: 另一方面,他在貿易上采取了一個危險的政策,退出跨太平洋伙伴關系,對從各國(尤其是中國)進口的鋼材增收25%的關稅,對進口的鋁材增收10%的關稅,并威脅稱要對從中國進口的貨物再增收1500億美元的關稅
1550: 由于人口密度的不斷增加,“高危”水壩的數量已上升至至少15500座
........................
........................
2022: 目前的計劃是到2022年把退休年齡推遲到67歲
2034,2029:  [17] 沒有這樣的改變,社會保險信托基金到2034年就會透支,醫療保險基金也會在2029年用盡
2200: 阿勒格尼山海拔2200英尺,在只能靠運河運輸的年代,這座山就是橫在匹茲堡和克利夫蘭之間的一道無法逾越的天然屏障,而在人們建好鐵路之后,這兩個城市之間的線路變成了全球運輸最繁忙的線路
2239: 里根第一次就任總統時,道瓊斯工業平均指數為951點,8年后躍升至2239點,這就是最好的詮釋
2319: 《多德–弗蘭克法案》有2319頁
2500: 20世紀50—60年代,超過2500萬名美國人死于車禍,數百萬人因車禍受傷
2500,2000:  [3] 戰后有約2500萬名俄羅斯人和約2000萬名德國人無家可歸
2800,1100: 羅斯福獲得的選票比歷史上任何一位候選人獲得的選票都多——得票總數為2800萬張,超越競爭對手1100萬張
2853: 非郵政體系聯邦政府公務員對普通民眾的比例為1∶2853
3000,1400: 更糟的還在后面:在未來20年,65歲及以上的美國人數量會增加3000萬,而適齡(18~64歲)美國工人的數量預計只會增加1400萬
3000,1947,1957,1966: 二戰之前,美國公眾在醫療方面的支出每年不超過3000萬美元,但戰爭結束之后,民眾在醫療健康領域的消費接連出現新的峰值:1947年達到1.497億美元,1957年達到10億美元,1966年達到50億美元
4000,1932: 廣播也為不容易與人親近的人物提供了展現自己的平臺:查爾斯·庫格林(Charles Coughlin)神父被人們稱為“廣播神父”,他平均每周要收到4000封聽眾來信,1932年2月來信數量達到了120萬封,正是因為當時他批評胡佛總統是“有錢人的圣靈、華爾街的保護天使”
4800,1952,1982: 一項針對4800名出生于1952—1982年的非洲裔美國人的研究顯示,69%的人在成年后留在了同一個縣,82%的人留在同一個州,90%的人留在同一個地區,而他們上一代人的相應比例分別為50%、65%和74%
5000,2000: 19世紀40年代,美國境內鋪設了5000英里鐵軌,19世紀50年代則鋪設了20000英里鐵軌
5100,2500:  [23] 除此之外,美國還需償還戰爭時期欠下的巨額債務:根據《邦聯條例》成立的新聯邦政府需要償還5100萬美元債務(各州還需額外承擔州政府應償還的2500萬美元債務),但當時的政府沒有能力通過征稅增加財政收入
5760,8123,2016,1539: 就人均GDP而言,美國仍然遠遠領先于中國:57608美元對8123美元(2016年數據,按購買力平價計算,為15395美元)
6150: 20世紀20年代,美國社會經濟的蓬勃發展和限制性條件更嚴格的移民法案的出臺,使這種狀況發生了改變:有615000名黑人,或者說相當于8%的南方黑人勞動力向北方遷移,他們填補了原本應該由外國移民從事的工作
6500,1500: 到19世紀80年代中期,他建設了三家巨型煉油廠,每天一共可以生產6500桶油,而此前的單日最大產量僅為1500桶
8000,2001: 開展證券化業務的人在(嚴重膨脹的)信用評級的保護下,似乎能在全球市場中為自己的產品找到不受限制的客戶群體,他們把產品賣給了冰島的銀行,賣給了亞洲甚至中東的主權基金,次級抵押貸款擔保的證券化產品的賬面價值一度達到8000億美元,相當于2001年年底總規模的7倍

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75412.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75412.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75412.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【antd + vue】Tree 樹形控件:默認展開所有樹節點 、點擊文字可以“選中/取消選中”節點

一、defaultExpandAll 默認展開所有樹節點 1、需求&#xff1a;默認展開所有樹節點 2、問題&#xff1a; v-if"data.length"判斷的層級不夠&#xff0c;只判斷到了物理那一層&#xff0c;所以只展開到那一層。 3、原因分析&#xff1a; 默認展開所有樹節點, 如果是…

Notepad++安裝Markdown實時預覽插件

具體操作 打開notepad -> 插件 -> 插件管理 -> 可用 -> “Markdown Panel” -> 安裝&#xff0c;安裝完成后工具欄點擊"Markdown Panel"按鈕。 注意&#xff1a;由于網絡等原因可能安裝失敗 導致工具欄沒出現""Markdown Panel"按鈕&am…

OpenHarmony如何編譯安裝系統應用(以settings設置為例)

開發環境 1.OpenHarmony 2.DevEco Studio 3 .Full Sdk 實現步驟 1.獲取設置應用源碼 https://gitee.com/openharmony/applications_settings/tree/OpenHarmony-v5.0.0-Release/ 2,使用 DevEco Studio 和 Full SDK對系統應用進行簽名,默認工程是未配置簽名的狀態,所構建…

【ESP32-microros(vscode-Platformio)】

一、步驟 1、目前支持ESP32 2、同一個局域網 3、上位機要安裝代理&#xff08;電腦或者linux設備&#xff09; 4、可直接通過USB下載&#xff0c;也可以使用官方燒錄工具&#xff0c;具體的分區表地址要從USB燒錄的時候日志查看&#xff0c;一共四個文件&#xff0c;第三個…

.NET MAUI教程2-利用.NET CommunityToolkit.Maui框架彈Toast

在上一篇博文的基礎上繼續操作&#xff1a; .NET MAUI教程1-入門并發布apk包安裝到真機-CSDN博客 本文內容參考&#xff1a; Toast - .NET MAUI Community Toolkit - Community Toolkits for .NET | Microsoft Learn 1 在NuGet包管理器中安裝 MAUI Community Toolkit&…

軟件工程(應試版)圖形工具總結(二)

遇到的問題,都有解決方案,希望我的博客能為你提供一點幫助。 教材參考《軟件工程導論(第六版)》 七、 層次圖(H圖)與HIPO圖 1、概述 1.1、層次圖(Hierarchy Chart / H圖) ?核心定義 ?目的:描述軟件系統的層次結構,體現模塊的從屬關系。?適用階段:自頂向下設計…

java基礎 流(Stream)

Stream Stream 的核心概念核心特點 Stream 的操作分類中間操作&#xff08;Intermediate Operations&#xff09;終止操作&#xff08;Terminal Operations&#xff09; Stream 的流分類順序流&#xff08;Sequential Stream&#xff09;并行流&#xff08;Parallel Stream&…

EAL4+ vs EAL7:高安全場景下的等級選擇策略

在數字化浪潮席卷全球的當下&#xff0c;信息安全已然成為各行各業穩健發展的基石。特別是在高安全需求場景中&#xff0c;選擇契合的安全等級成為保障信息資產安全的關鍵。EAL&#xff08;Evaluation Assurance Level&#xff09;評估保障級作為衡量信息技術產品安全保障能力的…

【Java集合】TreeSet、TreeMap源碼解讀

參考筆記&#xff1a;java TreeSet 和 TreeMap 源碼解讀-CSDN博客 目錄 1.前言 2.紅黑樹 2.1 紅黑樹的五大性質 2.2 節點顏色的初始設置 2.3 插入新節后的調整 2.4 刪除結構后的調整 2.5 排序規則 2.6 設計紅黑樹的原因 3.TreeSet簡介、底層實現 3.1 TreeSet簡介 3.…

【C++初學】C++核心編程技術詳解(二):類與繼承

函數提高 3.1 函數默認參數 函數的形參可以有默認值&#xff0c;調用時可以省略這些參數。 示例代碼&#xff1a; int func(int a, int b 10, int c 10) {return a b c; }int main() {cout << "ret " << func(20, 20) << endl;cout <<…

Next.js + Droplet:高并發視頻內容平臺部署與優化擴展實戰

在構建在線服務時&#xff0c;無論你是開發者還是企業技術負責人&#xff0c;擴展性和穩定性始終是繞不開的核心挑戰。尤其在涉及高并發訪問、大量數據傳輸和持續內容分發的場景中&#xff0c;系統架構的設計直接決定了用戶體驗與業務成效。 本文將以視頻點播&#xff08;Video…

Python爬蟲第13節-解析庫pyquery 的使用

目錄 前言 一、pyquery 初始化 1.1 字符串初始化 1.2 URL 初始化 1.3 文件初始化 二、基本 CSS 選擇器 三、pyquery 查找節點 3.1 子節點 3.2 父節點 3.3 兄弟節點 四、遍歷 五、獲取信息 5.1 獲取屬性 5.2 獲取文本 六、節點操作 6.1 addClass 和 removeClass…

【Hadoop入門】Hadoop生態之Pig簡介

1 什么是Pig&#xff1f; 在大數據分析領域&#xff0c;Apache Pig是一個不可忽視的重要工具。Pig是Apache Hadoop生態系統中的一個高級數據分析平臺&#xff0c;它提供了一種稱為Pig Latin的腳本語言&#xff0c;用于簡化大規模數據集的并行處理。Pig的核心思想是將復雜的數據…

python 語言 設計模式

python 語言 設計模式 設計模式是指在軟件開發過程中,針對反復出現的問題所總結歸納出的通用解決方案。以下是一些常見的Python語言設計模式: 目錄 python 語言 設計模式創建型模式結構型模式行為型模式創建型模式 單例模式 定義:保證一個類只有一個實例,并提供一個全局訪…

QT QML布局

一、?錨點布局(Anchors) 通過定義元素與其他元素或父容器的錨點關系實現定位,支持動態調整和邊距控制?。 Rectangle {anchors.left: parent.left // 左對齊父容器anchors.top: parent.top // 頂部對齊父容器anchors.margins: 10 // 統一設置四周邊距width: …

【力扣03】無重復字符的最長子串

題目 給定一個字符串 s &#xff0c;請你找出其中不含有重復字符的 最長 子串 的長度。 示例 1: 輸入: s "abcabcbb" 輸出: 3 解釋: 因為無重復字符的最長子串是 "abc"&#xff0c;所以其長度為 3。示例 2: 輸入: s "bbbbb" 輸出: 1 解釋:…

一文介紹阿里32B推理模型

什么是QwQ-32B&#xff1f; QwQ-32B并非普通的聊天機器人模型&#xff0c;而是推理模型。推理模型專注于邏輯拆解問題、分步推導&#xff0c;并輸出結構化答案。 通過下面的示例&#xff0c;我們可以直觀看到QwQ-32B的思考過程&#xff1a; qwq-32b思考過程 如果你需要寫作輔…

AutoGen深度解析:從核心架構到多智能體協作的完整指南

AutoGen是微軟推出的一個革命性多智能體(Multi-Agent)框架&#xff0c;它通過模塊化設計和靈活的對話機制&#xff0c;極大地簡化了基于大型語言模型(LLM)的智能體系統開發。本文將深入剖析AutoGen的兩個核心模塊——core基礎架構和agentchat多智能體對話系統&#xff0c;帶您全…

HTML的svg元素

<svg>元素 <svg>是一種用于描述二維矢量圖形的 XML 格式&#xff0c;可以直接嵌入 HTML 文檔中。 <svg>基本用法 <svg>的幾種基本用法,包括圓形&#xff0c;正方形&#xff0c;三角形&#xff0c;直線 &#xff0c;折線等 <body><svg widt…

Qt 子項目依賴管理:從原理到實踐的最佳分析:depends還是 CONFIG += ordered

1. 問題背景 在Qt項目開發中&#xff0c;當一個工程包含多個子項目&#xff08;如庫、插件、測試模塊&#xff09;時&#xff0c;如何正確管理它們的構建順序和依賴關系&#xff1f; 如&#xff1a; 在開發一個包含核心庫&#xff08;core&#xff09;、GUI模塊&#xff08;g…