Wednesday, 27 May 2020

Nonexcludable Innovations and COVID-19


Some of the most widely discussed COVID-19 interventions include vaccines, drugs, and medical devices—typical interventions for many diseases, whether the cause of a pandemic or not. These interventions share a further similarity—they’re all generally excludable. That is, the owner of a particular invention can generally exclude others from practicing it without permission. In a classic account of IP, it is this excludability that encourages their development in the first instance. But as Professors Amy Kapczynski and Talha Syed have explained, some knowledge goods are more excludable than others. In this post, we describe why many successful COVID-19 interventions—washing hands, wearing face masks, even the proning of patients in a hospital setting—are generally nonexcludable and thus likely to be underincentivized by IP-based market rewards. Policymakers tasked with encouraging COVID-19 innovation should attempt to correct for this asymmetry in excludability.

What’s nonexcludability and why does it matter?

Intellectual property law relies on a relatively simple structure: give people incentives for producing knowledge goods by giving them the right to exclude others from making or using those goods for a period of time. This allows creators to charge higher prices than they could in a fully competitive marketplace. For some knowledge goods, however, excluding others is difficult or impossible even under expansive IP laws; they are “nonexcludable.” If innovators invest in knowledge-good production only up to the point that their own marginal benefit exceeds the marginal cost—ignoring the benefits to others who can’t be excluded—then they will invest less in nonexcludable goods than is socially optimal.

Some knowledge goods are nonexcludable (or only partially excludable) because they simply aren’t the subject of IP, i.e., they’re not protectable subject matter. Laws of nature, natural phenomena, abstract ideas, and facts about the world, for example, cannot be patented or copyrighted or protected through regulatory exclusivity (though they can often be kept secret for a time). But as Kapczynski and Syed have explained, even where IP is available, it may be difficult to enforce. Monitoring use of the knowledge good may be technologically infeasible, normatively unacceptable, or otherwise unviable with existing institutions. Nonexcludability thus systematically distorts the incentives for innovators to create new knowledge goods.

What kinds of nonexcludable interventions can help address the pandemic?

A number of interventions that have emerged in the context of COVID-19 have limited excludability. Consider mask wearing. At present, the best evidence suggests that wearing masks in public helps reduce the spread of COVID-19—whether it is an exhaustive review of the existing literature, empirical studies done in the context of seasonal coronaviruses, mathematical models of COVID-19, or other scientific articles. After initially recommending against the use of masks in public by most Americans, the CDC has now recommended the use of cloth masks “in public settings where other social distancing measures are difficult to maintain,” such as grocery stores.

But this knowledge about the benefits of wearing of masks in public—particularly DIY cloth masks—is highly nonexcludable. The holder of a patent on a method of wearing masks in public to prevent the spread of COVID-19 (should it even issue) would not reasonably be able to enforce that patent. Systematically enforcing patent violations would not be practical, given the vast numbers of Americans wearing masks in public (73%, in a recent AP poll). It might be easier to sue entities (like grocery stores) who require shoppers to wear masks, on grounds of inducement of infringement, but this is difficult to imagine, given the social pressure on such a patentholder not to enforce their rights. And the same argument applies to knowledge about the benefits of other public health measures—it is hard to imagine enforcement of a patent related to hand washing or social distancing.

As another example, consider proning, in which COVID-19 patients are simply placed on their stomachs (in the prone position) rather than on their backs. According to a series of studies (including multiple on COVID-19 specifically—see here, here, and here for a selection, but also here in the pre-COVID-19 context), proning may increase patients’ oxygen saturation and may help patients avoid being placed on a ventilator. It may even lower their risk of death. l

Proning is somewhat more excludable than mask-wearing because it occurs primarily within the hospital setting. As a result, a patentholder on a method of using proning to improve oxygen saturation and outcomes in the COVID-19 context would be able to identify institutions within which these activities are occurring, even if that number would be vast. Many medical centers or specialty societies have proning protocols, which would permit them to be identified as well. But a patentholder would still need to identify specific cases of infringement within these contexts (made somewhat more difficult by health information privacy laws), and the optics of suing hospital systems for providing the best available care during a pandemic are not helpful.

As a final example, consider the development of evidence regarding the use of already-approved drugs like hydroxychloroquine (approved for use in conditions including malaria, lupus, and rheumatoid arthritis) for COVID-19. Famously referred to by Professor Rebecca Eisenberg as “The Problem of New Uses,” pharmaceutical companies themselves have little incentive to study their existing drugs for new uses. Patents on the new method of use can be obtained but are hard to enforce. Once a drug becomes subject to generic competition (as has been true of hydroxychloroquine), prescriptions of the old drug for its new indication can be filled with a generic, and trying to enforce patents against doctors or patients using the drug for the new use would be a practical and reputational nightmare. The incentives to develop negative information about existing drugs—such as the harmful side effects of hydroxychloroquine in COVID-19 patients—are even smaller.

To be clear, the limited excludability of knowledge about mask wearing, proning, or new uses of old drugs does not mean that no one will invest in these innovations. After all, as detailed above, preliminary evidence has been acquired about the effect of all of these interventions for COVID-19, and additional studies are ongoing. Rather, the concern is that firms relying on market incentives will invest less in these kinds of innovations than is socially optimal. As Kapczynski and Syed explain, there is no reason to believe that excludability is correlated with social value, which means that IP-based market rewards will underincentivize many valuable innovations.

Should policymakers make nonexcludable knowledge goods more excludable?

One putative solution to these misaligned incentives is to make more COVID-19 interventions excludable. This would, under a classic incentive theory, increase investment in developing such interventions—even basic public health interventions—by essentially offering a bounty that doesn’t currently exist. For example, the problem of insufficient incentives for researching new uses for old drugs is at least partially addressed by allowing developers to both claim patents on the new use and garner regulatory exclusivities for the new use from FDA. Both types of incentives are grounded in creating excludabilities that did not previously exist.

As successful—or not—as such policies have been, this kind of IP-based incentive in the COVID-19 context should be matched with a non-IP allocation policy (e.g., a healthcare system with universal low-cost coverage) to promote widespread adoption and use, without respect to price. As noted above, excludability is meant to encourage innovation by promising supracompetitive profits. But for obvious reasons, the policy aim of developing COVID-19-related interventions is not necessarily to make them maximally profitable but to ensure they reach the greatest number of patients.

In yet other cases, increasing the excludability of a given intervention may do little work because, as discussed earlier, enforcing these provisions may be impracticable due to the institutional siting or nature of the intervention. Barring the use of a medical device in a hospital setting may be simple enough; attempting to lay an exclusive claim to face masks in a world replete with old T-shirts, sewing machines, and people with a lot of time on their hands, is a fools’ errand. The most valuable COVID-19 interventions—ones that broadly traffic on the public health outside the medical care delivery setting—are those least likely to be affected by increasing their excludability.

What non-IP tools can policymakers use to increase incentives for nonexcludable innovations?

Increasing excludability through IP is fortunately only one option in the innovation policy toolkit. Two weeks ago we detailed the benefits of different non-IP incentives in the pharmaceutical context; these alternative innovation policies play an even more important role for inventions that cannot be effectively protected through IP. Most significantly, direct government spending—whether through R&D grants, public-private partnerships, procurement from private firms, or other institutional arrangements—can help correct for failures in market-set incentives. As Kapczynski and Syed note, their argument strengthens the case for public R&D funding and makes clear that the “scope of public funding should not be restricted to basic research, but rather should extend into other domains that also involve valuable but highly nonexcludable information goods.”

In bills enacted on March 4, March 27, and April 24, Congress allocated nearly $9 billion for COVID-19-related R&D, and this public funding goes well beyond basic research. But even though the gap in IP rewards for nonexcludable innovations is now well established in the innovation policy literature, we are unaware of any systematic effort to use public funding to balance this asymmetry. Kapczynski and Syed offer specific policy suggestions that are as applicable to addressing COVID-19 as to other areas of R&D, including dedicated funding for nonexcludable research, incorporating nonexcludability assessments into the NIH peer review process, increasing public health funding, and using FDA regulation to require production of nonexcludable information about drugs and medical devices.

To be sure, government-set rewards are not a panacea—policymakers have failed to correct for IP’s distortions beyond the asymmetry in excludability, and these failures of political markets can be as harmful as market failures. But this crisis has sparked an unprecedented interest in biomedical innovation policy from the public, the media, and policymakers throughout federal, state, and local government. Innovation policy scholars should use this opportunity to emphasize a simple but important point: public R&D funding should focus on socially valuable innovations that receive little incentive from IP.

Labels:

Tuesday, 26 May 2020

Belajar Python 3 - Control Flow - Boolean Variables

Boolean Variables

Sebelum kita melangkah lebih jauh, mari kita bicara sedikit tentang Benar dan Salah. Anda mungkin memperhatikan bahwa ketika Anda mengetiknya di editor kode (dengan huruf besar T dan F), mereka muncul dalam warna yang berbeda dari variabel atau string. Ini karena Benar dan Salah adalah tipe khusus mereka sendiri: bool.

Benar dan Salah adalah satu-satunya tipe bool, dan variabel apa pun yang ditugaskan salah satu dari nilai-nilai ini disebut variabel boolean. Variabel Boolean dapat dibuat dengan beberapa cara. Cara termudah adalah dengan hanya menetapkan Benar atau Salah ke variabel:

set_to_true = True
set_to_false = False

Anda juga bisa mengatur variabel sama dengan ekspresi boolean.

bool_one = 5 != 7
bool_two = 1 + 1 != 2
bool_three = 3 * 3 == 9

Variabel-variabel ini sekarang mengandung nilai boolean, jadi ketika Anda mereferensikannya, mereka hanya akan mengembalikan nilai True atau False dari ekspresi yang diberikan kepada mereka.

>>>bool_three
True
>>>bool_four
False
>>>bool_five
True

Instruksi
1. Buat variabel bernama my_baby_bool dan atur sama dengan "true".

my_baby_bool = "true"

2. Periksa jenis my_baby_bool menggunakan tipe (my_baby_bool).
Anda harus mencetaknya untuk mendapatkan hasil untuk ditampilkan di terminal.

my_baby_bool = "true"
print(type(my_baby_bool)

Hasil :
<class 'str'>

3.  Itu bukan variabel boolean! Nilai Boolean Benar dan Salah selalu perlu dikapitalisasi dan tidak memiliki tanda kutip.

Buat variabel bernama my_baby_bool_two dan atur sama dengan True.

Script Latihan :
my_baby_bool_two = True
print(type(my_baby_bool_two))

Hasil :
<class 'bool'>

4. Periksa jenis my_baby_bool_two dan pastikan Anda berhasil membuat variabel boolean.

Anda harus mencetaknya untuk mendapatkan hasil untuk ditampilkan di terminal.

Belajar Python 3 - Control Flow - Relational Operators: Equals and Not Equals

Relational Operators: Equals and Not Equals

Sekarang kita mengerti apa ekspresi boolean, mari kita belajar untuk membuatnya dengan Python. Kita dapat membuat ekspresi boolean dengan menggunakan operator relasional.

Operator relasional membandingkan dua item dan mengembalikan Benar atau Salah. Karena alasan ini, Anda terkadang akan mendengar mereka disebut pembanding.

Dua operator boolean yang akan kita bahas pertama adalah:

    Sama dengan: ==
    Tidak sama dengan:! =

Operator-operator ini membandingkan dua item dan mengembalikan Benar atau Salah jika keduanya sama atau tidak.

Kita dapat membuat ekspresi boolean dengan membandingkan dua nilai menggunakan operator ini:

>>> 1 == 1
Benar
>>> 2! = 4
Benar
>>> 3 == 5
Salah
>>> '7' == 7
Salah

Masing-masing adalah contoh dari ekspresi boolean. >>> adalah prompt ketika Anda menjalankan Python di terminal Anda, yang kemudian dapat Anda gunakan untuk mengevaluasi ekspresi sederhana, seperti ini.

Mengapa pernyataan terakhir salah? Tanda '' pada '7' menjadikannya string, yang berbeda dari nilai integer 7, sehingga tidak sama. Saat menggunakan operator relasional, penting untuk selalu berhati-hati dalam mengetik.


Instruksi

1. Tentukan apakah ekspresi boolean berikut ini True atau False . Masukkan jawaban Anda sebagai True atau False dalam variabel yang sesuai di sebelah kanan.

Pernyataan satu:

(5 * 2) - 1 == 8 + 1


Pernyataan dua:

13 - 6! = (3 * 2) + 1


Pernyataan tiga:

3 * (2 - 1) == 4 - 1

Script latihan :
statement_one = True

statement_two = False

statement_three = True

Belajar Python 3 - Control Flow - Pengantar Control Flow

Control Flow: Suatu Pengantar


Bayangkan bangun di pagi hari.

Anda bangun dan berpikir,

"Ugh, apakah ini hari kerja atau hari sekolah ?"

Jika demikian, Anda harus bangun dan berpakaian dan bersiap-siap untuk bekerja atau sekolah. Jika tidak, Anda bisa tidur sedikit lebih lama dan bermimpi yang indah. Namun sayang, ini hari kerja, jadi Anda bangun dan berpakaian dan Anda pergi untuk melihat keluar, "Seperti apa cuacanya? Apakah saya perlu payung? "

Pertanyaan dan keputusan ini mengontrol aliran pagi Anda, setiap langkah dan hasil adalah produk dari kondisi hari dan lingkungan Anda. Komputer Anda, sama seperti Anda, melewati aliran yang sama setiap kali menjalankan kode. Suatu program akan berjalan (bangun) dan mulai bergerak melalui daftar periksa, apakah kondisi ini terpenuhi, apakah syarat itu terpenuhi ? , oke mari kita jalankan kode ini dan kembalikan nilai itu.

Ini adalah Aliran Kontrol program Anda. Dengan Python, skrip Anda akan dijalankan dari atas ke bawah, hingga tidak ada yang tersisa untuk dijalankan. Adalah tugas Anda untuk memasukkan gateway, yang dikenal sebagai pernyataan kondisional, untuk memberi tahu komputer kapan ia harus menjalankan blok kode tertentu. Jika kondisi ini terpenuhi, maka jalankan fungsi ini.

Selama pelajaran ini, Anda akan belajar bagaimana membangun pernyataan bersyarat menggunakan ekspresi boolean, dan mengelola aliran kontrol dalam kode Anda.

Belajar Python 3 - Control Flow - Ekspresi Boolean

Ekspresi Boolean

Untuk membangun aliran kontrol ke dalam program kita, kita ingin dapat memeriksa apakah ada yang benar atau tidak. Ekspresi boolean adalah pernyataan yang bisa True  atau False.

Mari kita kembali ke contoh ‘bangun’. Pertanyaan pertama, "Apakah hari ini hari kerja?" dapat ditulis sebagai ekspresi boolean:

Today is a weekday.

Ungkapan ini bisa Benar jika hari ini adalah hari Selasa, atau bisa juga Salah jika hari ini adalah hari Sabtu. Tidak ada pilihan lain.

Pertimbangkan frasa:

Friday is the best day of the week.

Apakah ini ungkapan boolean?

Tidak, pernyataan ini adalah pendapat dan tidak secara obyektif True  atau  False. Orang lain mungkin mengatakan bahwa "Rabu adalah hari kerja terbaik," dan pernyataan mereka tidak kurang Benar atau Salah daripada yang di atas.

Bagaimana dengan frasa:

Sunday starts with the letter 'C'.

Apakah ini ungkapan boolean?

Iya! Ungkapan ini hanya bisa True  atau False , yang menjadikannya ekspresi boolean. Meskipun pernyataan itu sendiri salah (Minggu dimulai dengan huruf ‘C’), itu masih merupakan ungkapan boolean.

Instruksi
1. Tentukan apakah pernyataan berikut adalah ekspresi boolean atau tidak. Jika ya, atur variabel yang cocok ke kanan ke "Yes" dan jika tidak atur variabel ke "No". Berikut ini contoh apa yang harus dilakukan:

Pernyataan contoh:

Anjing saya adalah anjing paling lucu di dunia.

Ini adalah pendapat dan bukan ekspresi boolean, jadi Anda akan menetapkan example_statement menjadi "Tidak" di editor di sebelah kanan. Oke, sekarang giliran Anda:

Pernyataan satu:

Anjing adalah mamalia.

Pernyataan dua:

Anjing saya bernama Pavel.

Pernyataan tiga:

Anjing adalah hewan peliharaan terbaik.

Pernyataan empat:

Kucing adalah anjing betina.

Script Latihan :
example_statement = "No"

statement_one = "Yes"

statement_two = "Yes"

statement_three = "No"

statement_four = "Yes"

Labels:

Belajar Python 3 - Syntax - Multi Line Strings

String Multi-line

String Python sangat fleksibel, tetapi jika kita mencoba membuat string yang menempati beberapa baris, kita mendapati diri kita berhadapan muka dengan SyntaxError. Python menawarkan solusi: string multi-line. Dengan menggunakan tiga tanda kutip ("" "atau '' ') alih-alih satu, kami memberi tahu program tersebut bahwa string tidak berakhir sampai tiga tanda kutip berikutnya. Metode ini berguna jika string yang didefinisikan mengandung banyak tanda kutip dan kami ingin memastikan kami tidak menutupnya sebelum waktunya.

leaves_of_grass = "" "
Penyair datang! orator, penyanyi, musisi yang akan datang!
Bukan hari ini untuk membenarkan saya dan menjawab untuk apa saya,
Tetapi Anda, seorang anak baru, asli, atletis, benua, lebih besar dari
  sebelum diketahui,
Membangkitkan! karena kamu harus membenarkan aku.
"" "

Dalam contoh di atas, kami menetapkan kata-kata penyair terkenal ke variabel. Meskipun kutipan berisi beberapa linebreak, kodenya berfungsi!

Jika string multi-baris tidak ditugaskan variabel atau digunakan dalam ekspresi itu diperlakukan sebagai komentar.

Instruksi
1. Tetapkan string

Asing, jika kamu lewat temui aku dan ingin bicara padaku, kenapa
  tidakkah kamu seharusnya berbicara kepada saya?
Dan mengapa saya tidak berbicara dengan Anda?

ke variabel to_you.

Script Latihan :


# Assign the string here
to_you = """ Stranger, if you passing meet me and desire to speak to me, why
  should you not speak to me?
And why should I not speak to you?
"""


print(to_you)

Hasil  :
 Stranger, if you passing meet me and desire to speak to me, why
  should you not speak to me?
And why should I not speak to you?

Labels:

Belajar Python 3 - Function - Review

Review

Bagus! Sejauh ini Anda telah belajar:

    Cara menulis fungsi
    Cara memberi input fungsi
    Cara mengembalikan nilai dari suatu fungsi
    Apa ruang lingkup artinya

Mari kita praktikkan konsep-konsep ini lagi sehingga Anda tidak akan melupakannya!
Instruksi
1. Tentukan fungsi yang disebut repeat_stuff yang mengambil dua input, barang, dan num_repeats.

Kami akan ingin membuat fungsi ini mencetak string dengan hal-hal yang berulang kali num_repeats berkali-kali. Untuk saat ini, hanya masukkan pernyataan cetak kosong di dalam fungsi.

2. Di luar fungsi, panggil repeat_stuff.

Anda dapat menggunakan nilai "Row" untuk barang dan 3 untuk num_repeats.
3.

Ubah pernyataan cetak di dalam repeat_stuff sebagai pernyataan balik.

Seharusnya mengembalikan barang * num_repeats.

Catatan: Mengalikan string hanya membuat string baru dengan yang lama terulang! Sebagai contoh:

"na" * 6

menghasilkan string "nananananana".
4.

Berikan parameter num_repeats nilai default 10.
5.

Tambahkan repeat_stuff ("Row", 3) dan string "Your Boat." Bersamaan dan simpan hasilnya ke variabel yang disebut lirik.
6.

Buat variabel yang disebut lagu dan berikan nilai repeat_stuff yang disebut dengan lirik input tunggal.
7.

Cetak lagu.

def repeat_stuff(stuff,num_repeats=3):
  return stuff*num_repeats

lyrics = repeat_stuff("Row ",3) + "Your Boat. "
song = repeat_stuff(lyrics)
print(song)


Hasil :

Row Row Row Your Boat. Row Row Row Your Boat. Row Row Row Your Boat. Row Row Row Your Boat. Row Row Row Your Boat. Row Row Row Your Boat. Row Row Row Your Boat. Row Row Row Your Boat. Row Row Row Your Boat. Row Row Row Your Boat.

Kerja bagus!

Belajar Python 3 - Function - Scope

Scope

Katakanlah kita memiliki fungsi dari latihan terakhir yang membuat string tentang item khusus:

def create_special_string(special_item):
    return "Our special is " + special_item + "."

Bagaimana jika kita ingin mengakses variabel special_item di luar fungsi? Bisakah kita menggunakannya?

def create_special_string(special_item):
    return "Our special is " + special_item + "."

print("I don't like " + special_item)

Jika kami mencoba menjalankan kode ini, kami akan mendapatkan NameError, yang memberi tahu kami bahwa 'special_item' is not defined. Variabel special_item  hanya didefinisikan di dalam ruang fungsi, jadi tidak ada di luar fungsi. Kami menyebut bagian dari program di mana special_item  dapat diakses ruang lingkupnya. Ruang lingkup special_item  hanya fungsi create_special_string .

Variabel yang ditentukan di luar lingkup fungsi dapat diakses di dalam tubuh fungsi:

header_string = "Spesial kami adalah"

def create_special_string (special_item):
    return header_string + special_item + "."
print (create_special_string ("grapes"))

Tidak ada kesalahan di sini. header_string dapat digunakan di dalam fungsi create_special_string karena cakupan header_string adalah seluruh file. File ini akan menghasilkan:

Spesial kami adalah anggur.

Instruksi
1. Di luar fungsi calcul_age (), cobalah untuk mencetak current_year. Apakah itu bekerja?
Script latihan :
def calculate_age(current_yearbirth_year):
  age = current_year - birth_year
  return age
print(current_year)

Hasil :
Traceback (most recent call last):
  File "script.py", line 4, in <module>
    print(age)
NameError: name 'age' is not defined

2. Bagaimana dengan usia? Di luar calcul_age (), cobalah untuk mencetak usia. Apakah itu bekerja?
Script latihan :
def calculate_age(current_yearbirth_year):
  age = current_year - birth_year
  return age
print(age)

Hasil :
Traceback (most recent call last):
  File "script.py", line 4, in <module>
    print(age)
NameError: name 'age' is not defined


3. Tidak! Meskipun kita mengembalikan usia di akhir fungsi, usia variabel tetap hanya ada dalam konteks fungsi.

Hapus kedua pernyataan cetak.
Script latihan :


Hasil :


4. Mari kita coba sesuatu yang berbeda. Hapus parameter current_year sehingga tidak lagi menjadi parameter dari calcul_age ().
Script latihan :
def calculate_agebirth_year):
  age = current_year - birth_year
  return age

Hasil :


5. Ini tahun 2048.

Tentukan current_year sebagai variabel SEBELUM mendefinisikan fungsi dan memberinya nilai 2048. Sekarang, setiap kali calcul_age () dipanggil, ia hanya akan mengambil birth_year.
Script latihan :
current_year = 2048
def calculate_age(birth_year):
  age = current_year - birth_year
  return age



6. Coba cetak current_year untuk terakhir kalinya. Apakah akhirnya berhasil?
Script latihan :
current_year = 2048
def calculate_age(birth_year):
  age = current_year - birth_year
  return age
print(current_year)

Hasil :
2048

7. Hore! Sekarang kita memiliki current_year yang didefinisikan secara global. Kerja bagus!

Mari kita pastikan fungsi kita masih berfungsi: cetak nilai calcul_age () dengan 1970 sebagai argumen.
Script latihan :
current_year = 2048
def calculate_age(birth_year):
  age = current_year - birth_year
  return age
print(calculate_age(1970))

Hasil :
78

Labels:

Belajar Python 3 - Function - Multiple return

Multiple Return Value

Terkadang kita mungkin ingin mengembalikan lebih dari satu nilai dari suatu fungsi. Kami dapat mengembalikan beberapa nilai dengan memisahkannya dengan koma:

def square_point (x_value, y_value):
   x_2 = x_value * x_value
   y_2 = y_value * y_value
   return x_2, y_2

Fungsi ini mengambil nilai x dan nilai y, dan mengembalikan keduanya, kuadrat. Kita bisa mendapatkan nilai-nilai itu dengan menetapkan keduanya ke variabel ketika kita memanggil fungsi:

x_squared, y_squared = square_point (1, 3)
print (x_squared)
print (y_squared)

Ini akan mencetak:

1
9

Instruksi
1. Tulis fungsi yang disebut get_boundaries () yang menggunakan dua parameter, angka yang disebut target dan angka yang disebut margin.

Itu harus membuat dua variabel:

     low_limit: target minus margin
     high_limit: margin ditambahkan ke target

Scrip latihan :

def get_boundaries(targetmargin):
    low_limit = target - margin
    high_limit = margin + target

2.Kembalikan low_limit dan high_limit dari fungsi, dalam urutan itu.

Script latihan :
def get_boundaries(targetmargin):
  low_limit = target - margin
  high_limit = margin + target
  return low_limithigh_limit

3. Panggil fungsi pada target 100 dengan margin 20. Simpan nilai yang dikembalikan ke variabel yang disebut rendah dan tinggi.

Script latihan :
def get_boundaries(targetmargin):
  low_limit = target - margin
  high_limit = margin + target
  return low_limithigh_limit

lowhigh = get_boundaries(100,20)

Labels:

Monday, 25 May 2020

Belajar Python 3 - Function - Return

Return

Sejauh ini, kita hanya melihat fungsi yang mencetak beberapa hasil ke konsol. Fungsi juga dapat mengembalikan nilai kepada pengguna sehingga nilai ini dapat dimodifikasi atau digunakan nanti. Ketika ada hasil dari fungsi yang dapat disimpan dalam variabel, itu disebut nilai fungsi yang dikembalikan. kita menggunakan kata kunci return untuk melakukan ini.

Berikut adalah contoh fungsi divide_by_four  yang mengambil argumen integer, membaginya dengan empat, dan return hasilnya:

def divide_by_four(input_number):
    return input_number/4

Program yang memanggil divide_by_four kemudian dapat menggunakan hasilnya nanti:

hasil = divide_by_four (16)
# hasil sekarang menampung 4
print ("16 dibagi 4 adalah" + str (hasil) + "!")
result2 = divide_by_four (hasil)
print (str (hasil) + "dibagi dengan 4 adalah" + str (result2) + "!")

Ini akan dicetak:

16 dibagi 4 adalah 4!
4 dibagi 4 adalah 1!

Dalam contoh ini, kita mengembalikan nomor, tetapi kita juga bisa mengembalikan sebuah String:

def create_special_string (special_item):
    kembali "Spesial kami adalah" + special_item + "."

special_string = create_special_string ("yoghurt pisang")

print (special_string)

Spesial kita adalah yogurt pisang.

Instruksi
1. Fungsi calculate_age di script.py membuat variabel yang disebut usia, yaitu perbedaan antara tahun berjalan, dan tahun kelahiran, yang keduanya merupakan input dari fungsi. Tambahkan baris untuk mengembalikan age.

def calculate_age(current_yearbirth_year):
 age = current_year - birth_year
 return age

2. Di luar fungsi, panggil calcul_age dengan nilai 2049 (current_year) dan 1993 (birth_year) dan simpan nilainya ke variabel yang disebut my_age.

Script Latihan : 
def calculate_age(current_yearbirth_year):
 age = current_year - birth_year
 return age

my_age=calculate_age(current_year=2049birth_year=1993)

3. Panggil calcul_age dengan nilai 2049 (current_year) dan 1953 (birth_year) dan simpan nilainya ke variabel yang disebut dads_age.

Cetak string "Saya berusia X tahun dan ayah saya berusia Y tahun" ke konsol, dengan my_age di mana X berada dan dads_age di mana Y berada.

Script latihan :

def calculate_age(current_yearbirth_year):
 age = current_year - birth_year
 return age
my_age=calculate_age(current_year=2049birth_year=1993)
dads_age=calculate_age(current_year=2049birth_year=1953)
print( " I am " + str(my_age) + " old an my dad is " + str(dads_age))

Hasil  :
 I am 56 old an my dad is 96


Labels:

Belajar Python 3 - Function - Keyword Arguments

Keyword Arguments

Dalam fungsi greet_customer () kita dari latihan terakhir, kita memiliki dua argumen:

def greet_customer(grocery_store, special_item):
    print("Welcome to "+ grocery_store + ".")
    print("Our special is " + special_item + ".")
    print("Have fun shopping!")

Nilai mana pun yang dimasukkan ke dalam greet_customer () pertama ditugaskan ke grocery_store, dan nilai mana yang diletakkan di kedua ditugaskan ke special_item. Ini disebut argumen posisi karena penugasannya bergantung pada posisi mereka dalam pemanggilan fungsi.

kita juga dapat meneruskan argumen ini sebagai argumen kata kunci, di mana kami secara eksplisit merujuk pada setiap argumen yang ditugaskan dalam pemanggilan fungsi.

greet_customer(special_item="chips and salsa", grocery_store="Stu's Staples")

Welcome to Stu's Staples.
Our special is chips and salsa.
Have fun shopping!

Kita dapat menggunakan argumen kata kunci untuk membuatnya eksplisit apa yang masing-masing argumen kita harus merujuk ke fungsi di tubuh fungsi itu sendiri.

Kita juga dapat mendefinisikan argumen default untuk suatu fungsi menggunakan sintaksis yang sangat mirip dengan sintaksis argumen-kata kunci kita, tetapi digunakan selama definisi fungsi. Jika fungsi dipanggil tanpa argumen untuk parameter itu, ia bergantung pada default.

def greet_customer(special_item, grocery_store="Engrossing Grocers"):
    print("Welcome to "+ grocery_store + ".")
    print("Our special is " + special_item + ".")
    print("Have fun shopping!")

Dalam hal ini, grocery_store memiliki nilai default "Engrossing Grocers". Jika kita memanggil fungsi hanya dengan satu argumen, nilai "Penggerutu Penggergajian" digunakan untuk grocery_store:

greet_customer ("pisang")

Selamat Datang di Toko Mengasyikkan.
Spesial kami adalah pisang.
Selamat berbelanja!

Setelah Anda memberikan argumen nilai default (menjadikannya argumen kata kunci), tidak ada argumen yang dapat digunakan secara posisi. Sebagai contoh:

def greet_customer (special_item = "bananas", grocery_store): # ini tidak valid
    ...

def greet_customer (special_item, grocery_store = "Memikat Pedagang"): # ini valid
    ...

Instruksi
1. kita telah mendefinisikan fungsi create_spreadsheet, yang hanya mengambil judul, dan mencetak bahwa itu membuat spreadsheet.
Jalankan kode untuk melihat fungsi berfungsi pada input "Unduhan".
Script latihan :
# Define create_spreadsheet():
def create_spreadsheet(title):
  print("Creating a spreadsheet called "+title)

# Call create_spreadsheet() below with the required arguments:
create_spreadsheet("Downloads")

Hasil
Creating a spreadsheet called Downloads

2. Tambahkan parameter row_count ke definisi fungsi. Tetapkan nilai default menjadi 1000.

Script latihan :


Hasil 

3. Ubah pernyataan cetak dalam fungsi untuk mencetak “Membuat spreadsheet bernama judul dengan baris row_count”, di mana judul dan row_count diganti dengan nilainya masing-masing.

Ingat, untuk menyambungkan angka ke objek string, Anda harus terlebih dahulu membuang row_count ke string menggunakan str (). Jika tidak, Anda akan mendapatkan TypeError.

Script latihan :
# Define create_spreadsheet():
def create_spreadsheet(titlerow_count=1000):
  print("Creating a spreadsheet called " + title + " with " + str(row_count) +" rows ")

# Call create_spreadsheet() below with the required arguments:
create_spreadsheet("Downloads")

Hasil :

Creating a spreadsheet called Downloads with 1000 rows


4.Panggil create_spreadsheet () dengan judul diatur ke "Aplikasi" dan row_count diatur ke 10.

Script latihan :
# Define create_spreadsheet():
def create_spreadsheet(titlerow_count=10):
  print("Creating a spreadsheet called " + title + " with " + str(row_count) +" rows ")

# Call create_spreadsheet() below with the required arguments:
create_spreadsheet("Applications")

Hasil :
Creating a spreadsheet called Applications with 10 rows

Labels:

Belajar Python 3 - Function - Multiple Parameters

Multiple Parameters

Sistem sapaan bahan makanan kami menjadi populer, dan sekarang supermarket lain ingin menggunakannya. Karena itu, kami ingin dapat memodifikasi item khusus dan nama toko kelontong dalam sambutan seperti ini:

Welcome to [grocery store].
Our special is [special item].
Have fun shopping!

Kita dapat membuat suatu fungsi mengambil lebih dari satu parameter dengan menggunakan koma:

def greet_customer(grocery_store, special_item):
    print("Welcome to "+ grocery_store + ".")
    print("Our special is " + special_item + ".")
    print("Have fun shopping!")

Variabel grocery_store dan special_item sekarang harus disediakan untuk fungsi saat memanggilnya:

greet_customer ("Stu's Staples", "pepaya")

yang akan dicetak:

Selamat datang di Stu's Staples.
Spesial kami adalah pepaya.
Selamat berbelanja!

Instruct
1.  Fungsi mult_two_add_three mengambil angka, mengalikannya dengan dua dan menambahkan tiga. Kami ingin membuat ini lebih fleksibel. Pertama, ubah nama fungsi menjadi mult_x_add_y.

def mult_x_add_y(number):
  print(number*2 + 3)

2.Sekarang, tambahkan x dan y sebagai parameter fungsi, setelah angka.

def mult_x_add_y(numberx , y):
  print(number*2 + 3)

3. Di dalam fungsi, ganti 2 pada pernyataan cetak dengan x, dan ganti 3 pada pernyataan cetak dengan y.

def mult_x_add_y(numberx , y):
  print(number*x + y)

4. Panggil fungsi dengan nilai-nilai ini:

nomor 5

x: 2

y: 3

Script Latihan :

def mult_x_add_y(numberx , y):
  print(number*x + y)

mult_x_add_y(5,2,3)

Hasil :
13

5. Panggil fungsi dengan nilai-nilai ini:

nomor 1

x: 3

y: 1

Script Latihan :
def mult_x_add_y(numberx , y):
  print(number*x + y)

mult_x_add_y(1,3,1)


Hasil :
4

Labels:

Belajar Python 3 - Function - Parameters

Parameter

Mari kita kembali ke Engrossing Grocers. Barang spesial hari ini tidak selalu jeruk mandarin, itu akan berubah setiap hari. Bagaimana jika kita ingin memanggil tiga pernyataan cetak ini lagi, kecuali dengan variabel khusus? Kita bisa menggunakan parameter, yang merupakan variabel yang bisa Anda berikan ke fungsi ketika Anda menyebutnya.

def greet_customer(special_item):
    print("Welcome to Engrossing Grocers.")
    print("Our special is " + special_item + ".")
    print("Have fun shopping!")

Dalam definisi header untuk greet_customer (), special_item disebut sebagai parameter formal. Nama variabel ini adalah pengganti untuk nama item yang menjadi bahan makanan khusus hari ini. Sekarang, ketika kita memanggil greet_customer, kita harus memberikan special_item:

greet_customer ("selai kacang")

Barang itu akan dicetak dalam pernyataan cetak kedua:

Selamat Datang di Toko Mengasyikkan.
Spesial kami adalah selai kacang.
Selamat berbelanja!

Nilai di antara tanda kurung ketika kita memanggil fungsi (dalam hal ini, "selai kacang") disebut sebagai argumen dari panggilan fungsi. Argumen adalah informasi yang akan digunakan dalam pelaksanaan fungsi. Ketika kita memanggil fungsi tersebut, Python memberikan nama parameter formal special_item dengan data parameter aktual, "peanut_butter". Dengan kata lain, seolah-olah baris ini termasuk di bagian atas fungsi:

special_item = "selai kacang"

Setiap kali kita memanggil greet_customer () dengan nilai yang berbeda di antara tanda kurung, special_item ditugaskan untuk menyimpan nilai itu.

Instruksi
1.  Fungsi mult_two_add_three () mencetak angka yang dikalikan dengan 2 dan ditambahkan ke 3. Seperti yang dituliskan sekarang, nomor yang digunakan selalu 5.

Panggil fungsi dan lihat apa yang dicetak ke konsol.

Script Latihan :
def mult_two_add_three():
  number = 5
  print(number*2 + 3)
  
# Call mult_two_add_three() here:
mult_two_add_three()


Hasil : 
13

2. Sekarang, modifikasi definisi fungsi sehingga memiliki parameter yang disebut angka. Kemudian hapus angka = 5 tugas pada baris pertama fungsi.

Masukkan nomor 1 ke dalam panggilan fungsi Anda.

Script Latihan :
def mult_two_add_three(number):
  print(number*2 + 3)
  
# Call mult_two_add_three() here:
mult_two_add_three(1)

Hasil :
5


3. Panggil fungsi dengan nilai 5 sebagai argumen.
Script Latihan :

def mult_two_add_three(number):
  print(number*2 + 3)
  
# Call mult_two_add_three() here:
mult_two_add_three(5)

Hasil : 13

4.  Panggil fungsi dengan nilai -1 sebagai argumen.

Script Latihan :

def mult_two_add_three(number):
  print(number*2 + 3)
  
# Call mult_two_add_three() here:
mult_two_add_three(-1)

Hasil :
1

5. Panggil fungsi dengan nilai 0 sebagai argumen.
Script Latihan :

def mult_two_add_three(number):
  print(number*2 + 3)
  
# Call mult_two_add_three() here:
mult_two_add_three(0)

Hasil :
3

Labels:

Belajar Python 3 - Function - White Space

White Space

Pertimbangkan fungsi ini:

def greet_customer ():
    print ("Selamat Datang di Mengasyikkan Pedagang Grosir.")
    print ("Spesial kita adalah jeruk mandarin.")
    print ("Selamat bersenang-senang!")

Tiga pernyataan cetak semuanya dieksekusi bersama ketika greet_customer () dipanggil. Ini karena mereka memiliki tingkat indentasi yang sama. Dalam Python, jumlah spasi memberitahu komputer apa yang merupakan bagian dari fungsi dan apa yang bukan bagian dari fungsi itu. Jika kita ingin menulis baris lain di luar dari greet_customer (), kita harus menghapus baris baru:

def greet_customer ():
    print ("Selamat Datang di Mengasyikkan Pedagang Grosir.")
    print ("Spesial kami adalah jeruk mandarin.")
    print ("Selamat bersenang-senang!")
print ("Cleanup on Aisle 6")

Ketika kita memanggil greet_customer, pesan "Cleanup on Aisle 6" tidak dicetak, karena itu bukan bagian dari fungsi.

Di sini, di Codecademy, kita menggunakan 2 spasi untuk indentasi default kita . Apa pun selain itu akan menimbulkan kesalahan ketika Anda mencoba menjalankan program. Banyak platform lain menggunakan 4 ruang. Beberapa orang bahkan menggunakan tab! Semuanya baik-baik saja. Yang penting adalah konsisten di seluruh proyek.

Instruksi
1. Jalankan script.py. Lihatlah apa yang dicetak!

Script Latihan 
def about_this_computer():
  print("This computer is running on version Everest Puma")
  print("This is your desktop")

about_this_computer()

Hasil

This computer is running on version Everest Puma
This is your desktop


2.  Hapus indentasi pada pernyataan cetak kedua. Jalankan file. Sekarang apa yang dicetak?
Script :
def about_this_computer():
  print("This computer is running on version Everest Puma")
print("This is your desktop")

about_this_computer()

Hasil

This is your desktop
This computer is running on version Everest Puma


Labels:

Belajar Python 3 - Function - Menulis Fungsi

Tulis Fungsi

Kita telah melihat nilai fungsi sederhana untuk kode modularisasi. Sekarang kita perlu memahami cara menulis suatu fungsi. Untuk menulis fungsi, Anda harus memiliki tajuk dan blok kode yang menjorok. Judul dimulai dengan kata kunci def dan nama fungsi, diikuti oleh tanda kurung, dan titik dua. Blok kode indentasi melakukan semacam operasi. Sintaks ini terlihat seperti:

def function_name ():
  beberapa kode

Sebagai contoh greet_customer () Kita , definisi fungsi terlihat seperti:

def greet_customer ():
  print ("Selamat Datang di Mengasyikkan Pedagang Grosir.")
  print ("Spesial Kita adalah jeruk mandarin.")
  print ("Selamat bersenang-senang!")

greet_customer ()
# mencetak baris ucapan

Def kata kunci memberi tahu Python bahwa kita mendefinisikan suatu fungsi. Fungsi ini disebut greet_customer. Segala sesuatu yang diindentasi setelah :  adalah apa yang dijalankan ketika greet_customer () dipanggil. Jadi setiap kali kita memanggil greet_customer (), tiga pernyataan cetak dijalankan.

Instruksi
1. Tulis fungsi yang disebut loading_screen yang mencetak ""This page is loading..."" ke konsol.
2.  Di luar badan fungsi (unindented), panggil loading_screen ().

Script latihan :

def loading_screen():
  print ("This page is loading....")

loading_screen()

Hasil :

This page is loading....

Labels:

Belajar Python 3 - Function - Penggantar Function pada Python

Apa itu Fungsi?

Mari kita bayangkan bahwa kita membuat program yang menyambut pelanggan ketika mereka memasuki toko kelontong. Kita ingin layar lebar di pintu masuk toko menampilkan :

Selamat Datang di Toko Grosir.
Spesial kami adalah jeruk mandarin.
Selamat berbelanja!

Kita telah belajar menggunakan pernyataan cetak untuk tujuan ini:

print("Welcome to Engrossing Grocers.")
print("Our special is mandarin oranges.")
print("Have fun shopping!")

Setiap kali pelanggan masuk, Kita memanggil tiga baris kode ini. Sekalipun hanya 3 atau 4 pelanggan yang datang, dibutuhkan banyak baris kode.

Dengan Python, kita bisa membuat proses ini lebih mudah dengan menetapkan baris kode ini ke suatu fungsi. Kita akan memberi nama fungsi ini greet_customer. Untuk memanggil suatu fungsi, Kita menggunakan sintaks function_name (). Tanda kurung itu penting! Mereka membuat kode di dalam fungsi berjalan. Dalam contoh ini, pemanggilan fungsi tampak seperti:

greet_customer()

Setiap kali kita memanggil greet_customer (), kita akan melihat:

Selamat datang di Engrossing Grocer's.
Spesial kami adalah jeruk mandarin.
Selamat berbelanja!

Memiliki fungsi ini di dalam greet_customer() adalah bentuk yang lebih baik, karena kita telah mengisolasi perilaku ini dari sisa kode kita. Setelah kita menentukan bahwa greet_customer() berfungsi seperti yang kita inginkan, kita dapat menggunakannya kembali di mana saja dan yakin bahwa itu akan respon, tanpa harus melihat implementasinya. Kita bisa mendapatkan output yang sama, dengan kode mengurangi pengulangan. Kode yang diulang umumnya lebih rentan kesalahan dan lebih sulit untuk dipahami, jadi  mengurangi jumlah pengulangannya adalah tujuan yang baik.

Instruksi
1. Di script.py, Kita telah membuat fungsi untuk Anda bernama sing_song. Panggil fungsi ini sekali untuk melihat apa yang dicetaknya.
Script Latihan :
def sing_song():
  print("You may say I'm a dreamer")
  print("But I'm not the only one")
  print("I hope some day you'll join us")
  print("And the world will be as one")
  
# call sing_song() below:
sing_song()
sing_song()


Hasil :
You may say I'm a dreamer
But I'm not the only one
I hope some day you'll join us
And the world will be as one
None

Labels:

Belajar Python 3 - User Input

Input Pengguna

Cara menetapkan variabel dengan input pengguna.

Sejauh ini, kita telah membahas cara menetapkan nilai variabel secara langsung dalam file Python. Namun, kita sering ingin pengguna program memasukkan informasi baru ke dalam program.

Bagaimana kita bisa melakukan ini? Ternyata, cara lain untuk menetapkan nilai ke variabel adalah melalui input pengguna.

Sementara kita menampilkan nilai variabel menggunakan print (), kita memberikan informasi ke variabel menggunakan input (). Fungsi input () memerlukan pesan cepat, yang akan dicetak untuk pengguna sebelum mereka memasukkan informasi baru. Sebagai contoh:

likes_snakes = input ("Anda suka ular?")

Pada contoh di atas, berikut ini akan terjadi:

    Program akan mencetak “Apakah Anda suka ular? "Untuk pengguna.
    Pengguna akan memasukkan jawaban (mis., "Ya! Saya memiliki tujuh ular sanca sebagai hewan peliharaan!").
    Variabel like_snakes akan diberi nilai jawaban pengguna (dalam hal ini, "Ya! Saya memiliki tujuh ular sanca sebagai hewan peliharaan!").


Input () tidak hanya dapat digunakan untuk mengumpulkan semua jenis informasi yang berbeda dari pengguna, tetapi begitu Anda menyimpan informasi itu sebagai variabel, Anda dapat menggunakannya untuk mensimulasikan interaksi:

>>> favorite_fruit = input ("Apa buah kesukaanmu?")
Apa buah favorit anda? mangga
>>> cetak ("Oh keren! Saya suka" + favorite_fruit + "juga, tapi saya pikir buah favorit saya adalah apel.")
Oh ya! Saya juga suka mangga, tetapi saya pikir buah favorit saya adalah apel.

Ini adalah implementasi input () yang cukup mendasar, tetapi saat Anda semakin terbiasa dengan Python, Anda akan menemukan skenario yang semakin menarik di mana Anda ingin berinteraksi dengan pengguna Anda.

Labels:

Belajar Python 3 - Membuat Informasi Pembelian dan Kwitansi untuk Toko meubel

Buat Informasi Pembelian dan Kwitansi untuk Loveseats Cantik

Kami telah memutuskan untuk mengejar impian kepemilikan bisnis kecil dan membuka toko furnitur bernama Lovely Loveseats for Neat Suites di Fleet Street. Dengan pengetahuan baru kami tentang pemrograman Python, kami akan membangun sebuah sistem untuk membantu mempercepat proses pembuatan tanda terima untuk pelanggan Anda.

Dalam proyek ini, kami akan menyimpan nama dan harga katalog toko furnitur dalam variabel. Anda kemudian akan memproses harga total dan daftar barang pelanggan, mencetaknya ke terminal output.

Harap dicatat: Proyek tidak menjalankan tes terhadap kode Anda. Pengalaman ini lebih terbuka untuk interpretasi Anda dan memberi Anda kebebasan untuk mengeksplorasi. Ingat bahwa semua variabel harus dinyatakan sebelum direferensikan dalam kode Anda.



Tugas
1/20 Lengkap
Tandai tugas sebagai selesai dengan mencentangnya
Menambahkan Dalam Katalog
1.  Mari kita tambahkan item pertama kami, Lovely Loveseat yang merupakan senama toko. Buat variabel yang disebut lovely_loveseat_description dan berikan padanya string berikut:

Loveseat yang indah. Campuran poliester berumbai di atas kayu. Tinggi 32 inci x 40 inci lebar x 30 inci. Merah atau putih.

2.

Hebat, sekarang mari kita membuat harga untuk kursi empuk itu. Buat variabel lovely_loveseat_price dan atur sama dengan 254.00.
3.

Mari memperpanjang inventaris kami dengan perabot khas lainnya! Buat variabel yang disebut stylish_settee_description dan berikan padanya string berikut:

Sofa bergaya. Kulit imitasi pada birch. Tinggi 29,50 x x 54,75 inci x 28 inci. Hitam.

4.

Sekarang mari kita tentukan harga untuk Stylish Settee kami. Buat variabel stylish_settee_price dan berikan nilai 180,50.
5.

Luar biasa, kami hanya perlu satu item lagi sebelum kami siap untuk bisnis. Buat variabel baru yang disebut luxurious_lamp_description dan tetapkan sebagai berikut:

Lampu Mewah. Kaca dan besi. 36 inci. Coklat dengan warna krim.

6.

Mari kita tetapkan harga untuk item ini. Buat variabel yang disebut luxurious_lamp_price dan atur sama dengan 52.15.
7.

Untuk menjadi bisnis, kita juga harus menghitung pajak penjualan. Mari kita simpan itu dalam variabel juga.

Tentukan variabel sales_tax dan set sama dengan .088. Itu 8,8%.
Pelanggan Pertama kami
8.

Pelanggan pertama kami melakukan pembelian! Mari terus menghitung pengeluaran mereka dengan mendefinisikan variabel yang disebut customer_one_total. Karena mereka belum membeli apa pun, mari tetapkan variabel itu sama dengan 0 untuk saat ini.
9.

Kami juga harus menyimpan daftar uraian hal-hal yang mereka beli. Buat variabel yang disebut customer_one_itemization dan setel itu sama dengan string kosong "". Kami akan menempelkan uraian ini saat mereka melakukan pembelian.
10.

Pelanggan kami telah memutuskan bahwa mereka akan membeli Loveseat Indah kami! Tambahkan harga ke customer_one_total.
11.

Mari kita mulai melacak barang-barang yang dibeli oleh pelanggan kami. Tambahkan deskripsi Loveseat Indah ke customer_one_itemization.
12.

Pelanggan kami juga telah memutuskan untuk membeli Lampu Mewah! Mari kita tambahkan harga ke total pelanggan.
13.

Biarkan itemisasi tetap terbaru dan tambahkan deskripsi Lampu Mewah ke itemisasi kami.
14.

Mereka siap untuk check out! Mari kita mulai dengan menghitung pajak penjualan. Buat variabel yang disebut customer_one_tax dan atur sama dengan customer_one_total kali sales_tax.
15.

Tambahkan pajak penjualan ke total biaya pelanggan.
16.

Mari mulai mencetak tanda terima mereka! Mulailah dengan mencetak judul untuk itemisasi mereka. Cetak frasa "Item Pelanggan Satu:".
17.

Cetak customer_one_itemization.
18.

Sekarang tambahkan judul untuk total biaya mereka: Cetak "Total Pelanggan Satu:"
19.

Sekarang cetak totalnya! Pelanggan pertama kami sekarang memiliki tanda terima untuk barang-barang yang mereka beli.
20.

Selamat! Kami menciptakan katalog kami dan melayani pelanggan pertama kami. Kami menggunakan pengetahuan kami tentang string dan angka untuk membuat dan memperbarui variabel. Kami dapat mencetak daftar terperinci dan total biaya untuk pelanggan kami. Menyenangkan!



Script Latihan : 


lovely_loveseat_description = " Tufted polyester blend on wood. 32 inches high x 40 inches wide x 30 inches deep. Red or white. "
lovely_loveseat_price = 254.00
stylish_settee_description = " Stylish Settee. Faux leather on birch. 29.50 inches high x 54.75 inches wide x 28 inches deep. Black. "
stylish_settee_price = 180.50
luxurious_lamp_description = "Luxurious Lamp. Glass and iron. 36 inches tall. Brown with cream shade."
luxurious_lamp_price = 52.15
sales_tax = .088

# Our First Customer
customer_one_total = 0

customer_one_itemization = ""

customer_one_total += lovely_loveseat_price

customer_one_itemization += lovely_loveseat_description

customer_one_total += luxurious_lamp_price

customer_one_itemization += luxurious_lamp_description

customer_one_tax = customer_one_total * sales_tax

customer_one_total += customer_one_tax

print(customer_one_itemization)
print(customer_one_total)
print( customer_one_itemization + str(customer_one_total) )

Hasil

Tufted polyester blend on wood. 32 inches high x 40 inches wide x 30 inches deep. Red or white. Luxurious Lamp. Glass and iron. 36 inches tall. Brown with cream shade.
333.09119999999996

 Tufted polyester blend on wood. 32 inches high x 40 inches wide x 30 inches deep. Red or white. Luxurious Lamp. Glass and iron. 36 inches tall. Brown with cream shade.333.09119999999996

Labels:

Belajar Python 3 - Syntax - Plus Equals

Plus Equals

Python menawarkan singkatan untuk memperbarui variabel. Ketika Anda memiliki nomor yang disimpan dalam variabel dan ingin menambah nilai variabel saat ini, Anda dapat menggunakan operator + = (plus-sama dengan).

# First we have a variable with a number saved
number_of_miles_hiked = 12

# Then we need to update that variable
# Let's say we hike another two miles today
number_of_miles_hiked += 2

# The new value is the old value
# Plus the number after the plus-equals
print(number_of_miles_hiked)
# Prints 14

Di atas, kami terus menghitung jumlah mil yang ditempuh seseorang dari waktu ke waktu. Alih-alih menghitung ulang dari awal, kami menyimpan total besar dan memperbaruinya ketika kami sudah hiking lebih jauh.

Operator plus-sama juga dapat digunakan untuk penggabungan string, seperti:

hike_caption = "What an amazing time to walk through nature!"

# Almost forgot the hashtags!
hike_caption += " #nofilter"
hike_caption += " #blessed"

Kami membuat teks media sosial untuk foto alam yang kami ambil saat mendaki, tetapi kemudian memperbarui teks untuk menyertakan tag media sosial penting yang hampir kami lupa.

Instruksi
1. Kami melakukan sedikit belanja online dan menemukan sepasang sepatu baru. Tepat sebelum kami check out, kami melihat sweater bagus dan beberapa buku menyenangkan yang juga ingin kami beli!

Gunakan operator +=  untuk memperbarui total_price untuk memasukkan harga nice_sweater dan fun_books.

Harga (juga termasuk dalam ruang kerja) adalah:

    new_sneakers = 50,00
    nice_sweater = 39.00
    fun_books = 20.00

Script Latihan :
total_price = 0

new_sneakers = 50.00

total_price += new_sneakers

nice_sweater = 39.00
fun_books = 20.00
# Update total_price here:
total_price += nice_sweater + fun_books
print("The total price is"total_price)

Hasil :
The total price is 109.0


Sunday, 24 May 2020

Belajar Python 3 - Syntax - Concatenation

Concatenation

Operator + tidak hanya menambahkan dua angka, tetapi juga dapat "menambahkan" dua string! Proses menggabungkan dua string disebut penggabungan string. Penggabungan string membuat string baru yang terdiri dari konten string pertama diikuti oleh konten string kedua (tanpa ada ruang tambahan di antara keduanya).

greeting_text = "Hey there!"
question_text = "How are you doing?"
full_text = greeting_text + question_text

# Prints "Hey there!How are you doing?"
print(full_text)

Dalam contoh kode ini, kami membuat dua variabel yang menyimpan string dan kemudian menggabungkannya. Tapi kami perhatikan bahwa hasilnya tidak ada spasi di antara keduanya, mari kita tambahkan ruang di antaranya menggunakan operator gabungan yang sama!

full_text = greeting_text + " " + question_text

# Prints "Hey there! How are you doing?"
print(full_text)

Sekarang kode mencetak pesan yang kami harapkan.

Jika Anda ingin menggabungkan string dengan angka, Anda harus membuat angka menjadi string terlebih dahulu, menggunakan fungsi str() . Jika Anda mencoba untuk print() variabel numerik, Anda dapat menggunakan koma untuk meneruskannya sebagai argumen yang berbeda daripada mengubahnya menjadi string.

birthday_string = "I am "
age = 10
birthday_string_2 = " years old today!"

# Concatenating an integer with strings is possible if we turn the integer into a string first
full_birthday_string = birthday_string + str(age) + birthday_string_2

# Prints "I am 10 years old today!"
print(full_birthday_string)

# If we just want to print an integer 
# we can pass a variable as an argument to 
# print() regardless of whether 
# it is a string.

# This also prints "I am 10 years old today!"
print(birthday_string, age, birthday_string_2)

Menggunakan str () kita bisa mengonversi variabel yang bukan string ke string dan kemudian menyatukannya. Tetapi kita tidak perlu mengonversi angka menjadi string agar itu menjadi argumen untuk pernyataan cetak.
Instruksi
1. Menggabungkan string dan menyimpan pesan yang mereka bentuk di pesan variabel.

Sekarang batalkan komentar pada pernyataan cetak dan jalankan kode Anda untuk melihat hasilnya di terminal!
Script Latihan :
string1 = "The wind, "
string2 = "which had hitherto carried us along with amazing rapidity, "
string3 = "sank at sunset to a light breeze; "
string4 = "the soft air just ruffled the water and "
string5 = "caused a pleasant motion among the trees as we approached the shore, "
string6 = "from which it wafted the most delightful scent of flowers and hay."

# Define message below:
message = string1 + string2 + string3 + string4 + string5 + string6
Hasil :
The wind, which had hitherto carried us along with amazing rapidity, sank at sunset to a light breeze; the soft air just ruffled the water and caused a pleasant motion among the trees as we approached the shore, from which it wafted the most delightful scent of flowers and hay.

Labels: