diff --git a/faker/providers/address/pt_BR/__init__.py b/faker/providers/address/pt_BR/__init__.py
index dacd633f..8b524801 100644
--- a/faker/providers/address/pt_BR/__init__.py
+++ b/faker/providers/address/pt_BR/__init__.py
@@ -99,7 +99,8 @@ class Provider(AddressProvider):
 
     building_number_formats = ('%', '%#', '%#', '%#', '%##')
 
-    postcode_formats = ('########', '#####-###')
+    postcode_raw_formats = ('########', )
+    postcode_all_formats = postcode_raw_formats + ('#####-###', )
 
     bairros = (
         'Aarão Reis', 'Acaba Mundo', 'Acaiaca', 'Ademar Maldonado', 'Aeroporto', 'Aguas Claras', 'Alípio De Melo',
@@ -296,6 +297,16 @@ class Provider(AddressProvider):
         """
         return self.random_element(self.bairros)
 
+    def postcode(self, formatted=True):
+        """
+        Randomly returns a postcode.
+        :param formatted: True to allow formatted postcodes, else False (default True)
+        :example formatted: '41224-212' '83992-291' '12324322'
+        :example raw: '43920231' '34239530'
+        """
+        template = self.postcode_all_formats if formatted else self.postcode_raw_formats
+        return self.bothify(self.random_element(template))
+
     # aliases
     def neighborhood(self):
         return self.bairro()

Can we have a "non formatted" postcode for pt_BR localization?
* Faker version: 3.0.0
* OS: Windows 10 pro (x64)

I'm using Faker to generate postcode using the pt_BR localization. The example on [`address` section](https://faker.readthedocs.io/en/latest/locales/pt_BR.html#faker-providers-address) shows a numeric sequence containing 8 numbers and that was what I expect.

```python
fake.postcode()
# '35285968'
```

Anyway, I'm getting some problems in my tests because the output of this function sometimes returns a formatted postcode. Example:

```python
fake.postcode()
# '35285968'    -- cool :D

fake.postcode()
# '35285-968'    -- sad :(
```

### Expected behavior

I would like to generate postcode exactly hows the documentation says, just numbers, without any formatting. As a temporary solution, I'm using a `replace` to remove any `-` present, but I would like to have a cleaner solution using just Faker. Maybe this "formatted" version can be specified by an argument in the `postcode` function. 

### Actual behavior

Getting a non deterministic postcode, I don't know which type of postalcode format I will get.
diff --git a/tests/providers/test_address.py b/tests/providers/test_address.py
index 4e3c889f..66114721 100644
--- a/tests/providers/test_address.py
+++ b/tests/providers/test_address.py
@@ -1029,6 +1029,18 @@ class TestPtBr(unittest.TestCase):
         address = self.fake.address()
         assert isinstance(address, str)
 
+    def test_raw_postcode(self):
+        for _ in range(100):
+            postcode = self.fake.postcode(formatted=False)
+            assert isinstance(postcode, str)
+            assert re.match(r'^\d{8}$', postcode)
+
+    def test_formatted_postcode(self):
+        for _ in range(100):
+            postcode = self.fake.postcode()
+            assert isinstance(postcode, str)
+            assert re.match(r'^\d{5}-?\d{3}$', postcode)
+
 
 class TestPtPT(unittest.TestCase):
 
diff --git a/tests/providers/test_person.py b/tests/providers/test_person.py
index dfc314fd..cbcb28bf 100644
--- a/tests/providers/test_person.py
+++ b/tests/providers/test_person.py
@@ -252,7 +252,7 @@ class TestPlPL(unittest.TestCase):
     @staticmethod
     def validate_nip(nip_str):
         """
-        Validates NIP using recomended code
+        Validates NIP using recommended code
         https://pl.wikibooks.org/wiki/Kody_%C5%BAr%C3%B3d%C5%82owe/Implementacja_NIP
         """
         nip_str = nip_str.replace('-', '')

pip install -e .
parse_log_pytest
requirements.txt
pytest coverage freezegun random2 ukpostcodeparser
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi @ file:///croot/certifi_1671487769961/work/certifi
coverage==7.2.7
exceptiongroup==1.2.2
-e git+https://github.com/joke2k/faker.git@9cbfd917bd0776ec894fb67d5bfd71366a520522#egg=Faker
freezegun==1.5.1
importlib-metadata==6.7.0
iniconfig==2.0.0
packaging==24.0
pluggy==1.2.0
pytest==7.4.4
python-dateutil==2.9.0.post0
random2==1.0.2
six==1.17.0
text-unidecode==1.3
tomli==2.0.1
typing_extensions==4.7.1
UkPostcodeParser==1.1.2
zipp==3.15.0

name: faker
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - coverage==7.2.7
      - exceptiongroup==1.2.2
      - freezegun==1.5.1
      - importlib-metadata==6.7.0
      - iniconfig==2.0.0
      - packaging==24.0
      - pluggy==1.2.0
      - pytest==7.4.4
      - python-dateutil==2.9.0.post0
      - random2==1.0.2
      - six==1.17.0
      - text-unidecode==1.3
      - tomli==2.0.1
      - typing-extensions==4.7.1
      - ukpostcodeparser==1.1.2
      - zipp==3.15.0
prefix: /opt/conda/envs/faker

tests/providers/test_address.py::TestPtBr::test_raw_postcode
tests/providers/test_address.py::TestBaseProvider::test_alpha_2_country_codes tests/providers/test_address.py::TestBaseProvider::test_alpha_2_country_codes_as_default tests/providers/test_address.py::TestBaseProvider::test_alpha_3_country_codes tests/providers/test_address.py::TestBaseProvider::test_bad_country_code_representation tests/providers/test_address.py::TestAr_AA::test_alpha_2_country_codes tests/providers/test_address.py::TestAr_AA::test_alpha_2_country_codes_as_default tests/providers/test_address.py::TestAr_AA::test_alpha_3_country_codes tests/providers/test_address.py::TestAr_AA::test_bad_country_code_representation tests/providers/test_address.py::TestCsCZ::test_city_name tests/providers/test_address.py::TestCsCZ::test_city_with_postcode tests/providers/test_address.py::TestCsCZ::test_postcode tests/providers/test_address.py::TestCsCZ::test_state tests/providers/test_address.py::TestCsCZ::test_street_name tests/providers/test_address.py::TestCsCZ::test_street_suffix_long tests/providers/test_address.py::TestCsCZ::test_street_suffix_short tests/providers/test_address.py::TestDeAT::test_city tests/providers/test_address.py::TestDeAT::test_city_with_postcode tests/providers/test_address.py::TestDeAT::test_country tests/providers/test_address.py::TestDeAT::test_postcode tests/providers/test_address.py::TestDeAT::test_state tests/providers/test_address.py::TestDeAT::test_street_suffix_long tests/providers/test_address.py::TestDeAT::test_street_suffix_short tests/providers/test_address.py::TestDeDE::test_city tests/providers/test_address.py::TestDeDE::test_city_with_postcode tests/providers/test_address.py::TestDeDE::test_country tests/providers/test_address.py::TestDeDE::test_state tests/providers/test_address.py::TestDeDE::test_street_suffix_long tests/providers/test_address.py::TestDeDE::test_street_suffix_short tests/providers/test_address.py::TestElGR::test_city tests/providers/test_address.py::TestElGR::test_line_address tests/providers/test_address.py::TestElGR::test_region tests/providers/test_address.py::TestElGR::test_street tests/providers/test_address.py::TestElGR::test_street_prefix_long tests/providers/test_address.py::TestElGR::test_street_prefix_short tests/providers/test_address.py::TestEnAU::test_city_prefix tests/providers/test_address.py::TestEnAU::test_postcode tests/providers/test_address.py::TestEnAU::test_state tests/providers/test_address.py::TestEnAU::test_state_abbr tests/providers/test_address.py::TestEnNZ::test_postcode tests/providers/test_address.py::TestEnNZ::test_state tests/providers/test_address.py::TestEnCA::test_city_prefix tests/providers/test_address.py::TestEnCA::test_postal_code_letter tests/providers/test_address.py::TestEnCA::test_postalcode tests/providers/test_address.py::TestEnCA::test_postcode tests/providers/test_address.py::TestEnCA::test_postcode_in_province tests/providers/test_address.py::TestEnCA::test_province tests/providers/test_address.py::TestEnCA::test_province_abbr tests/providers/test_address.py::TestEnCA::test_secondary_address tests/providers/test_address.py::TestEnGB::test_postcode tests/providers/test_address.py::TestEnUS::test_city_prefix tests/providers/test_address.py::TestEnUS::test_military_apo tests/providers/test_address.py::TestEnUS::test_military_dpo tests/providers/test_address.py::TestEnUS::test_military_ship tests/providers/test_address.py::TestEnUS::test_military_state tests/providers/test_address.py::TestEnUS::test_postalcode tests/providers/test_address.py::TestEnUS::test_postalcode_in_state tests/providers/test_address.py::TestEnUS::test_postcode tests/providers/test_address.py::TestEnUS::test_postcode_in_state tests/providers/test_address.py::TestEnUS::test_state tests/providers/test_address.py::TestEnUS::test_state_abbr tests/providers/test_address.py::TestEnUS::test_state_abbr_no_territories tests/providers/test_address.py::TestEnUS::test_zipcode tests/providers/test_address.py::TestEnUS::test_zipcode_in_state tests/providers/test_address.py::TestEnUS::test_zipcode_plus4 tests/providers/test_address.py::TestEsES::test_secondary_address tests/providers/test_address.py::TestEsES::test_state_name tests/providers/test_address.py::TestEsES::test_street_prefix tests/providers/test_address.py::TestEsMX::test_city_adjective tests/providers/test_address.py::TestEsMX::test_city_prefix tests/providers/test_address.py::TestEsMX::test_city_suffix tests/providers/test_address.py::TestEsMX::test_secondary_address tests/providers/test_address.py::TestEsMX::test_state tests/providers/test_address.py::TestEsMX::test_state_abbr tests/providers/test_address.py::TestEsMX::test_street_prefix tests/providers/test_address.py::TestFaIR::test_city_prefix tests/providers/test_address.py::TestFaIR::test_secondary_address tests/providers/test_address.py::TestFaIR::test_state tests/providers/test_address.py::TestFrFR::test_city_prefix tests/providers/test_address.py::TestFrFR::test_department tests/providers/test_address.py::TestFrFR::test_department_name tests/providers/test_address.py::TestFrFR::test_department_number tests/providers/test_address.py::TestFrFR::test_region tests/providers/test_address.py::TestFrFR::test_street_prefix tests/providers/test_address.py::TestHeIL::test_city_name tests/providers/test_address.py::TestHeIL::test_street_title tests/providers/test_address.py::TestHiIN::test_city_name tests/providers/test_address.py::TestHiIN::test_state tests/providers/test_address.py::TestTaIN::test_city_name tests/providers/test_address.py::TestTaIN::test_state tests/providers/test_address.py::TestFiFI::test_city tests/providers/test_address.py::TestFiFI::test_state tests/providers/test_address.py::TestFiFI::test_street_suffix tests/providers/test_address.py::TestHRHR::test_city_name tests/providers/test_address.py::TestHRHR::test_state tests/providers/test_address.py::TestHRHR::test_street_name tests/providers/test_address.py::TestHuHU::test_address tests/providers/test_address.py::TestHuHU::test_postcode_first_digit tests/providers/test_address.py::TestHuHU::test_street_address tests/providers/test_address.py::TestHuHU::test_street_address_with_county tests/providers/test_address.py::TestHyAM::test_address tests/providers/test_address.py::TestHyAM::test_alpha_2_country_codes tests/providers/test_address.py::TestHyAM::test_alpha_2_country_codes_as_default tests/providers/test_address.py::TestHyAM::test_alpha_3_country_codes tests/providers/test_address.py::TestHyAM::test_bad_country_code_representation tests/providers/test_address.py::TestHyAM::test_building_number tests/providers/test_address.py::TestHyAM::test_city tests/providers/test_address.py::TestHyAM::test_city_prefix tests/providers/test_address.py::TestHyAM::test_city_suffix tests/providers/test_address.py::TestHyAM::test_country tests/providers/test_address.py::TestHyAM::test_postcode tests/providers/test_address.py::TestHyAM::test_postcode_in_state tests/providers/test_address.py::TestHyAM::test_secondary_address tests/providers/test_address.py::TestHyAM::test_state tests/providers/test_address.py::TestHyAM::test_state_abbr tests/providers/test_address.py::TestHyAM::test_street tests/providers/test_address.py::TestHyAM::test_street_address tests/providers/test_address.py::TestHyAM::test_street_name tests/providers/test_address.py::TestHyAM::test_street_prefix tests/providers/test_address.py::TestHyAM::test_street_suffix tests/providers/test_address.py::TestHyAM::test_village tests/providers/test_address.py::TestHyAM::test_village_prefix tests/providers/test_address.py::TestJaJP::test_address tests/providers/test_address.py::TestKoKR::test_address tests/providers/test_address.py::TestNeNP::test_address tests/providers/test_address.py::TestNoNO::test_address tests/providers/test_address.py::TestNoNO::test_city_suffix tests/providers/test_address.py::TestNoNO::test_postcode tests/providers/test_address.py::TestNoNO::test_street_suffix tests/providers/test_address.py::TestZhTW::test_address tests/providers/test_address.py::TestZhCN::test_address tests/providers/test_address.py::TestPtBr::test_address tests/providers/test_address.py::TestPtBr::test_formatted_postcode tests/providers/test_address.py::TestPtPT::test_concelho tests/providers/test_address.py::TestPtPT::test_distrito tests/providers/test_address.py::TestPtPT::test_freguesia tests/providers/test_address.py::TestPtPT::test_place_name tests/providers/test_address.py::TestEnPh::test_PH_address tests/providers/test_address.py::TestEnPh::test_PH_building_number tests/providers/test_address.py::TestEnPh::test_PH_floor_unit_number tests/providers/test_address.py::TestEnPh::test_PH_luzon_province_postcode tests/providers/test_address.py::TestEnPh::test_PH_metro_manila_postcode tests/providers/test_address.py::TestEnPh::test_PH_mindanao_province_postcode tests/providers/test_address.py::TestEnPh::test_PH_postcode tests/providers/test_address.py::TestEnPh::test_PH_visayas_province_postcode tests/providers/test_address.py::TestFilPh::test_PH_address tests/providers/test_address.py::TestFilPh::test_PH_building_number tests/providers/test_address.py::TestFilPh::test_PH_floor_unit_number tests/providers/test_address.py::TestFilPh::test_PH_luzon_province_postcode tests/providers/test_address.py::TestFilPh::test_PH_metro_manila_postcode tests/providers/test_address.py::TestFilPh::test_PH_mindanao_province_postcode tests/providers/test_address.py::TestFilPh::test_PH_postcode tests/providers/test_address.py::TestFilPh::test_PH_visayas_province_postcode tests/providers/test_address.py::TestTlPh::test_PH_address tests/providers/test_address.py::TestTlPh::test_PH_building_number tests/providers/test_address.py::TestTlPh::test_PH_floor_unit_number tests/providers/test_address.py::TestTlPh::test_PH_luzon_province_postcode tests/providers/test_address.py::TestTlPh::test_PH_metro_manila_postcode tests/providers/test_address.py::TestTlPh::test_PH_mindanao_province_postcode tests/providers/test_address.py::TestTlPh::test_PH_postcode tests/providers/test_address.py::TestTlPh::test_PH_visayas_province_postcode tests/providers/test_address.py::TestRuRU::test_city_name tests/providers/test_address.py::TestRuRU::test_city_prefix tests/providers/test_address.py::TestRuRU::test_country tests/providers/test_address.py::TestRuRU::test_postcode tests/providers/test_address.py::TestRuRU::test_region tests/providers/test_address.py::TestRuRU::test_street_name tests/providers/test_address.py::TestRuRU::test_street_suffix tests/providers/test_address.py::TestRuRU::test_street_title tests/providers/test_person.py::TestAr::test_first_name tests/providers/test_person.py::TestAr::test_last_name tests/providers/test_person.py::TestJaJP::test_person tests/providers/test_person.py::TestNeNP::test_names tests/providers/test_person.py::TestFiFI::test_gender_first_names tests/providers/test_person.py::TestFiFI::test_last_names tests/providers/test_person.py::TestSvSE::test_gender_first_names tests/providers/test_person.py::TestPlPL::test_identity_card_number tests/providers/test_person.py::TestPlPL::test_identity_card_number_checksum tests/providers/test_person.py::TestPlPL::test_nip tests/providers/test_person.py::TestPlPL::test_pesel_birth_date tests/providers/test_person.py::TestPlPL::test_pesel_sex_female tests/providers/test_person.py::TestPlPL::test_pesel_sex_male tests/providers/test_person.py::TestPlPL::test_pwz_doctor tests/providers/test_person.py::TestPlPL::test_pwz_doctor_check_digit_zero tests/providers/test_person.py::TestPlPL::test_pwz_nurse tests/providers/test_person.py::TestCsCZ::test_name_female tests/providers/test_person.py::TestCsCZ::test_name_male tests/providers/test_person.py::TestZhCN::test_first_name tests/providers/test_person.py::TestZhCN::test_last_name tests/providers/test_person.py::TestZhCN::test_name tests/providers/test_person.py::TestZhTW::test_first_name tests/providers/test_person.py::TestZhTW::test_last_name tests/providers/test_person.py::TestZhTW::test_name tests/providers/test_person.py::TestHyAM::test_first_name tests/providers/test_person.py::TestHyAM::test_last_name tests/providers/test_person.py::TestHyAM::test_name tests/providers/test_person.py::TestTaIN::test_gender_first_names tests/providers/test_person.py::TestRuRU::test_name_female tests/providers/test_person.py::TestRuRU::test_name_male tests/providers/test_person.py::TestRuRU::test_translit
faker/providers/address/pt_BR/__init__.py
faker/providers/address/pt_BR/__init__.py