Contoh Kode Python untuk Pemula
Contoh Kode Python untuk Pemula
Minggu 1
PPA 1
Cetak 5 bilangan bulat positif pertama dalam urutan menaik dengan satu angka
di setiap baris
untuk i dalam rentang (5):
cetak(i+1)
PPA 2
Cetak pola berikut ini.
*
**
***
****
*****
Tidak ada spasi antara bintang berturut-turut. Tidak ada spasi
di akhir setiap baris.
untuk i dalam rentang (1,6):
untuk j dalam rentang(1,i+1):
print("*", end = '')
cetak()
PPA 3
Terima integer sebagai masukan dan cetak kuadratnya sebagai keluaran.
n = int(input())
cetak(n**2)
PPA 4
Terima dua bilangan bulat sebagai input dan cetak jumlahnya sebagai output.
a = int(input())
b = int(input())
cetak(a+b)
PPA 5
Terima dua kata sebagai input dan cetak dua kata setelah menambahkan a
ruang di antara mereka.
cetak(input(), input())
PPA 6
Terima nomor pendaftaran kendaraan sebagai masukan dan cetak.
kode-negara sebagai keluaran.
s = input()
print(s[0:2])
PPA 7
Terima nomor lima digit sebagai input dan cetak jumlah digitnya sebagai
output.
num = input()
d1 = int(num[0])
d2 = int(num[1])
d3 = int(num[2])
d4 = int(num[3])
d5 = int(num[4])
dsum = d1 + d2 + d3 + d4 + d5
print(dsum)
GrPA 1
Terima lima kata sebagai input dan cetak kalimat yang dibentuk oleh ini
kata setelah menambahkan spasi antara kata-kata berturut-turut dan sebuah titik.
pada akhirnya.
kata1 = input()
kata2 = input()
word3 = input()
kata4 = input()
kata5 = input()
space = ' '
stop = '.'
sentence = word1 + space + word2 + space + word3 + space + word4 + space +
kata5 + berhenti
cetak(teks)
GrPA 2
Terima tanggal diDD-BB-TTTTformat sebagai input dan cetak
tahun sebagai keluaran.
date = input()
year = date[-4: ]
cetak(tahun)
GrPA 3
Terima urutan lima angka digit tunggal yang dipisahkan oleh koma
sebagai input. Cetak hasil kali dari semua lima angka.
num = input()
d1 = int(num[0])
d2 = int(num[2])
d3 = int(num[4])
d4 = int(num[6])
d5 = int(num[8])
dprod = d1 * d2 * d3 * d4 * d5
print(dprod)
GrPA 4
Anggaplah bahwa beberapa IIT mulai menawarkan gelar online di seluruh
beberapa cabang. Alamat email seorang siswa didefinisikan sebagai
mengikuti:
cabang_gelar_tahun_nomer@[Link]
Misalnya, jika alamat email
adalahCS_BT_21_7412@[Link], maka ini
mahasiswa berasal dari jurusan ilmu komputer, sedang menempuh BTech
gelar dari IITM, mulai dari tahun 2021, dengan 7412 sebagai
nomor [Link], gelardantahunadalah kode dengan panjang dua,
sementaragulungdanlembagaadalah kode dengan panjang empat. Terima a
email-id siswa sebagai input dan cetak rincian berikut, satu
item on each line: (1) Branch (2) Degree (3) Year (4) Roll
nomor (5) Institut
email = input()
branch = email[:2]
gelar = email[3: 5]
tahun = email[6:8]
roll = email[9:13]
institute = email[-10:-6]
cetak(cabang)
cetak(gelar)
cetak(tahun)
cetak(roll)
cetak(institut)
GrPA 5
Terima dua bilangan bulat positifxdanysebagai input. Cetak jumlah dari
digit dalam xy.
x = int(input())
y = int(input())
res = x ** y
res_str = str(res)
cetak(len(res_str))
GrPA 6
Terapkan dua bilangan bulat positifMdanNsebagai input. Ada dua kasus
M = int(input())
N = int(input())
cetak(M % N)
Minggu 2
PPA 1
Terima bilangan bulat tidak nol sebagai masukan. Cetakpositifjika itu
lebih besar dari nol dannegatifjika kurang dari nol.
n = int(input())
jika n>0:
cetak('positif')
lainnya:
cetak('negatif')
PPA 2
Pertimbangkan fungsi potongan yang diberikan di bawah ini.
PPA 3
T = int(masuk())
jika T<0:
cetak('TIDAK VALID')
jika 0<=T<=5:
cetak('MALAM')
jika 6<=T<=11:
cetak('PAGI')
elif 12<=T<=17:
SETELAH SIANG
elif 18<=T<=23:
CETALAN
lainnya:
cetak('TIDAK SAH')
PPA 4
Terima sebuah titik di ruang 2D sebagai input dan temukan wilayah dalam ruang yang dimiliki oleh titik ini. A
titik dapat termasuk dalam salah satu dari empat kuadran, atau bisa berada di salah satu dari dua sumbu, atau itu
bisa jadi asalnya. Input diberikan dalam 2 baris: baris pertama adalah koordinat-x dari titik
sementara baris kedua adalah koordinat-y nya. Output yang mungkin
adalahpertama, kedua, ketiga, keempat, sumbu x, sumbu-y, danasal. Output lain tidak akan
diterima. catat bahwa semua keluaran harus dalam huruf kecil.
x = float(input())
y = float(input())
jika x>0:
jika y>0:
cetak("pertama")
elif y<0:
cetak("keempat")
elif(y==0):
sumbu-x
jika x<0:
jika y>0:
cetak("kedua")
elif(y<0):
print("ketiga")
elif(y==0):
sumbu-x
jika x==0:
jika y==0:
cetak("asal")
lainnya:
sumbu-y
PPA 5
Tulis program untuk mewujudkan persamaan garis yang diberikan 2
titik (x1,y1) dan (x2y2) dalam ruang 2D. Inputnya terdiri dari 5 baris di mana,
garis pertama, kedua, ketiga, dan keempat mewakili x1, y1, x2,
dan y2masing-masing. Garis kelima sesuai dengan x3.
Tentukan y3menggunakan persamaan garis lurus seperti yang diberikan di bawah ini:
− 1 − 1
−
= −
2121
Keluaran harus berupa "Garis Vertikal" jika garisnya vertikal. Di lain
kasus, outputnya harus 2 baris, di mana baris pertama adalah nilai
dari y3dan baris kedua menunjukkan apakah kemiringan garis tersebut adalah
"Kemiringan Positif", "Kemiringan Negatif" atau
Garis Horizontal
Perhatikan bahwa semua input harus diproses sebagai bilangan riil.
x1 = float(input())
y1 = float(input())
x2 = float(input())
y2 = float(input())
x3 = float(input())
jika x1==x2:
cetak("Garis Vertikal")
lainnya:
slope = (y2-y1)/(x2-x1)
y3 = y1 + kemiringan*(x3-x1)
print(y3)
jika kemiringan>0:
Cetak("Kemiringan Positif")
elif kemiringan<0:
Cetak("Kemiringan Negatif")
selain itu:
cetak("Garis Horizontal")
PPA 6
Terima sebuah string sebagai input. Jika string input memiliki panjang ganjil, maka
lanjutkan dengan itu. Jika string input memiliki panjang genap, buatlah
string dengan panjang ganjil seperti di bawah ini:
s = input()
n = len(s)
jika n%2 == 0:
jika s[n-1]=='.':
s=s[:-1]
lainnya:
s=s+'.'
n = int((len(s)-1)/2)
cetak(s[n-1: n+2])
PPA 7
Sebuah rangkaian lima kata disebut ajaib jika ikekata adalah substring dari (i+1)thkata untuk setiap i
dalam rentang 1≤ saya < 5. Terima sebuah urutan lima kata sebagai masukan, satu kata di setiap baris. Cetakmagis jika
a = input()
b = input()
c = input()
d = input()
e = input()
jika(a dalam b dan b dalam c dan c dalam d dan d dalam e):
c magical
lainnya:
cetak("non-magis")
PPA 8
(1) Ketiga dari mereka seharusnya mendapatkan bagian yang bukan nol.
(2) Tidak ada dua di antara mereka yang boleh mendapatkan jumlah koin yang sama.
Anda seharusnya tidak memiliki koin apa pun di tangan Anda pada akhir berbagi ini.
proses.
PPA 10
Terima angka nyata x sebagai input dan mencetak bilangan bulat terbesar yang kurang dari
x
kurang dari atau sama dengan di baris pertama, diikuti oleh bilangan bulat terkecil
GrPA 1
Terima tiga bilangan bulat positif sebagai masukan dan periksa apakah mereka membentuk
sisi-sisi segitiga siku-siku. Cetak YA jika mereka membentuknya, dan TIDAK jika tidak
tidak. Input akan memiliki tiga baris, dengan satu bilangan bulat di setiap baris.
Keluaran harus berupa satu baris yang berisi salah satu dari dua ini
strings: YES or NO.
x = int(input())
y = int(input())
z = int(input())
GrPA 2
EvenOdd adalah sebuah startup teknologi. Setiap karyawan di startup ini diberikan ID karyawan yang merupakan unik.
Bilangan bulat positif. Pada suatu sore Minggu yang hangat, lima karyawan perusahaan berkumpul untuk sebuah
rapat dan duduk di meja bundar:
Para karyawan mengikuti konvensi yang aneh. Mereka akan melanjutkan pertemuan hanya jika yang berikut ini
kondisi terpenuhi.
Jumlah dari ID karyawan setiap pasangan karyawan yang bersebelahan di meja harus genap
nomor.
Mereka sangat malas sehingga mereka tidak akan bergerak untuk memenuhi kondisi di atas, jika penempatan saat ini
rencana tidak memenuhi syarat, pertemuan akan dibatalkan. Anda diberikan id-karyawan dari semua
lima karyawan. Tugas Anda adalah memutuskan apakah pertemuan itu berlangsung atau tidak.
Input akan terdiri dari lima baris, masing-masing berisi sebuah bilangan bulat. Yang ithbaris akan memiliki id-karyawan dari Ei.
Keluaran akan menjadi satu baris yang berisi salah satu dari dua string ini: YA atau TIDAK.
e1 = int(input())
e2 = int(input())
e3 = int(input())
e4 = int(input())
e5 = int(input())
Periksa apakah jumlahnya ganjil untuk setiap pasangan karyawan bersebelahan
jika (e1 + e2) % 2 != 0:
cetak('TIDAK')
elif (e2 + e3) % 2 != 0:
cetak('TIDAK')
elif (e3 + e4) % 2 != 0:
cetak('TIDAK')
elif (e4 + e5) % 2 != 0:
cetak('TIDAK')
jika (e5 + e1) % 2 != 0:
cetak('TIDAK')
Jika jumlahnya genap untuk setiap pasangan karyawan yang berdekatan,
# then the else block gets executed
lainnya:
cetak('YA')
GrPA 3
Terima sebuah string sebagai input dan cetak vokal yang ada dalam string tersebut.
urut abjad. Jika string tidak mengandung huruf vokal, maka
cetak stringnone sebagai output. Setiap vokal yang muncul dalam input
string–terlepas dari kasusnya harus muncul hanya sekali dalam huruf kecil
dalam output.
input_string = input().lower()
vowels = ""
jika "a" ada di input_string:
vokal += "a"
jika "e" ada dalam input_string:
vokal += "e"
jika "saya" ada dalam input_string:
vokal += "i"
jika "o" dalam input_string:
vokal += "o"
jika "u" dalam input_string:
vokal += "u"
periksa apakah huruf vokal tidak kosong
jika vokal != "" :
cetak(vokal)
lainnya:
cetak('tidak ada')
GrPA 4
Anda diberikan tanggal lahir dua orang, tidak harus dari
keluarga yang sama. Tugas Anda adalah menemukan yang lebih muda dari keduanya. Jika keduanya
dari mereka memiliki tanggal lahir yang sama, maka yang lebih muda dari keduanya adalah
diasumsikan sebagai orang yang namanya muncul pertama kali dalam urutan alfabet
perintah.
Input akan memiliki empat baris. Dua baris pertama sesuai dengan
orang pertama, sementara dua baris terakhir sesuai dengan yang kedua
orang. Untuk setiap orang, baris pertama sesuai dengan nama dan
baris kedua sesuai dengan tanggal lahir dalam format "DD-MM-TTTT"
format. Keluaran Anda harus nama yang lebih muda dari keduanya.
n1 = input()
d1 = input()
n2 = input()
d2 = input()
jika d1==d2 :
jika n1<n2 :
cetak(n1)
lainnya :
cetak(n2)
elif d1[-4:] != d2[-4:] :
jika int(d1[-4:]) < int(d2[-4:]):
cetak(n2)
lainnya :
print(n1)
elif d1[3:5] != d2[3:5]:
jika int(d1[3:5]) < int(d2[3:5]):
print(n2)
lainnya :
print(n1)
lainnya :
jika int(d1[0:2]) < int(d2[0:2]):
cetak(n2)
lainnya :
cetak(n1)
GrPA 5
Terima input string. Tugas Anda adalah untuk menentukan apakah string input merupakan kata sandi yang valid atau tidak. Untuk sebuah
string untuk menjadi kata sandi yang valid, itu harus memenuhi semua syarat yang diberikan di bawah:
(2) Ini harus diawali dengan huruf kapital atau huruf kecil
(3) Itu tidak seharusnya memiliki karakter-karakter ini: / \ = ' "
p = input()
jika 8 <= len(p) <= 32 dan p[0].isalpha() dan '/' tidak ada di p dan '\' tidak ada di p dan
'=' tidak ada dalam p dan '\'' tidak ada dalam p dan '"' tidak ada dalam p dan ' ' tidak ada dalam p :
print('Benar')
lainnya:
print('Salah')
Minggu 3
PPA 1
Terima integer positifnsebagai input dan cetak yang pertamanpositif
bilangan bulat, satu nomor di setiap baris.
n = int(input())
untuk i dalam rentang(1,n+1):
cetak(i)
PPA 2
Terima angka bulat positifnsebagai masukan dan mencetak semua faktor darinsatu
nomor di setiap baris.
n = int(input())
untuk i dalam rentang(1,n+1):
jika n%i==0:
cetak(i)
PPA 3
Terima dua bilangan bulat positifadanbsebagai input. Cetak jumlah dari semua
bilangan bulat dalam rentang [1000, 2000], titik akhir termasuk, yang merupakan
dapat dibagi oleh keduanyaadanbJika Anda tidak menemukan angka yang memenuhi ini
kondisi dalam rentang yang diberikan, maka cetak 0.
a = int(input())
b = int(input())
n=0
untuk i dalam rentang(1000,2001):
jika i%a==0 dan i%b==0:
n+=i
cetak(n)
PPA 4
Terima angka bulat positifnsebagai input, di mananlebih besar dari 1.
n
CetakPRIMEjika adalah bilangan prima danBAIKsebaliknya.
n = int(input())
prime= True
untuk i dalam rentang(2,n):
jika(n%i==0):
prime= False
jika prima:
cetak('PRIME')
lainnya:
print('BUKANPRIME')
PPA 5
Terima urutan bilangan bulat positif sebagai input dan cetak
jumlah maksimum dalam urutan. Masukan akan memilikin + 1garis
di mananmenunjukkan jumlah suku dalam urutan tersebut. Yangsaya
th garis di
PPA 6
Terima urutan kata sebagai input dan cetak kata terpendek
dalam urutan. Input akan memilikin + 1garis, di mananmenunjukkan
jumlah suku dalam deret [Link] dalam
th input akan
mengandungsaya
th kata dalam urutan untuk1 <= i <= nBaris terakhir
dari input akan selalu menjadi
stringabcdefghijklmnopqrstuvwxyzString ini bukan sebuah
bagian dari urutan. Anda dapat menganggap bahwa setiap kasus uji
corresponds to a non-empty sequence of words. If there are multiple
kata-kata yang memiliki panjang minimum yang sama, cetak yang pertama seperti itu
kejadian.
s = input()
small = s
selama (s != 'abcdefghijklmnopqrstuvwxyz'):
jika(len(s))<len(kecil):
small = s
s = input()
cetak(kecil)
PPA 7
Terima sebuah bilangan bulat positif sebagai input dan cetak jumlah digitnya
angka.
n = input()
sum = 0
untuk i di n:
jumlah += int(i)
cetak (jumlah)
PPA 8
Terima angka bulat positifnmasukan dan cetak yang pertamanbilangan bulat pada a
garis dipisahkan oleh koma.
n = int(input())
untuk i dalam rentang (1,n):
cetak(i, akhir=',')
cetak(n)
PPA 9
n = int(input())
untuk i di rentang(1,n+1):
untuk j dalam rentang(1,i+1):
cetak(0, akhir = '')
cetak()
PPA 10
Terima bilangan bulat positifnsebagai input dan cetak jumlah dari semua bilangan prima
angka dalam kisaran[1, n], titik akhir termasuk. Jika tidak ada
bilangan prima dalam rentang yang diberikan, maka cetak 0.
n = int(input())
sum = 0
prime = True
untuk i dalam rentang(2,n+1):
untuk j dalam rentang (2,i):
jika i % j == 0:
prime = False
jika prima:
sum+=i
prime = True
cetak(jumlah)
PPA 11
Accept a positive integer n as input and find all solutions to the
persamaan:
x2+y2=z2
terikat oleh batasan berikut:
(1) x, y dan z adalah bilangan bulat positif
(2) x<y<z<n
Cetak setiap triplet solusi dalam satu baris—x,y,z—dengan koma
antara bilangan bulat berturut-turut. Triplet harus dicetak dalam
urutan menaik. Jika Anda tidak menemukan solusi yang memuaskan yang diberikan
kendala, cetak string TIDAK ADA SOLUSI sebagai output.
Hubungan urutan di antara triplet
Diberikan dua triplet T1 = (x1, y1, z1) dan T2= (x2, y2, z2), gunakan yang berikut ini
proses untuk membandingkan mereka:
(3) Jika x1= x2dan y1= y2dan z1< z2, kemudian T1< T2
n=int(input())
c=True
untuk x di rentang(1,n):
untuk y dalam rentang(1,n):
untuk z dalam rentang(1,n):
jika (x*x)+(y*y)==z*z dan x<y<z<n:
print(x,y,z, sep=',')
c=False
jika c:
cetak('TIDAK ADA SOLUSI')
PPA 12
Terima dua string sebagai masukan dan bentuk string baru dengan menghapus semua
characters from the second string which are present in the first string.
Cetak string baru ini sebagai output. Anda dapat menganggap bahwa semua string input
akan dalam huruf kecil.
a = input()
b = input()
untuk c di a:
jika c ada di b:
b = [Link](c,'')
cetak(b)
GrPA 1
Terima integer positifnsebagai input dan cetak jumlah dari
pertamansyarat dari seri yang diberikan di bawah ini:
1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) + ...
Untuk lebih jelasnya, istilah pertama dalam seri adalah1, istilah kedua adalah (1 +
2)dan seterusnya.
n = int(input())
total = 0
untuk i dalam rentang(1, n + 1):
untuk j dalam rentang(1, i + 1):
total = total + j
cetak(total)
GrPA 2
Terima integer positifn, dengann > 1, sebagai masukan dari pengguna dan
cetak semua faktor prima darindalam urutan menaik.
n = int(input())
untuk f dalam rentang(2, n + 1):
pertama periksa apakah f adalah faktor dari n
jika n % f == 0:
sekarang periksa apakah f adalah bilangan prima
is_prime = True
untuk i dalam rentang(2, f):
jika f % i == 0:
is_prime = False
istirahat
jika adalah_prima:
cetak(f)
GrPA 3
Sebuah bot mulai di titik asal—(0,0)—dan dapat melakukan gerakan berikut:
• NAIK
• TURUN
• KIRI
• KANAN
Setiap gerakan memiliki magnitudo 1 unit. Terima urutan gerakan yang dilakukan oleh bot sebagai masukan.
entri pertama dalam urutan selalu START sementara entri terakhir dalam urutan selalu STOP. A
urutan sampel diberikan di bawah ini:
MULAI
ATAS
BENAR
KIRI
KIRI
TURUN
UP
BERHENTI
Cetak jarak Manhattan dari bot ke asal. Jika bot berada di posisi (x, y), maka jaraknya adalah
Jarak Manhattan dari origin diberikan oleh persamaan:
D = |x| + |y|
GrPA 4
Terima string sebagai input, ubah menjadi huruf kecil, urutkan string dalam
urutan alfabet, dan cetak string yang sudah diurutkan ke konsol. Anda dapat
asumsikan bahwa string hanya akan berisi huruf.
s=input().lower()
abcdefghijklmnopqrstuvwxyz
t=''
untuk x dalam a:
untuk y dalam s:
jika x==y:
t+=y
cetak(t)
GrPA 5
Terima nomor telepon sebagai input. Nomor telepon yang valid harus memenuhi
kendala berikut.
(1) Nomor harus dimulai dengan salah satu digit ini: 6, 7, 8, 9
Jumlahnya harus tepat 10 digit panjang.
(3) Tidak ada digit yang boleh muncul lebih dari 7 kali dalam angka.
(4) Tidak ada digit yang boleh muncul lebih dari 5 kali berturut-turut dalam
nomor.
Jika kondisi keempat tidak begitu jelas, maka pertimbangkan contoh ini:
nomor9888888765tidak valid karena digit 8 muncul lebih banyak
lebih dari 5 kali berturut-turut. Cetak stringvalidjika nomor telepon adalah
valid. Jika tidak, cetak stringnyatidak valid.
n=input()
a=False
jika len(n)==10 dan int(n[0])>5 dan [Link]():
untuk i dalam rentang(10):
jika [Link](n[i])<8:
a=True
jika n[i]*6 ada di n:
a=False
istirahat
lainnya:
istirahat
jika a:
cetak('valid')
lainnya:
cetak('tidak valid')
GrPA 6
Terima bilangan bulat positifnsebagai input dan mencetak "panah angka" dari
ukurannSebagai contoh,n = 5harus menghasilkan output berikut:
1
1,2
1,2,3
1,2,3,4
1,2,3,4,5
1,2,3,4
1,2,3
1,2
1
n
Anda dapat menganggap bahwa lebih besar dari atau sama dengan 2 untuk semua tes
Minggu 4
PPA 1
Terima angka bulat positifnsebagai input dan cetak daftar yang pertamanbilangan bulat positif sebagai output.
n = int(input())
l=[]
untuk i dalam rentang(1,n+1):
[Link](i)
cetak(l)
PPA 2
Terima serangkaian kata sebagai masukan, tambahkan semua kata ini ke dalam daftar sesuai urutan di mana
mereka dimasukkan, dan cetak daftar ini sebagai output. Baris pertama dalam input adalah positif
nitu menunjukkan jumlah kata dalam urutan. Selanjutnyangaris akan memiliki satu
bilangan bulat
kata di setiap baris.
n = int(input())
l=[]
untuk i dalam rentang(n):
x = input()
[Link](x)
cetak(l)
PPA 3
Terima urutan angka bulat yang dipisahkan oleh koma sebagai masukan dan cetak nilai maksimum di dalamnya.
urutan sebagai keluaran.
Petunjuk:
Ketika ragu, selalu cetak variabel dan periksa outputnya.
1num='1,2,3,4,5'
2L=[Link](',')
num = input().split(',')
max = -1
untuk i dalam rentang(len(num)):
jika(int(num[i])>max):
max = int(num[i])
cetak(maks)
PPA 4
Pertanyaan ini memperkenalkan Anda pada gagasan kode prefiks. Kode prefiks adalah sekelompok kode yang terlihat bahwa
sudah diberikan kepada Anda. Anda harus mengetik kode Anda di bawah kode prefiks. Perhatikan bahwa isi dari
awalan tidak dapat dimodifikasi.
DaftarL Kata-kata sudah diberikan kepada Anda sebagai bagian dari kode prefiks. Cetak kata terpanjang dalam daftar.
Jika ada beberapa kata dengan panjang maksimum yang sama, cetak yang muncul di
ujung paling kanan dari daftar.
Anda tidak perlu menerima input dari konsol karena ini sudah diberikan kepada Anda
L = input().split(',')
max=0
m=''
untuk i dalam rentang(len(L)):
jika len(L[i])>=max:
max=len(L[i])
m=''
m+=L[i]
cetak(m)
PPA 5
Terima urutan angka real positif yang dipisahkan dengan spasi sebagai masukan. Ubah setiap
elemen dari urutan menjadi bilangan bulat terbesar yang kurang dari atau sama dengan itu. Cetak urutan ini
bilangan bulat sebagai output, dengan koma di antara bilangan bulat yang berturut-turut.
x=input()
r=[Link](' ')
i=0
s=''
sementara i<( len(r)-1) :
n = int(float(r[i]))
s += str(n)+','
i += 1
n= int(float(r[i]))
s += str(n)
cetak(s)
PPA 6
Terima urutan kata-kata yang dipisahkan koma sebagai input. Balik urutan tersebut dan cetak sebagai output.
Petunjuk:
1cetak([1]+[2])
2print([2]+[1])
l=input().split(',')
untuk i dalam rentang(len(l)-1,0,-1):
print(l[i],end=',')
print(l[0])
PPA 7
Pertanyaan ini memperkenalkan Anda pada ide kode akhiran. Kode akhiran adalah blok kode yang terlihat bahwa
akan dieksekusi setelah kode apapun yang Anda ketik. Anda harus mengetik kode Anda di atas kode sufiks.
Perhatikan bahwa isi dari sufiks codec tidak dapat diubah.
Terima matriks persegi sebagai input dan simpan dalam variabel bernamamatriksBaris pertama dari input akan
be, n, jumlah baris dalam matriks. Setiap dari n baris berikutnya akan memiliki urutan n spasi-
bilangan bulat yang dipisahkan.
Anda tidak perlu mencetak output ke konsol karena kode sufiks sudah melakukan itu untuk Anda.
matrix=[]
n=int(input())
untuk i dalam rentang(n):
f=input().split(' ')
untuk j dalam rentang(n):
f[j]=int(f[j])
[Link](f)
cetak(matriks)
PPA 8
Matriks identitas adalah matriks persegi yang memiliki angka satu pada diagonal utama dan angka nol.
di tempat lain. Misalnya, matriks identitas ukuran 3×3 adalah:
[ ]
Terima angka bulat positif n sebagai input dan cetak matriks identitas ukuran n×n. Keluaran Anda
harus memiliki n baris, di mana setiap baris adalah urutan n bilangan bulat yang dipisahkan koma yang
berkaitan dengan satu baris dari matriks.
n=int(input())
untuk i dalam rentang(0,n):
untuk j dalam rentang(0,n):
jika(i==j):
j==(n-1):
cetak('1')
lainnya:
cetak('1',akhir=',')
lainnya:
j==(n-1):
cetak('0')
lainnya:
print('0',end=',')
PPA 9
Terima sebuah matriks kuadrat A dan sebuah bilangan bulat s sebagai masukan dan cetak matriksnya⋅Aas keluaran. Mengalikan a
matriks oleh sebuah integer ssis setara dengan mengalikan setiap elemen dari matriks dengan s. Sebagai contoh,
1 22 4
2∙[]=[ ]
3 46 8
Baris pertama dari input adalah bilangan bulat positif, n, yang menunjukkan dimensi dari matriks A. Setiap dari
n baris berikutnya berisi urutan bilangan bulat yang dipisahkan oleh spasi. Baris terakhir dari input berisi
bilangan bulat s.
Cetak matriks⋅Sebagai output. Setiap baris dari matriks harus dicetak sebagai rangkaian spasi
bilangan bulat terpisah, satu baris di setiap baris.
m=[]
n=int(input())
untuk i dalam rentang(n):
f=input().split(' ')
untuk j dalam rentang(n):
f[j]=int(f[j])
[Link](f)
s=int(input())
untuk i dalam rentang(n):
untuk j dalam rentang(n):
m[i][j]=m[i][j]*s
j < (n - 1):
cetak(m[i][j],akhir=' ')
lainnya:
cetak(m[i][j])
PPA 10
Terima dua matriks kuadrat A dan B dengan dimensi n×n sebagai input dan hitung jumlahnya A + B.
Baris pertama akan berisi integer n. Ini diikuti oleh 2n baris. Setiap dari n baris pertama adalah sebuah
urutan bilangan bulat yang dipisahkan dengan koma yang menunjukkan satu baris dari matriks A. Setiap dari n baris terakhir adalah
sebuah urutan bilangan bulat yang dipisahkan oleh koma yang menunjukkan satu baris dari matriks B.
Keluaran Anda harus sekali lagi menjadi urutan n baris, di mana setiap baris adalah urutan yang dipisahkan koma
bilangan bulat yang menunjukkan baris dari matriks A + B.
n=int(input())
a=[]
b=[]
untuk i dalam rentang(2):
untuk j dalam rentang(n):
f=[]
f=input().split(',')
untuk k dalam rentang(n):
f[k]=int(f[k])
jika i==0:
[Link](f)
lainnya:
[Link](f)
untuk i dalam rentang(n):
untuk j dalam rentang(n):
a[i][j]+=b[i][j]
j < n - 1:
cetak(a[i][j],akhir=',')
lainnya:
cetak(a[i][j])
PPA 11
This question introduces you to two ideas that will keep repeating throughout this course:
• Masukkan kode Anda di dalam fungsi. Kami akan membahas fungsi minggu depan. Satu-satunya hal yang Anda
yang perlu dilakukan untuk masalah ini adalah mengindent semua kode Anda ke kanan sejauh satu unit (empat spasi),
dan tempelkan ini di antara kode awalan dan akhiran.
• Ide kode tak terlihat. Kode tak terlihat adalah sepotong kode yang akan disembunyikan dari Anda
penglihatan. Kode yang tidak terlihat akan memodifikasi kode yang Anda tulis. Tetapi rincian dari
modifikasi tidak akan diberitahukan kepada Anda.
L adalah daftar angka real yang sudah diberikan kepada Anda. Anda harus mengurutkan daftar ini secara menurun
susun dan simpan daftar yang telah diurutkan dalam sebuah variabel yang disebutsorted_L.
Anda tidak perlu menerima input dari konsol karena itu telah diberikan kepada Anda.
tidak perlu mencetak output ke konsol. Input-Keluaran adalah tanggung jawab yang tak terlihat
kode untuk masalah ini.
def solusi(L):
### Masukkan solusi Anda di bawah garis ini
### Indentasi seluruh kode Anda satu unit (4 spasi) ke kanan
untuk i dalam rentang (len(L)):
untuk j di rentang(i + 1, len(L)):
jika(L[i] < L[j]):
t = L[i]
L[i] = L[j]
L[j] = t
sorted_L=L
### Masukkan solusi Anda di atas garis ini
kembalikan sorted_L
GrPA 1
Dalam baris pertama input, terima urutan kata yang dipisahkan oleh spasi. Di baris kedua dari
masukkan, terima satu kata. Jika kata ini tidak ada dalam urutan, cetakTIDAKJika kata ini
ada dalam urutan, maka cetakYAdan di baris berikutnya dari output, cetak nomor
jumlah kali kata itu muncul dalam urutan.
s=input().split(' ')
a=input()
jika a dalam s:
cetak('YA')
print([Link](a))
lainnya:
cetak('TIDAK')
GrPA 2
Anda diberikan daftarpenandayang memiliki nilai yang diperoleh oleh sekelas siswa dalam tes Matematika.
Temukan nilai median dan simpan dalam variabel float bernamamedianAnda dapat mengasumsikan bahwatandaadalah
sebuah daftar nilai float.
(2) Jika jumlah siswa ganjil, maka median adalah nilai tengah dalam urutan yang terurut. Jika
jumlah siswa genap, maka median adalah rata-rata aritmatika dari dua nilai tengah dalam
urutan terurut.
You do not have to accept input from the console as it has already been provided to you. You do not
harus mencetak keluaran ke konsol. Input-Keluaran adalah tanggung jawab autograder untuk ini
masalah. Rujuk PPA-11 jika Anda tidak yakin bagaimana ini bekerja.
def solusi(marks):
### Masukkan solusi Anda di bawah garis ini
### Indentasi seluruh kode Anda satu unit (4 spasi) ke kanan
marks_sort = []
untuk x dalam rentang(len(marks)):
marks_sort.append(min(marks))
[Link](min(marks))
jika len(marks_sort)%2 ==0:
median = (((marks_sort[(int(len(marks_sort)//2))-1] +
marks_sort[(int(len(marks_sort)//2)+1)-1])/2))
elif len(marks_sort)%2 != 0:
median = (marks_sort[(((int(len(marks_sort)))+1)//2)-1])
### Masukkan solusi Anda di atas garis ini
kembali median
GrPA 3
Terima dua matriks persegi A dan B dengan dimensi n×n sebagai input dan hitung produk mereka AB.
Baris pertama dari input akan berisi bilangan bulat n. Ini diikuti oleh 2n baris. Dari sini, masing-masing dari
n baris pertama adalah urutan bilangan bulat yang dipisahkan koma yang menunjukkan satu baris dari matriks A. Setiap
dari n baris terakhir adalah suatu urutan bilangan bulat yang dipisahkan dengan koma yang menunjukkan satu baris dari matriks B.
Keluaran Anda harus lagi menjadi urutan n baris, di mana setiap baris adalah urutan yang dipisahkan oleh koma
bilangan bulat yang menunjukkan baris dari matriks AB.
n = int(input())
# Menerima matriks A
A=[]
untuk i dalam rentang(n):
baris = [ ]
untuk x dalam input().split(','):
[Link](int(x))
[Link](row)
Terima matriks B
B=[]
untuk i dalam rentang(n):
row = [ ]
untuk x dalam input().split(','):
[Link](int(x))
[Link](baris)
Produk matriks
untuk i dalam rentang(n):
untuk j dalam rentang(n):
untuk k dalam rentang(n):
C[i][j] += A[i][k] * B[k][j]
j != n - 1:
print(C[i][j], end = ',')
lainnya:
cetak(C[i][j])
GrPA 4
Anda diberikan nama dan tanggal lahir sekelompok orang. Temukan semua pasangan anggota yang berbagi
tanggal lahir yang umum. Perhatikan bahwa tanggal ini tidak perlu umum di semua pasangan. Cukup jika keduanya
anggota dalam sebuah pasangan memiliki tanggal lahir yang sama.
Baris pertama dari input adalah urutan nama yang dipisahkan koma. Baris kedua dari input adalah urutan
dari bilangan bulat positif yang dipisahkan dengan koma. Setiap bilangan bulat dalam urutan akan berada dalam rentang [1, 365],
endpoint termasuk, dan berarti suatu hari di tahun.
Temukan semua pasangan nama yang memiliki tanggal lahir yang sama dan simpan dalam daftar yang disebutumum.
Setiap elemen dari daftar ini adalah daftar itu sendiri, dan harus dalam bentuk[nama1, nama2], seperti
itunama1datang sebelumnama2dalam urutan alfabet
nama = input().split(',')
bdays = input().split(',')
n = len(nama)
untuk i dalam jangkauan(n):
bdays[i] = int(bdays[i])
common = [ ]
untuk i dalam rentang(n):
untuk j dalam rentang(n):
jika ((i != j) dan
(bdays[i] == bdays[j]) dan
nama[i] < nama[j]:
pair = [names[i], names[j]]
[Link](pasangan)
GrPA 5
Anda diberikan urutan n titik, (xsaya,ysaya), 1≤i≤n, dalam bidang 2-D sebagai input. Juga, Anda diberikan sebuah
Titik P dengan koordinat (x,y). Cetak semua titik dalam urutan yang paling dekat dengan P. Jika ada beberapa titik
memiliki jarak terpendek yang sama dari P, cetak titik-titik tersebut sesuai urutan kemunculannya dalam urutan.
Baris pertama dari input adalah sebuah bilangan bulat n, yang mewakili jumlah titik dalam urutan. Setiap dari
the next n lines contains the co-ordinates of a point separated by comma. The last line contains
koordinat x dan y dari titik P. Anggaplah bahwa semua koordinat x dan y adalah bilangan bulat.
Jarak antara dua titik (x1, y1) dan (x2, y2) adalah√( 1− 2 )2+ ( 1− 2 )2 Anda dapat menganggap
bahwa jarak maksimum dari P ke titik manapun tidak akan melebihi 1000.
n = int(input())
L=[]
Tambahkan semua titik dalam urutan ke daftar L
untuk i dalam rentang(n):
[Link](input())
Titik P
point = input().split(',')
x = int(titik[0])
y = int(titik[1])
Minggu 5
PPA 1
Tipe: argumen tunggal, nilai kembali tunggal
Faktorial dari bilangan bulat positif n adalah hasil kali dari n bilangan bulat positif pertama.
Tulis sebuah fungsi bernamafaktorialyang menerima sebuah bilangan bulatn sebagai argumen. Itu harus mengembalikan
faktorial darin jikan adalah bilangan bulat positif. Harus mengembalikan -1 jikan adalah bilangan bulat negatif, dan itu
harus mengembalikan 1 jikan adalah nol.
1deffaktoriel(n):
2'
3 Argument:
4 n: integer
5 Kembali:
6 result: integer
7'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya harus
tuliskan definisi fungsi.
def faktorial(n):
jika n<0:
kembali -1
elif n==0:
kembali 1
lainnya:
f=1
untuk i dalam rentang(1,n+1):
f*=i
kembali f
PPA 2
Dalam kalender Gregorian, tahun kabisat memiliki total 366 hari dibandingkan dengan biasanya 365 sebagai akibat dari
menambahkan satu hari ekstra (29 Februari) ke tahun. Kalender ini diperkenalkan pada tahun 1582 untuk menggantikan
Kalender Julian yang cacat. Kriteria yang diberikan di bawah ini digunakan untuk menentukan apakah suatu tahun adalah tahun kabisat atau tidak.
• Jika sebuah tahun dapat dibagi 100 maka itu akan menjadi tahun kabisat jika juga dapat dibagi 400.
• Jika suatu tahun tidak dapat dibagi 100, maka itu akan menjadi tahun kabisat jika dapat dibagi 4.
Tulis sebuah fungsi bernamacheck_leap_yearyang menerima tahun antara 1600 dan 9999 sebagai
argumen. Itu harus mengembalikanBenarjika tahun tersebut adalah tahun kabisat danSalahsebaliknya.
1defcek_tahun_kabisat(tahun):
2'''
3 Argumen:
4 year: integer
5 Kembali:
6 is_leap_year: bool
7'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
def periksa_tahun_kabisat(tahun):
jika tahun%100==0:
jika tahun % 400 == 0:
kembali Benar
lainnya:
kembalikan Salah
lainnya:
jika tahun%4==0:
kembali Benar
lainnya:
kembali False
PPA 3
Tipe: beberapa argumen, satu nilai kembali
Tulis sebuah fungsi bernamamaxvalyang menerima tiga bilangan bulata, b danc sebagai argumen. Ini harus mengembalikan
yang maksimum di antara tiga angka.
1defmaxval(a, b, c):
2'''
3 Argumen:
4 a, b, c: bilangan bulat
5 Kembali:
6 max_of_three: integer
7'''
Anda tidak perlu menerima masukan dari pengguna atau mencetak keluaran ke konsol. Anda hanya perlu menulis
definisi fungsi.
PPA 4
Tulis sebuah fungsi yang bernamadim_equalyang menerima dua matriksA danB sebagai argumen. Itu harus
kembalikanBenarjika dimensi kedua matriks adalah sama, danSalahlainnya.
1defdim_sama(A, B):
2'''
3 Argumen:
4 A, B: list of lists
5 Kembali:
6 result: bool
7'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
PPA 5
Tipe: argumen tunggal, beberapa nilai kembalian
Tuliskan sebuah fungsi bernamatiga_pertamayang menerima daftarL bilangan bulat yang berbeda sebagai argumen. Itu
harus mengembalikan maksimum pertama, maksimum kedua, dan maksimum ketiga dalam daftar, dalam urutan ini. Anda
dapat mengasumsikan bahwa daftar input akan memiliki ukuran setidaknya tiga. Konsep apa dalam CT yang diingatkan ini
kamu dari mana?
1defpertama_tiga(L):
2'''
3 Argumen:
4 Daftar
5 Kembali:
6 fmax, smax, tmax: tiga bilangan bulat
7'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
def pertama_tiga(L):
fmax=-10000
smax=-10000
tmax=-10000
untuk i dalam rentang(len(L)):
jika L[i]>fmax:
fmax,smax,tmax=L[i],fmax,smax
elif L[i]>smax:
smax,tmax=L[i],smax
jika L[i]>tmax:
tmax=L[i]
kembalikan fmax, smax, tmax
PPA 6
Panggilan Fungsi
Sekelompok kata dalam bahasa Inggris disebut misterius jika memenuhi kondisi tertentu. Kondisi-kondisi ini adalah
tersembunyi dari Anda. Sebagai gantinya, Anda diberikan sebuah fungsi bernamamisteriusyang menerima sebuah kata sebagai
argumen dan mengembalikanBenarjika kata itu misterius danSalahselain itu.
Tulis sebuah fungsi bernamatype_of_sequenceyang menerima daftar kata sebagai argumen. Kembaliannya
nilai adalah string yang bergantung pada jumlah kata misterius dalam urutan. Yang tepat
conditions are given in the following table. If k denotes the number of mysterious words in the
urutan, maka:
k Nilai kembali
Lebih besar dari atau sama dengan 2 tetapi kurang dari 5 agak misterius
1tipe_urutan(L):
2'''
3 Argumen:
4 L: daftar string
5 Kembali:
6 seq_type: string
7'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
def jenis_urutan(L):
k=0
untuk i di rentang(len(L)):
jika misterius(L[i]):
k+=1
jika k<2:
sedikit misterius
elif k<5:
cukup misterius
lainnya:
paling misterius
PPA 7
Dalam mengingat kembali hari-hari CT, tuliskan definisi dari lima fungsi berikut, yang semuanya menerima a
daftarL sebagai argumen.
(1)kosongkembaliBenarjika daftar kosong, danSalahsebaliknya.
(2)pertamakembalikan elemen pertama jika daftar tidak kosong, kembalikanNonesebaliknya.
(3)terakhirkembalikan elemen terakhir jika daftar tidak kosong, kembalikanTidak adalainnya.
(4)inialisasikembali elemen pertama n - 1n−1 jika daftar tidak kosong dan memiliki ukuran nn
kembaliTidak adasebaliknya. Perhatikan bahwa jikaL hanya memiliki satu elemen,inisialisasi(L)harus mengembalikan daftar kosong.
(5)istirahatkembalikan n - 1 elemen terakhir jika daftar tidak kosong dan memiliki ukuran n
kembaliTidak adasebaliknya. Perhatikan bahwa jikaL hanya memiliki satu elemen,sisa(L)harus mengembalikan daftar kosong.
Anda tidak harus menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis.
definisi dari kelima fungsi. Setiap kasus uji sesuai dengan satu panggilan fungsi.
def is_empty(l):
jika len(l)==0:
kembali True
lainnya:
kembali Salah
def pertama(l):
jika tidak kosong(l):
kembalikan l[0]
lainnya:
kembali 'Tidak Ada'
def terakhir(l):
jika tidak kosong(l):
kembalikan l[-1]
lainnya:
kembalikan 'Tidak ada'
def init(l):
jika tidak kosong(l):
kembali l[:-1]
lainnya:
kembali 'Tidak Ada'
def sisa(l):
jika tidak kosong(l):
kembalikan l[1:]
lainnya:
kembali 'Tidak ada'
PPA 8
Tulis fungsi rekursif bernamafiboyang menerima bilangan bulat positifn sebagai argumen dan mengembalikan
angka Fibonacci ketiga. Untuk masalah ini, F1=F2=1 adalah dua angka Fibonacci yang pertama.
1deffibo(n):
2 '''
3 Argumen:
4 n: int
5 Kembali:
6 f_n: int
7 '''
Anda tidak perlu menerima masukan dari pengguna atau mencetak keluaran ke konsol. Anda hanya perlu menulis
definisi fungsi.
def fibo(n):
jika n==1 atau n==2:
kembali 1
lainnya:
f=0
f=fibo(n-1)+fibo(n-2)
kembali f
PPA 9
Implementasikan fungsi-fungsi berikut.
(1) Tulis fungsi yang bernamaambil_kolomyang menerima matriks bernamaalat tikarand a non-negative
integer bernamakolsebagai argumen. Ini harus mengembalikan kolom yang berada pada indekskoldi dalam
matriksmatsebagai daftar. Indeks berbasis nol digunakan di sini.
(2) Tulis sebuah fungsi bernamaambil_barisyang menerima sebuah matriks bernamamatdan bilangan bulat non-negatif
disebutbarissebagai argumen. Itu harus mengembalikan baris yang berada di indeksbarisdi dalam matriksmatsebagai daftar.
Indeks berbasis nol digunakan di sini.
1defget_column(mat, col):
2 '''
3 Argumen:
4 mat: daftar daftar
5 col: integer
6 Kembali:
7 col_list: list
8 '''
9 lewat
10
11defget_row(mat, row):
12'''
13 Argumentasi:
14 mat: daftar daftar
15 row: integer
16 Kembali:
17 row_list: list
18'''
19pass
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi dari kedua fungsi tersebut. Setiap kasus uji akan sesuai dengan satu panggilan fungsi.
PPA 10
Write a function named masukkanyang menerima daftar yang terpilihL dari bilangan bulat dan sebuah bilangan bulatx sebagai input. Yang
fungsi harus mengembalikan daftar yang terurut dengan elemennyax dimasukkan pada tempat yang tepat di dalam daftar input. Yang
daftar asli tidak boleh terganggu dalam prosesnya. Anda dapat mengasumsikan bahwa daftar masukan akan diurutkan dalam
urutan naik.
1definsert(L, x):
2 '''
3 Argumen:
4 L: daftar
5 x: integer
6 Kembali:
7 sorted_L: list
8 '''
(1) Satu-satunya metode bawaan yang diizinkan untuk Anda gunakan adalahlampirkandanhapusAnda seharusnya tidak menggunakan
metode lain yang disediakan untuk daftar.
(2) Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
jika L[i]>L[j]:
L[i],L[j]=L[j],L[i]
kembali L
GrPA 1
Rentang dari daftar angka adalah selisih antara nilai maksimum dan minimum dalam daftar.
Tulis fungsi bernamadapatkan_jangkauanyang menerima daftar angka real yang tidak kosong sebagai argumen. Itu
seharusnya mengembalikan rentang daftar.
1defget_range(L):
2 '''
3 Argumen:
4 L: daftar
5 Kembali:
6 range: float
7 '''
Catatan
(1) Hindari menggunakan fungsi bawaan sepertimaksdanmin.
(2) Anda tidak perlu menerima masukan dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
dapatkan rentang
def ambil_jangkauan(L):
maxi = get_max(L)
mini = get_min(L)
kembalikan maxi - mini
GrPA 2
Bilangan sempurna adalah bilangan bulat positif yang sama dengan jumlah semua pembaginya kecuali dirinya sendiri. Untuk
contoh, 6 adalah angka sempurna karena 6 = 1 + 2 + 3.
Tulis fungsi bernamais_perfectyang menerima bilangan bulat positifn sebagai argumen dan
pengembalianBenarjika itu adalah angka sempurna, danSalahsebaliknya.
1defis_perfect(n):
2'''
3 Argument:
4 n: int
5 Return:
6 result: bool
7'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
def adalah_sempurna(num):
Jumlah faktor
fsum = 0
untuk f dalam rentang(1, num):
jika num % f == 0:
fsum += f
fsum == num adalah ekspresi Boolean
Ini akan dievaluasi menjadi Benar jika num adalah angka sempurna
Dan Salah sebaliknya
kembali fsum == num
cetak(is_sempurna(int(input())))
GrPA 3
Jarak antara dua huruf yang berbeda dalam alfabet Inggris didefinisikan sebagai satu lebih dari yang
jumlah huruf di antara mereka. Sebagai alternatif, itu dapat didefinisikan sebagai jumlah langkah yang diperlukan untuk
berpindah dari huruf yang lebih kecil secara alfabet ke huruf yang lebih besar. Ini selalu merupakan bilangan bulat non-negatif.
Jarak antara huruf manapun dan dirinya sendiri selalu nol. Contohnya:
a a dsurat(a,a)=0
a c dsurat(a,c)=2
Surat-1 Surat-2 Jarak
a z dsurat(a,z)=25
z a dsurat(z,a)=25
e a dletter(e,a)=4
Tulis sebuah fungsi yang bernamajarakyang menerima dua kata sebagai argumen dan mengembalikan jarak
di antara mereka.
1defdistance(kata_1, kata_2):
2'''
3 Argumen:
4 word_1, word_2: strings
5 Kembalikan:
6 word_distance: int
7'''
Anda tidak perlu menerima masukan dari pengguna atau mencetak keluaran ke konsol. Anda hanya perlu menulis
definisi fungsi.
Tulis sebuah fungsi bernamais_magicyang menerima matriks persegi sebagai argumen dan mengembalikanYAjika itu
sebuah kotak sihir danTIDAKjika itu bukan satu.
1defis_magic(mat):
2'''
3 Argumen:
4 mat: daftar daftar
5 Kembali:
6 string: 'YES' or 'NO'
7'''
Catatan
(1) Sel dari kuadrat ajaib tidak harus berbeda. Beberapa atau bahkan semua sel bisa identik.
(2) Anda tidak perlu menerima masukan dari pengguna atau mencetak keluaran ke konsol. Anda hanya perlu menulis
definisi fungsi.
Sebuah gambar contoh untuk matriks 3X3 yang merinci berbagai jumlah yang diperlukan. Perlu dicatat bahwa input tidak perlu
dibatasi pada matriks 3X3:
def is_magic(mat):
pertama ambil dimensi dari matriks
m = len(mat)
jumlah kedua diagonal
d1sum, d2sum = 0, 0
(i, i) bergerak dari kiri atas -> kanan bawah
(i, m - i - 1) bergerak dari kanan atas -> kiri bawah
Catat bahwa satu loop sudah cukup; tidak perlu bersarang
untuk i dalam rentang(m):
d1sum += mat[i][i]
d2sum += mat[i][m - i - 1]
Jika jumlah dua diagonal tidak sama, kita dapat mengembalikan TIDAK
perhitungan yang tidak perlu dapat dihindari
jika tidak(d1sum == d2sum):
Kembali 'TIDAK'
# dapatkan jumlah baris dan jumlah kolom
untuk i dalam rentang(m):
rsum, csum = 0, 0
untuk j dalam rentang(m):
rsum += mat[i][j]
csum += mat[j][i]
jika tidak(rsum == csum == d1sum):
kembali 'TIDAK'
jika kode mencapai tingkat ini
maka semua persyaratan dari kuadrat ajaib terpenuhi
jadi kita bisa dengan aman mengembalikan YA
kembali 'YA'
GrPA 5
Transpose dari sebuah matriks diperoleh dengan menukar baris dan kolomnya:
a d
a b c
[ ] → [b e]
d e f
c f
Tulis fungsi bernamatransposeyang menerima sebuah matrikskarpetsebagai input dan mengembalikan transpose-nya.
1deftranspose(mat):
2 '''
3 Argumen:
4 mat: daftar daftar
5 Mengembalikan:
6 mat_trans: list of lists
7 '''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
col_list.append(mat[row][col])
kembalikan col_list
Minggu 6
PPA 1
Terima urutan kata sebagai masukan. Buat kamus bernamafrekuensisiapa kunci yang berbeda
kata-kata dalam urutan. Nilai yang sesuai dengan kunci (kata) haruslah frekuensi dari
keberadaan kunci (kata) dalam urutan.
(1) anda dapat menganggap bahwa semua kata akan ditulis dalam huruf kecil.
(2) Anda tidak perlu mencetak output ke konsol. Ini akan menjadi tanggung jawab dari
autograder.
freq = dict()
L = input().split(',')
untuk kata di L:
freq[word] = 0
PPA 2
Terima sebuah bilangan bulat positif sebagai input dan cetak digit yang ada di dalamnya dari kiri ke kanan. Setiap
digit harus dicetak sebagai kata huruf kecil di baris terpisah. Bagaimana Anda akan menggunakan
kamus untuk menyelesaikan masalah ini?
num = input()
D = {'0': 'zero', '1': 'one', '2': 'two', '3': 'three', '4': 'four',
'5': 'five', '6': 'six', '7': 'seven', '8': 'eight', '9': 'nine'}
PPA 3
Tulis fungsi berikut:
(1)is_keyterima sebuah kamusD dan sebuah variabelkuncias arguments. Return Benarjika
variabelkunciadalah kunci dari kamusD, danSalahsebaliknya.
(2)nilaiterima kamusD dan sebuah variabelkuncisebagai argumen. Jika variabelkuncibukan kunci dari
kamusD, kembaliTidak adajika tidak, kembalikan nilai yang sesuai dengan inikunci.
1defis_kunci(D, kunci):
2 '''
3 Argumen:
4 D: dict
5 key: could be of any type
6 Kembali:
7 bool
8 '''
9 lewat
10
11defnilai(D, kunci):
12'''
13 Arguments:
14 D: dict
15 key: could be of any type
16 Kembali:
17 result: depends on the dict; refer problem statement
18'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu
tuliskan definisi dari kedua fungsi tersebut.
def adalah_kunci(D, kunci):
kunci kembali di D
kembali D[kunci]
lainnya:
kembali None
PPA 4
Tulis fungsi bernamanilai_ke_kunciyang menerima sebuah kamusD dan sebuah variabel
diberi namanilaisebagai argumen. Itu harus mengembalikan daftar semua kunci dalam kamus yang memiliki nilai yang sama.
untuknilaiJika nilainya tidak ada dalam kamus, fungsi harus mengembalikan daftar kosong.
1defvalue_ke_kunci(D, nilai):
2'''
3 Arguments:
4 value: could be of any type
5 Kembali:
6 keys: list
7'''
(1) Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu
tuliskan definisi fungsi.
Kunci di dalam daftar dapat dalam urutan apa pun.
PPA 5
Tulis fungsi berikut:
(1)kamus_ke_daftarterima sebuah kamusD sebagai argumen. Kembalikan pasangan kunci-nilai dalamD sebagai daftarL dari
tupel. Artinya, setiap elemen dariL harus berupa(key, value)sehinggaD[key] = value.
Menuju arah yang lain, setiap pasangan kunci-nilai dalam kamus harus ada sebagai tuple dalam daftar.L.
(2)daftar_ke_kamusterima daftar tupleL sebagai argumen. Setiap elemen dariL adalah bentuk(x,
y). Kembalikan sebuah dictD sehingga setiap tuple(x, y)sesuai dengan pasangan kunci-nilai diDYaitu,D[x] =
y.
1defdict_ke_daftar(D):
2 '''
3 Argumen:
4 D: dict
5 Kembali:
6 L: daftar tupel
7 '''
8 lewati
9
10deflist_ke_dict(L):
11'''
12 Argument:
13 L: daftar tuple
14 Kembali:
15 D: dict
16'''
17pass
def dict_to_list(D):
L=[]
untuk kunci di D:
[Link]((kunci, D[kunci]))
kembali L
def daftar_ke_dict(L):
D = dict()
kembalikan D
PPA 6
Dataset Skor Diperiksa Kembali
Ingat dataset Skor dari CT. Kami akan menggunakan varian dari dataset ini untuk masalah ini. Setiap
student-entry in the dataset is represented as a dictionary. For example, one of the entries would look
seperti ini:
1{'SeqNo':1,'Name':'Devika','Gender':'F','City':'Bengaluru',
2'Mathematics':85,'Physics':100,'Chemistry':79,'Biology':75,
3'Computer Science':88,'History':60,'Civics':88,'Philosophy':95}
Semua kunci dari dict adalah [Link] semua subjek, nilai yang sesuai adalah bilangan bulat.
Nilai yang sesuai denganNama, Jenis KelamindanKotaadalah string.
Seluruh kumpulan data diwakili sebagai daftar kamus. Artinya, setiap elemen dari daftar akan menjadi
kamus seperti yang diberikan di atas. Daftar ini dinamakandataset_nilai.SeqNoadalah unik
identifikasi untuk setiap siswa yang berjalan dari 00 hingga n - 1, di mana n adalah total jumlah siswa di dalam
dataset.
1defget_marks(skor_dataset, mata_pelajaran):
2'''
3 Argumen:
4 scores_dataset: list of dicts
5 subject: string
6 Kembali:
7 marks: list of tuples of the form (string, int)
8'''
(1) Anda tidak perlu menerima masukan dari pengguna atau mencetak output ke konsol. Anda hanya perlu
tulis definisi fungsi tersebut.
(2) Jangan coba untuk memproses output yang dihasilkan. Kami mengambil sampel acak lima elemen dari daftar
dikembalikan oleh fungsi Anda dan cetak dalam bentuk yang diinginkan.
PPA 7
Dalam masalah ini, kita akan mencoba membuat daftar kamus yang diberikan kepada kita sebelumnya
masalah.
Terima sebuah bilangan bulat positif n yang mewakili jumlah siswa di kelas. n blok input
ikuti. Setiap blok terdiri dari enam baris dan berisi rincian satu siswa di kelas. Buatlah sebuah
dictionary corresponding to each student. All keys should be strings. The type of the value
sesuai dengan kunci dan urutan di mana masukan harus diterima ditunjukkan dalam tabel
diberikan di bawah.
Nomor garis Key Type of Value
1 Name String
2 Kota String
Tambahkan setiap kamus ke dalam daftar bernamadataset_nilaiIni adalah daftar yang akhirnya akan kami gunakan
untuk mengevaluasi kode Anda. Kamus yang sesuai dengan siswa harus ditambahkan di
urutan di mana mereka muncul dalam urutan masukan.
n = int(input())
scores_dataset = [ ]
untuk i di rentang(n):
record = dict()
record['Name'] = input()
record['City'] = input()
record['SeqNo'] = int(input())
record['Mathematics'] = int(input())
record['Physics'] = int(input())
record['Chemistry'] = int(input())
scores_dataset.append(record)
PPA 8
Tulis fungsi berikut:
(1)faktorterima sebuah integer positif n sebagai argumen. Kembalikan himpunan semua faktor dari n.
(2)faktor_faktor_umumterima dua bilangan bulat positif a dan b sebagai argumen. Kembalikan himpunan dari
faktor-faktor umum dari dua angka. Fungsi ini harus memanfaatkanfaktor.
(3)faktor_hinggaterima sebuah bilangan bulat positif n sebagai argumen. Kembalikan sebuah dictDyang kuncinya adalah
bilangan bulat dan nilai adalah himpunan. Setiap bilangan bulat dalam rentang [1, n], termasuk titik akhir, adalah kunci dariD.
nilai yang sesuai dengan akunciadalah himpunan semua faktor darikunciFungsi ini harus menggunakan
darifaktor.
Ide yang ingin kami sampaikan di sini adalah untuk memanfaatkan fungsi yang telah ditentukan sebelumnya kapan saja diperlukan.
1deffactors(n):
2 '''
3 Argumen:
4 n: integer
5 Kembali:
6 factors_of_n: set
7 '''
8 lewat
9
10defcommon_factors(a, b):
11'''
12 Argumen:
13 a, b: integers
14 Kembali:
15 factors_common: set
16'''
17pass
18
19deffactors_upto(n):
20'''
21 Argumen:
22 n: bilangan bulat
23 Kembali:
24 result: dict (keys: integers, values: sets)
25'''
Anda tidak perlu menerima masukan dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi dari ketiga fungsi. Setiap kasus uji akan sesuai dengan satu panggilan fungsi.
def faktor(n):
F = set()
untuk i dalam rentang(1, n + 1):
jika n % i == 0:
[Link](i)
kembali F
def faktor_sampai(n):
D = dict()
untuk i dalam rentang(1, n + 1):
D[i] = faktor(i)
kembali D
PPA 9
Terima sebuah urutan kata sebagai masukan. Buatlah sebuah kamus bernamakamus_sejatisiapa kuncinya adalah
letters of the English alphabet. For each key (letter), the corresponding value should be a list of words
yang dimulai dengan kunci ini (huruf). Untuk kunci yang diberikan, kata-kata harus ditambahkan ke
daftar yang sesuai dalam urutan di mana mereka muncul dalam urutan. Anda dapat berasumsi bahwa semua kata dari
urutan akan ditulis dalam huruf kecil.
L = input().split(',')
real_dict = dict()
PPA 10
Dataset skor adalah sekumpulan kamus, salah satu entri diberikan di bawah ini sebagai referensi Anda:
1{'SeqNo':1,'Name':'Devika','Gender':'F','City':'Bengaluru',
2'Mathematics':85,'Physics':100,'Chemistry':79,'Biology':75,
3'Computer Science':88,'History':60,'Civics':88,'Philosophy':95}
Tulis fungsi berikut:
(1)kelompokkan_berdasarkan_kotamenerimascores_datasetsebagai argumen. Ini harus mengembalikan sebuah kamus
named kotayang kunci-kuncinya adalah nama-nama kota tempat asal para siswa. Nilai
yang sesuai dengan sebuah kunci (kota) adalah daftar nama semua siswa yang berasal dari kota ini. Urutannya dalam
nama-nama mana yang ditambahkan ke dalam daftar tidak masalah.
(2)busy_citiesmenerimadataset_nilaisebagai argumen. Itu harus mengembalikan daftar kota.
Setiap kota dalam daftar ini memiliki sifat bahwa jumlah siswa dari kota ini lebih besar dari atau sama dengan
ke jumlah siswa dari setiap kota lain dalam dataset. Fungsi Anda harus memanfaatkan
darikelompokkan_berdasarkan_kotaUrutan di mana kota-kota ditambahkan ke dalam daftar tidak penting.
1defgroup_by_city(scores_dataset):
2 '''
3 Argument:
4 scores_dataset: list of dicts
5 Kembali:
6 cities: dict: (key: string, value: list of strings)
7 '''
8
9defbusy_cities(sc_dataset_scores):
10'''
11 Argumen:
12 scores_dataset: list of dicts
13 Kembali:
14 result: list of strings
15'''
(1) Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu
tuliskan definisi dari kedua fungsi tersebut.
(2) Jangan mencoba untuk memproses output yang dihasilkan. Kami mengambil sampel secara acak beberapa elemen dari
kamus atau daftar yang dikembalikan oleh fungsi Anda dan cetak dalam bentuk yang diinginkan.
def kelompokkan_menurut_kota(dataset_nilai):
cities = dict()
cities[city] = [ ]
kota[city].tambahkan(nama)
kembali kota
def kota_sibuk(dataset_nilai):
kota = kelompok_per_kota(data_set_skore)
busy = [ ]
maxpop = 0
untuk kota di kota-kota:
jika len(kota[ kota]) > maxpop:
maxpop = len(cities[city])
busy = [city]
elif len(cities[city]) == maxpop:
[Link](kota)
mengembalikan sibuk
GrPA 1
Dataset skor adalah daftar kamus, salah satu yang diberikan di bawah ini untuk referensi Anda:
1{'SeqNo':1,'Name':'Devika','Gender':'F','City':'Bengaluru',
2'Mathematics': 94,'Physics':84,'Chemistry':79,'Biology':99,
3'Computer Science':88,'History':63,'Civics':88,'Philosophy':85}
Tulis sebuah fungsi bernamadapatkan_pemenangyang menerima tiga argumen dalam urutan ini:
• dataset_nilai
• subjek
• gender
Ini harus mengembalikan daftar nama siswa yang termasuk dalam jenis kelamin yang diberikan oleh
argumengender('F' atau 'M') dan telah meraih nilai tertinggi pada mata pelajaran yang diberikan oleh argumensubjek. Sebagai
mungkin ada beberapa peringkat teratas, fungsi harus mengembalikan daftar nama.
(2) Untuk suatu kejelasan, seorang juara adalah siswa yang mendapatkan nilai tertinggi dalam mata pelajaran.
(3) Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu
tuliskan definisi fungsi.
# Rujuk PPA-6 minggu-6 untuk memahami bagaimana mendapatkan_nilai
def get_marks(scores_dataset, subject, gender):
L=[]
untuk siswa dalam dataset_nilai:
jika siswa['Jenis Kelamin'] == jenis_kelamin:
marks = student[subject]
name = student['Name']
[Link]((nama, nilai))
kembali L
GrPA 2
Tulis fungsi yang bernamafreq_ke_katayang menerima daftar kata sebagai argumen. Ini harus mengembalikan sebuah
dictionary which has the following structure:
• key: frequency of words in the list
• value: list of all words that have the above frequency
1deffreq_ke_kata(kata):
2 '''
3 Argumen
4 words: list of strings
5 Kembali:
6 result: dictionary
7 key: integer
8 value: list of strings
9 '''
kata-kata freq_ke_kata(kata)
["a","acak","koleksi","a","lain","a","acak"]
(1) Semua kata dalam daftar input akan menggunakan huruf kecil.
def freq_to_words(kata):
freq_dict = kata_ke_frekuensi(kata)
result = dict()
untuk kata dalam freq_dict:
freq = freq_dict[kata]
jika freq tidak ada dalam hasil:
result[freq] = [ ]
result[freq].append(kata)
kembalikan hasil
GrPA 3
Write a function named putaryang menerima sebuah matriksmatsebagai argumen. Ini harus mengembalikan sebuah matriks yang
diputar 90˚ ke arah jarum jam. Contohnya:
d a
a b c
[ ] → [e b ]
d e f
f c
1defrotate(mat):
2'''
3 Argument:
4 mat: daftar daftar
5 Kembali:
6 rotated_mat: list of lists
7'''
Anda tidak perlu menerima masukan dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
def putar(mat):
#cetak(mat)
rotated=[]
untuk i dalam rentang(len(mat[0])):
turned=[]
untuk j dalam mat[::-1]:
#print(j[i])
[Link](j[i])
[Link](turned)
kembali diputar
GrPA 4
Tulis sebuah fungsi bernamapenyortiran_dua_tingkatyang menerima daftar tuple bernamaskorsebagai
argumen. Setiap elemen dalam daftar ini berbentuk(Name, Marks)dan mewakili nilai yang diperoleh
oleh seorang siswa dalam ujian: elemen pertama adalah nama siswa dan elemen kedua adalah dirinya atau
tanda.
Fungsi harus mengembalikan daftar tuple yang diurutkan dalam dua tingkat:
• Tingkat-1: urutan naik dari nilai
• Tingkat-2: urutan abjad nama di antara siswa yang telah mencetak nilai yang sama
Setiap elemen dalam daftar yang dikembalikan juga harus dalam bentuk(Name, marks). Perhatikan bahwa level-2
tidak boleh menimpa level-1. Artinya, setelah level kedua pengurutan, daftar harus tetap terurut dalam
urutan menaik dari nilai. Selain itu, siswa yang memiliki nilai yang sama harus muncul dalam
urutan alfabet
Perilaku input-keluaran contoh
skor urut_dua_tingkat(nilai)
[('Harish', 80), ('Aparna', 90), ('Harshita', 80)] [('Harish', 80), ('Harshita', 80), ('Aparna', 90)]
[('Sachin', 85), ('Yuvan', 65), ('Anita', 85)] [('Yuvan', 65), ('Anita', 85), ('Sachin', 85)]
1deftwo_level_sort(skor):
2'''
3 Argument:
4 scores: list of tuples, (string, integer)
5 Kembali:
6 result: list of tuples (string, integer)
7'''
Anda tidak boleh menggunakan fungsi pengurutan bawaan untuk menyelesaikan masalah ini.
(2) Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
the function definition.
def dua_tingkat_sort(skor):
sorted_L = [ ]
Minggu 7
GrPA 1
Turnamen round-robin adalah turnamen di mana setiap tim bersaing dengan setiap tim lainnya. Pertimbangkan sebuah
versi turnamen IPL di mana setiap tim memainkan satu pertandingan melawan setiap tim lainnya.
Semua permainan ini memiliki hasil yang pasti dan tidak ada pertandingan yang berakhir imbang. Tim yang menang di setiap pertandingan adalah
diberikan satu poin.
Delapan tim berpartisipasi dalam turnamen kriket round-robin ini: CSK, DC, KKR, MI, PK, RR, RCB
dan SH. Anda diberikan rincian hasil pertandingan. Tugas Anda adalah menyiapkan IPL
tabel poin dalam urutan menurun berdasarkan kemenangan. Jika dua tim memiliki jumlah poin yang sama, tim
siapa yang namanya datang lebih dulu dalam urutan alfabet harus berada lebih tinggi di tabel.
Ada delapan baris input. Setiap baris adalah urutan nama tim yang dipisahkan koma. Tim pertama
di sepanjang delapan baris ini akan selalu dalam urutan ini: CSK, DC, KKR, MI, PK, RR, RCB, dan SH. Untuk a
urutan yang diberikan, semua istilah lainnya mewakili tim yang kalah dari tim pertama. Misalnya,
baris pertama masukan bisa jadi:CSK,MI,DC,PKIni berarti bahwa CSK telah memenangkan pertandingan melawan
tim MI, DC dan PK dan kalah dalam pertandingan mereka melawan semua tim lainnya. Jika satu urutan hanya memiliki satu tim, itu
berarti bahwa ia kalah dalam semua pertandingannya.
Cetak tabel poin IPL dalam format berikut—team:wins —satu tim di setiap baris. Di sana
tidak boleh ada spasi di salah satu baris.
results = [ ]
untuk i dalam rentang(8):
L = input().split(',')
winner = L[0] tim pertama adalah pemenangnya
losers = L[1: ] semua tim ini telah kalah dari pemenang
kami hanya membutuhkan jumlah kemenangan dan tim pemenang
[Link]((pemenang, len(pecundang)))
table = [ ]
sortir-dua-tingkat
# rujuk GrPA-4 minggu-6
kami terlebih dahulu mengurutkan berdasarkan poin, kemudian berdasarkan nama
sementara hasil != [ ]:
maxteam = results[0]
untuk i dalam rentang(len(hasil)):
team = results[i]
jika tim[1] > makstim[1]:
maxteam = team
elif tim[1] == maksTim[1] dan tim[0] < maksTim[0]:
maxteam = team
[Link](maxteam)
[Link](maxteam)
GrPA 2
Dua kamusD1danD2dapat digabungkan untuk membuat kamus baruD itu memiliki yang berikut
structure:
• Setiap pasangan kunci-nilai diD ada diD1atauD2.
• Setiap kunci diD1juga merupakan kunci diD. Demikian juga, masing-masing diD2juga merupakan kunci dalamD.
• Jika kunci tertentu umum untuk keduanyaD1and D2, nilai yang sesuai dengan kunci ini dalam satu
dari dua kamus dipertahankan diD.
Anda tidak perlu menerima input atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
D1[i]=D2[i]
kembalikan D1
jika prioritas=='kedua':
untuk i dalam D1:
jika saya tidak di D2:
D2[i]=D1[i]
return D2
GrPA 3
Diberikan sebuah matriks persegi M dan dua indeks (i, j), Mij adalah matriks yang diperoleh dengan menghapus baris ke-i dan
kolomke-j dari M.
1defminor_matriks(M, i, j):
2'''
3 Argumen:
4 M: daftar daftar
5 i: integer
6 j: bilangan bulat
7 Kembali:
8 M_ij: daftar daftar
9'''
(1) Anda dapat menganggap bahwa jumlah baris di MM akan setidaknya 33 di setiap kasus uji.
(2) Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol.
GrPA 4
Anda diberikan rincian tertentu tentang kereta yang berhenti di sebuah stasiun. Tugas Anda adalah menyimpan rincian ini dalam sebuah
kamus bersarang.
Baris pertama dari input adalah n, jumlah kereta yang berhenti di stasiun. n blok input mengikuti.
first line in each block corresponds to the train name. The second line in each block corresponds to m,
jumlah kompartemen di kereta. m baris masukan mengikuti. Setiap baris m ini memiliki dua nilai
dipisahkan oleh koma: nama kompartemen dan jumlah penumpang di dalamnya.
Your task is to create a nested dictionary named station_dictKunci dari kamus adalah
train names, the value corresponding to a key is another dictionary. The keys of the inner dictionary
are the compartment names in this train, the values are the number of passengers in each
kompartemen. Misalnya:
1{
2 'Mumbai Express': {
3 'S1':10,
4 'S2':20,
5 'S3':30
6 },
7 'Chennai Express': {
8 'S1':10,
9 'S2':20,
10 'S3':30
11 }
12}
(1) Nilai dari kompartemen harus diwakili sebagai bilangan bulat dan bukan sebagai string.
(2) Anda tidak perlu mencetak output ke konsol. Jangan mencoba untuk mencetak output yang Anda amati.
dalam "Output yang Diharapkan". Anda hanya perlu memproses input dan membuat
kamusstation_dict.
n=int(input())
station_dict={}
untuk i dalam rentang(n):
m=masukan()
a=int(input())
d={}
untuk i dalam rentang(a):
s=input().split(',')
d[s[0]] = int(s[1])
station_dict[m]=d
Minggu 8
PPA 1
Tulis fungsi rekursif bernamasegitigayang menerima bilangan bulat positif n sebagai argumen dan
mengembalikan jumlah dari n bilangan bulat positif pertama.
1defsegitiga(n):
2'''
3 Argumen:
4 n: integer
5 Kembali:
6 result: integer
7'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu
tulis definisi fungsi.
def segitiga(n):
jika n == 1:
kembali 1
kembalikan n + segitiga(n - 1)
PPA 2
Faktorial dari bilangan bulat positif n didefinisikan sebagai berikut:
n!=1⋅2⋅3⋯n
Tulis fungsi rekursif bernamafaktorialyang menerima bilangan bulat positif n sebagai argumen dan
mengembalikan faktorial dari n.
1defaktorial(n):
2'''
3 Argumen:
4 n: integer
5 Kembali:
6 result: integer
7'''
Anda tidak perlu menerima masukan dari pengguna atau mencetak output ke konsol. Anda hanya perlu
tuliskan definisi fungsi.
def faktorial(n):
jika n == 1:
mengembalikan 1
kembali n * faktorial(n - 1)
PPA 3
Tulis fungsi rekursif yang dinamakankalimenerima dua bilangan bulat positif a dan b sebagai argumen dan
mengembalikan produk mereka. Anda hanya dapat menggunakan operator + dan −. Anda tidak diperbolehkan menggunakan∗ simbol
anywhere in your code!
1defmultiply(a, b):
2'''
3 Arguments:
4 a, b: integers
5 Kembalikan:
6 result: integer
7'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu
tuliskan definisi fungsi.
PPA 4
Logaritma dari suatu angka x dengan basis 2 adalah jumlah kali 2 harus dikalikan dengan dirinya sendiri sehingga
getx, dan dilambangkan dengan log2(x). Misalnya, log2(4)=2. Perhatikan bahwa log2(1)=0.
1deflogaritma(x):
2 '''
3 Argument:
4 x: integer
5 Result:
6 result: integer
7 '''
def logaritma(x):
jika x == 1:
kembali 0
kembalikan 1 + logaritma(x // 2)
PPA 5
Tulis fungsi rekursif yang bernamapalindromyang menerima sebuah stringkatasebagai argumen dan
pengembalianBenarjika itu adalah palindrom danSalahsebaliknya.
1defpalindrome(kata):
2'''
3 Argumen:
4 word: string
5 Kembali:
6 result: bool
7'''
Anda tidak perlu menerima masukan dari pengguna atau mencetak output ke konsol. Anda hanya harus
tuliskan definisi fungsi.
def palindrom(word):
jika len(kata) <= 1:
kembali Benar
jika kata[0] != kata[-1]:
kembali Salah
kembali palindrom(kata[1:-1])
PPA 6
Pertimbangkan spiral setengah lingkaran. Kita mulai dari titik P0pada sumbu x dengan koordinat (l,0). Yang pertama
lengan spiral berakhir di P1dengan koordinat (r,0). Lengan kedua dari spiral dimulai di P1dan berakhir di
pusat lengan pertama,P2Lengan ketiga dimulai dari P2dan berakhir diP3yang kebetulan menjadi
pusat lengan kedua. Dan akhirnya, lengan keempat dimulai di P3dan berakhir di P4, pusat ketiga
lengan.
(1) Amati apa yang terjadi saat nilai n meningkat. Bagi mereka yang telah mengambil Matematika-2, dapatkah Anda mencoba untuk
jawab pertanyaan ini tanpa menggunakan Python, hanya menggunakan konsep limit yang telah Anda pelajari?
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu
tuliskan definisi fungsi.
PPA 7
Tulis fungsi rekursif dengan namahitungyang menerima argumen berikut:
• L: list of words
• katasebuah kata, bisa berupa string apa saja
Fungsi ini harus mengembalikan jumlah kemunculan darikatadiL.
1defcount(L, kata):
2 '''
3 Argumen:
4 L: daftar kata
5 word: string
6 Kembali:
7 result: integer
8 '''
(1) Anda tidak dapat menggunakan bawaanhitungmetode untuk daftar dalam masalah ini.
(2) semua kata akan ditulis dalam huruf kecil.
(3) Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu
tuliskan definisi dari kedua fungsi.
def hitung(L, kata):
jika len(L) == 0:
kembali 0
jika L[-1] == kata:
kembali 1 + hitung(L[:-1], kata)
lainnya:
return count(L[:-1], kata)
PPA 8
Tulis fungsi rekursif yang bernamatidak menurunyang menerima daftar tidak kosongL bilangan bulat sebagai
argumen dan mengembalikanBenarjika elemen-elemen diurutkan dalam urutan tidak menurun dari kiri ke kanan,
danSalahsebaliknya.
1defnon_menaik(L):
2'''
3 Argumen:
4 L: daftar bilangan bulat
5 Kembali:
6 result: bool
7'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu
tuliskan definisi fungsi.
def tidak_menurun(L):
jika len(L) <= 1:
kembali Benar
jika L[-2] > L[-1]:
kembali Salah
kembalikan tidak_menurun(L[:-1])
PPA 9
Tulis fungsi rekursif bernamaunikyang menerima daftar tidak kosongL sebagai argumen dan mengembalikan sebuah yang baru
daftar setelah menghapus semua duplikat darinya. Fungsi Anda harus mempertahankan kemunculan terakhir dari setiap yang berbeda
elemen dalam daftar.
1defuniq(L):
2'''
3 Argumen:
4 L: daftar
5 Kembali:
6 result: list
7'''
Anda tidak perlu menerima masukan dari pengguna atau mencetak keluaran ke konsol. Anda hanya perlu
tulis definisi fungsi.
def uniq(L):
jika len(L) == 1:
kembali L
jika L[0] ada di L[1: ]:
kembalikan uniq(L[1: ])
lainnya:
return [L[0]] + uniq(L[1: ])
PPA 10
Tulis fungsi rekursif yang bernama cariyang menerima argumen berikut:
• Ldaftar bilangan bulat yang terurut
• kbilangan bulat
Fungsi harus mengembalikanBenarjikak ditemukan dalam daftarL[", dan "]Salahlainnya.
1defsearch(L, k):
2'''
3 Argumen:
4 L: daftar terurut bilangan bulat
5 k: integer
6 Kembali:
7 result: bool
8'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
PPA 11
(1) Tulis fungsi yang bernamamasukkanyang menerima daftar yang terurutL bilangan bulat dan sebuah bilangan bulatx sebagai
argumen. Itu harus mengembalikan daftar yang terurut dengan elemenx inserted into the input list at the right
tempat.
(2) Tulis fungsi rekursif bernamaisortyang menerima daftar yang tidak kosongL bilangan bulat sebagai argumen.
Harus mengembalikan daftar yang diurutkan dalam urutan [Link] memanfaatkanmasukkanIni adalah populer
algoritma pengurutan dan disebut pengurutan sisip.
1definsert(L, x):
2 '''
3 Argumen:
4 L: daftar bilangan bulat yang diurutkan
5 x: integer
6 Kembali:
7 result: sorted list of integers
8 '''
9 lewat
10defisort(L):
11'''
12 Arguments:
13 L: daftar bilangan bulat
14 Kembali:
15 result: sorted list of integers
16'''
17pass
(2) Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu
tuliskan definisi dari kedua fungsi.
(3) Anda tidak dapat menggunakan fungsi atau metode pengurutan bawaan dalam masalah ini.
def isort(L):
jika len(L) == 1:
kembali L
kembalikan sisip(isort(L[: -1]), L[-1])
PPA 12
Polinomial adalah fungsi matematis dalam bentuk berikut:
f(x)=a0x0+a1x1+a2x2+⋯+anxn
Theasayadisebut koefisien dari polinomial dan secara unik menentukan polinomial tersebut. Polinomial ini dapat
dapat direpresentasikan dalam Python menggunakan daftar koefisiennya:
L = [a0, a1, a2, . . ., an]
Note that L[i]sesuai dengan koefisienasayaofxsayainf(x), untuk 0≤i≤n.
Tulis fungsi rekursif bernamapolimeryang menerima daftar koefisienL dan yang nyata
nomorx_0sebagai argumen. Ini harus mengembalikan polinomial yang dievaluasi pada nilaix_0. Untuk
contohpolinomial([1, 2, 3], 5)harus mengembalikan nilai 1+2×5+3×52=86.
1defpoly(L, x_0):
2'''
3 Argumen:
4 L: daftar bilangan bulat
5 x_0: integer
6 Kembali:
7 result: integer
8'''
Anda tidak perlu menerima input dari pengguna atau mencetak keluaran ke konsol. Anda hanya harus
tuliskan definisi fungsi.
PPA 13
Tulis fungsi rekursif bernamakekuatanyang menerima matriks kuadrat A dan bilangan bulat positif m sebagai
argumen dan mengembalikan Am.
1defpower(A, m):
2'''
3 Argumen:
4 Daftar daftar
5 m: integer
6 Kembali:
7 result: list of lists
8'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya harus
tuliskan definisi fungsi.
def nol_matriks(n):
matriks nol berukuran n x n
M=[]
untuk i dalam rentang(n):
row = [ ]
untuk j dalam rentang(n):
[Link](0)
[Link](row)
kembalikan M
PPA 14
Masalah Tantangan: Jika Anda telah memahami esensi dari rekursi, maka Anda akan melihat kesederhanaan dari
seluruh ide ketika Anda menyelesaikan masalah ini. Semua yang telah melakukan Matematika-2, atau sedang melakukan Matematika-2,
harus mampu menghargai masalah ini. Jika Anda belum melakukan Matematika-2, Anda masih bisa mencoba untuk mengatasinya.
masalah. Namun kami meminta para pelajar untuk tidak merasa terintimidasi oleh penggunaan notasi yang berat. Jangan ragu untuk melewatkan
masalah ini jika Anda menganggapnya terlalu sulit.
Determinan
Setiap matriks kuadrat MM memiliki angka yang terkait dengannya yang disebut determinannya. Determinan dari
sebuah matriks 2×2 didefinisikan sebagai berikut:
a b
det([ ) =]ad-bc
c d
Untuk matriks kuadrat an×n M, determinannya didefinisikan secara rekursif sebagai berikut:
n-1
det(M) = ∑(-1)j∙ M[0][j] ∙ Mj
j=0
Di sini, Mjapakah determinan dari matriks yang diperoleh dengan menghapus 0th baris dan yangth kolom
dariMuntuk 0≤j<n. Kami telah menggunakan pengindeksan berbasis nol.
For example, for a 3×3 matrix, we have:
a b c
e f d f d e
det([ d e f ]) = (-1) ∙ a0 ∙ det([ ) +] (-1)∙ b ∙ det([ 1 ]) + (-1)2∙ c ∙ det([ ])
h i g i g h
g h saya
Tulis fungsi rekursif yang bernamadetthat accepts a square matrix as argument and returns its
determinan. Dalam proses menulis fungsi ini, akan berguna untuk melihat GrPA-3 minggu ke-7.
Pendekatan yang baik adalah dengan menulis dua fungsi:detdanmatriks_minor.
1defdet(M):
2'''
3 Argument:
4 M: daftar daftar
5 Kembali:
6 result: integer
7'''
You do not have to accept input from the user or print the output to the console. You just have to
tuliskan definisi fungsi.
kembalikan M_ij
def det(M):
n = len(M)
jika n == 2:
kembali M[0][0] * M[1][1] - M[0][1] * M[1][0]
dsum = 0
untuk j dalam rentang(n):
dsum = dsum + M[0][j] * det(minor_matrix(M, j)) * ((-1) ** (j))
kembali dsum
PPA 15
Anda memiliki loker yang memiliki sejumlah koin terbatas di dalamnya. Setiap koin memiliki bilangan bulat positif tertentu yang merupakan
terukir di atasnya. Ini menunjukkan seberapa berharga koin tersebut. Anda ingin mengambil subset dari koin-koin dari
lemari yang total nilainya ss. Tugas Anda adalah menentukan apakah ini bisa dilakukan dengan koin yang tersedia di
lemari kunci Anda.
Tulislah fungsi rekursif yang bernamajumlah_subsetyang menerima daftar bilangan bulat positifL dan sebuah
bilangan bulat positifs sebagai argumen. DaftarL mewakili koin di lemari penyimpanan Anda. Yang
bilangan bulats mewakili total nilai koin yang perlu Anda tarik. KembalikanBenarjika kamu bisa
menarik beberapa subset koin yang nilai totalnya adalah ss, kembaliSalahsebaliknya.
1defsubset_sum(L, s):
2'''
3 Argumen:
4 L: daftar bilangan bulat
5 s: bilangan bulat
6 Kembali:
7 result: bool
8'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu
tuliskan definisi fungsi.
GrPA 1
Tulis fungsi rekursif bernamabalikyang menerima daftarL sebagai argumen dan mengembalikan yang dibalik
daftar.
1defreverse(L):
2'''
3 Argumen:
4 L: daftar, jenis elemen bisa apa saja
5 Kembalikan:
6 result: list
7'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
def balik(L):
jika len(L)==1:
kembali L
lainnya:
return ([L[-1]]+reverse(L[:-1]))
GrPA 2
Tulis fungsi rekursif bernamalinearyang menerima argumen berikut:
• Psebuah daftar tidak kosong dari bilangan bulat positif
• Qsebuah daftar tidak kosong dari bilangan bulat positif
• kbilangan bulat positif
Itu harus mengembalikanBenarhanya jika kedua syarat yang diberikan di bawah ini terpenuhi:
• PandQ memiliki panjang yang sama.
• P[i]=k⋅Q[i], untuk setiap bilangan bulat i dalam rentang [0,len(P)−1], termasuk titik akhir.
Bahkan jika salah satu dari kondisi ini tidak terpenuhi, seharusnya tetap mengembalikanSalah.
1deflinear(P, Q, k):
2'''
3 Argumen:
4 P: list of integers
5 daftar bilangan bulat
6 k: integer
7 Kembali:
8 result: bool
9'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
def linear(P, Q, k):
jika len(P) != len(Q):
kembali Salah
jika len(P) == 0:
kembali Benar
jika P[0] / Q[0] != k:
kembali Salah
kembalikan linear(P[1: ], Q[1: ], k)
GrPA 3
Fungsi Collatz didefinisikan untuk bilangan bulat positif n sebagai berikut.
3n + 1 jikan ganjil
f(n) = {
n/2 jikan adalah malamn
Kami mempertimbangkan penerapan berulang dari fungsi Collatz yang dimulai dengan bilangan bulat yang diberikan nn, yang
hasil dalam urutan berikut:
Diperkirakan bahwa tidak peduli dari bilangan bulat positif mana Anda mulai, urutannya akan selalu
capai 1. Misalnya, Jika n=10, urutannya adalah:
No. Urut n f(n)
1 10 5
2 5 16
3 16 8
4 8 4
5 4 2
6 2 1
Thus, if you start fromn=10, you need to apply the functionfsix times in order to first reach 1.
Tulis fungsi rekursif bernamacollatzyang menerima bilangan bulat positif sebagai argumen,
di mana 1<n≤32.000, dan mengembalikan jumlah kali f harus diterapkan berulang kali agar pertama
capai 1.
1defcollatz(n):
2'''
3 Argument:
4 n: bilangan bulat
def collatz(n):
jika n==2:
kembali 1
lainnya:
jika n%2!=0:
c=1+collatz((3*n)+1)
kembalikan c
lainnya:
c=1+collatz(n/2)
mengembalikan c
GrPA 4
Fibonacci
Fibonacci adalah seorang penduduk muda di kota Pisa, Italia. Dia menghabiskan banyak waktu di tempat tersebut.
Leaning Tower of Pisa, one of the iconic buildings in the city, that is situated close to his home.
Selama semua kunjungannya ke menara, dia memainkan permainan aneh saat menaiki langkah-langkah marmer tersebut.
menara.
Permainan
Fibonacci suka menaiki tangga satu langkah sekaligus, dua langkah sekaligus, atau tiga langkah sekaligus. Ini menambah
beragam untuk tugas mendaki yang sebaliknya monoton. Dia ingin menemukan total cara yang ada dalam
yang dapat dia naik langkah, dengan asumsi bahwa urutan langkah individu nya penting. Tugas Anda adalah untuk
help Fibonacci compute this number.
Sebagai contoh, jika dia ingin menaiki tiga tangga, kasus n = 3, dia bisa melakukannya dengan empat cara berbeda:
• lakukan dalam tiga langkah, satu langkah pada satu waktu
• (1, 2): lakukan dalam dua langkah, pertama langkah tunggal, kemudian langkah ganda
• lakukan dalam dua langkah, pertama ambil langkah ganda, lalu langkah tunggal
• lakukan dalam satu langkah, melompat langsung ke langkah ketiga
Untuk mengambil contoh lain, jika n = 5, maka beberapa urutan bisa berupa:
["(1, 3, 1)","(1, 1, 3)","(3, 1, 1)","(2, 1, 1, 1)","(1, 2, 1, 1)","(2, 1, 2)","(1, 3, 1)","(1, 1, 3)","(3, 1, 1)","(2, 1, 1, 1)","(1, 2, 1, 1)"]
(2,1,2)
Setiap urutan adalah salah satu cara untuk menaiki lima langkah. Poin yang perlu diperhatikan di sini adalah bahwa setiap elemen dari
sebuah urutan hanya dapat berupa 1, 2, atau 3.
Tulis fungsi rekursif bernamalangkah-langkahyang menerima bilangan bulat positif n sebagai argumen. Itu harus
kembalikan jumlah total cara di mana Fibonacci dapat naik n langkah. Perhatikan bahwa urutan langkahnya
adalah penting.
1defsteps(n):
2'''
3 Argumen:
4 n: integer
5 Kembali:
6 result: integer
7'''
Anda tidak perlu menerima masukan dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
def langkah(n):
jika n==1 atau n==0:
kembali 1
jika n==2:
kembali 2
lainnya:
kembali (langkah(n-1)+langkah(n-2)+langkah(n-3))
GrPA 5
P adalah kamus hubungan ayah-anak yang memiliki struktur berikut: untuk setiapkuncidi dalam
dictionary, its corresponding nilaiadalah ayah darikunci. Sebagai contoh:
1P={
2'Jahangir':'Akbar',
3'Akbar':'Humayun',
4'Humayun':'Babur'
5}
JikaJahangiradalah kuncinya, maka Akbar, ayahnya, adalah nilainya. Ini berlaku untuk setiap kunci di
kamus.
(1) Anda dapat mengasumsikan bahwa tidak ada dua orang dalam kamus yang memiliki nama yang sama. Namun, sebuah
seseorang bisa muncul sebagai seorangkunciatau sebagainilaidalam kamus.
(2) Seseorang tertentu dapat muncul beberapa kali sebagai salah satu nilai dari kamus. Sebagai contoh, dalam
kasus-uji-2, Prasanna memiliki dua putra, Mohan dan Krishna, sehingga muncul dua kali (sebagai nilai).
(2) Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
def keturunan(P, sekarang, masa lalu):
jika sekarang==masa lalu:
kembali [masa lalu]
lainnya:
kembali ([present]+garis keturunan(P,P[present],masa lalu))
Minggu 9
PPA 1
Tulis fungsi dengan namabaca_fileyang menerima file teks bernamanama berkassebagai argumen. Dalam
fungsi, baca file dan cetak setiap baris dari file pada baris terpisah di konsol. Anda tidak seharusnya
cetak karakter tambahan di akhir baris. Tidak boleh ada baris kosong antara dua baris mana pun
garis berturut-turut.
1defbaca_file(nama_file):
2'''
3 Argument:
empat filename: string, name of the file to be read
5 Kembali:
6 Tidak ada
7'''
(1)nama berkasadalah variabel string yang menyimpan nama file. Misalnya, dalam kasus uji pertama, itu
adalahfilename = 'public_1.txt'.
(2) Anda tidak perlu menerima input dari konsol. Anda harus menulis definisi fungsi dan
cetak konten file di dalam fungsi.
def baca_file(nama_file):
f = open(nama_file, 'r')
untuk baris dalam f:
cetak([Link]())
[Link]()
PPA 2
Tulis sebuah fungsi bernamabaca_barisyang menerima file teks bernamanama filedan positif
argumen integernas. Di dalam fungsi, baca file dan kembalikan kemudianthbaris dari file. Jika
file memiliki kurang dari jumlah garis, kembalikan stringTidak ada.
1defread_line(nama_file, n):
2'''
3 Argumen:
4 filename: string, name of the file to be read
5 Kembali:
6 string: return nth line of the file
7'''
(1)nama berkasadalah variabel string yang menyimpan nama file. Misalnya, dalam tes pertama
kasus ini adalahfilename = 'public_1.txt'.
(2) Anda tidak perlu menerima input dari konsol atau mencetak output. Anda harus menulis
definisi fungsi.
line = [Link]()
[Link]()
mengembalikan None
PT 1.1
Cetak pola berikut. Ada tepat satu spasi antara setiap
dua angka berturutan di garis mana pun. Tidak ada spasi di akhir
dari garis mana pun.
121
12321
1234321
123454321
print('1 2 1')
cetak('1 2 3 2 1')
cetak('1 2 3 4 3 2 1')
print('1 2 3 4 5 4 3 2 1')
PT 1.2
Sebuah algoritma sederhana harus dirancang untuk mengetahui apakah seorang siswa
apakah termasuk dalam cabang Ilmu Data atau tidak. Inputnya akan berupa
nomor urut siswa, yang berbentukBR18B0000.
BRmewakili kode cabang,18mewakili tahun
Di sini,
PT 1.3
Polisi sedang mencoba melacak seorang kriminal berdasarkan bukti.
tersedia di lokasi kejahatan. Petunjuk utama mereka adalah kendaraan yang rusak
di minggu ini.
a=int(input())
b=int(input())
cetak(abs(a-b))
PT 1.5
Anda diberikan sebuah string dan dua bilangan bulat non-negatif sebagai input. Yang
dua bilangan bulat menunjukkan indeks mulai dan akhir dari substring dalam
string yang diberikan. Buat string baru dengan menyalin substring a
jumlah minimum kali sehingga string yang dihasilkan lebih panjang dari
string masukan. Parameter masukan adalah string,mulaiindeks dari
substring dan yangakhirindex of substring (endpoints inclusive)
setiap pada baris yang berbeda.
n=input()
a=int(input())
b=int(input())
x=n[a:b+1]
y=len(n)
ans=""
while(y>=len(ans)):
ans+=x
cetak(ans)
PT 2.1
Seorang guru kelas telah memutuskan untuk membagi seluruh kelasnya menjadi empat kelompok, yaitu Safir, Peridot, Ruby,
dan Emerald untuk kompetisi olahraga. Untuk membagi siswa menjadi empat kelompok ini, dia memiliki
mengikuti pola yang diberikan di bawah ini:
All the students are represented by their roll numbers. Based on the above pattern, given the roll
masukkan nomor, cetak grup yang dimiliki siswa. Perhatikan bahwa nomor urut bisa berupa apa saja
bilangan bulat positif dan tidak harus kurang dari 25.
n=int(input())
untuk i dalam rentang(1,n+1,4):
jika n==i:
Cetak('Sapphire')
untuk j di rentang(2,n+1,4):
jika n==j:
print('Peridot')
untuk k dalam rentang(3,n+1,4):
jika n==k:
cetak('Ruby')
untuk l dalam rentang(4,n+1,4):
jika n==l:
Emerald
PT 2.2
Sebuah perusahaan data science ingin merekrut ilmuwan data dari IIT Madras.
Perusahaan mengikuti kriteria tertentu untuk seleksi: agar seorang siswa dapat
agar terpilih, jumlah tunggakan seharusnya maksimal 5 dan
CGPA (Indeks Prestasi Kumulatif) harus lebih besar dari 6. Jika
mahasiswa tersebut tidak memenuhi kriteria di atas, maka mahasiswa tersebut tidak
ditawarkan pekerjaan. Jika siswa terpilih, maka gaji yang ditawarkan adalah
setara dengan 5 kali CGPA-nya (dalam lakhs).
120
10
210
10
115
10
189
10
Dalam contoh di atas, tim-A telah mencetak 120 untuk kehilangan 10 wicket di babak pertama, dan 210
untuk kehilangan 10 wicket di babak kedua. Tim A bermain pertama dan Tim B bermain kedua. Anda
tugas adalah untuk menentukan pemenang pertandingan.
a=int(input())
b=int(input())
c=int(input())
d=int(input())
e=int(input())
f=int(input())
g=int(input())
h=int(input())
jika a+c>e+g dan h==10:
Cetak('Tim A')
elif a+c<e+g:
cetak('Tim B')
lainnya:
cetak('GAMBAR')
PT 2.4
Sebuah kata dikatakan sempurna jika memenuhi semua kriteria berikut:
Semua vokal (a,e,i,o,u) harus ada dalam kata.
(2) Biarkan huruf vokal direpresentasikan sebagai v1=a,v2=e,v3=i,v4=o,v5=urutan leksikal.
• Jika i<j, maka penampilan pertama dari vsayadalam kata harus datang sebelum penampilan pertama
ofvj.
• Jika i < j, maka jumlah dari vsayaHarus lebih besar dari atau sama dengan jumlah vj.
Terima sebuah kata sebagai masukan. CetakIni adalah kata yang [Link] kata tersebut sempurna, jika tidak cetakItu adalah
bukan kata yang sempurna.
s=input()
a='aeiou'
f1=True
untuk i dalam rentang(5):
jika a[i] tidak ada di s:
f1=False
istirahat
jika f1:
jika [Link]('a')<[Link]('e')<[Link]('i')<[Link]('o')<[Link]('u'):
jika
[Link]('a')>=[Link]('e')>=[Link]('i')>=[Link]('o')>=[Link]('u'):
Ini adalah kata yang sempurna.
sebaliknya:
print('Ini bukan kata yang sempurna.')
lainnya:
print('Itu bukan kata yang sempurna.')
PT 2.5
Terima empat bilangan bulat sebagai input dan tulis program untuk mencetak bilangan bulat ini dalam urutan tidak menurun.
Input akan terdiri dari empat bilangan bulat dalam empat baris. Outputnya harus dalam satu baris dengan semua bilangan bulat tersebut.
dipisahkan oleh satu spasi dalam urutan non-menurun.
Catatan: Tidak ada spasi setelah angka keempat.
a=int(input())
b=int(input())
c=int(input())
d=int(input())
x=[a,b,c,d]
[Link]()
cetak(x[0], x[1], x[2], x[3])
PT 3.1
Terima string sebagai input dan cetakPALINDROMjika itu adalah
palindrom, danBUKAN PALINDROMsebaliknya.
string=input()
jika(string==string[::-1]):
CETAK("PALINDROM")
lainnya:
TIDAK PALINDROM
PT 3.2
Dua bilangan bulat dikatakan coprime jika satu-satunya pembagi yang sama untuk keduanya adalah satu.
Terapkan dua bilangan bulat positif yang berbeda sebagai masukan dalam dua baris yang berbeda.
CetakKopramjika kedua bilangan bulat tidak memiliki faktor persekutuan, jika tidak cetakTidak
KoprimAnggaplah bahwa kedua bilangan bulat tersebut lebih besar dari dua.
def adalah_bercoprime(a,b):
hcf = 1
kembali hcf == 1
pertama = int(input())
detik = int(input())
jika adalah_koprima(pertama, kedua):
Cetak('Coprime')
lainnya:
print('Tidak Coprime')
PT 3.3
Integer jika string adalah sebuah bilangan bulat,
Terima sebuah string sebagai input, cetak
PT 3.4
Pertanyaan Pilihan Ganda Berganda (MSQ) bisa memiliki lebih dari satu jawaban yang benar. Nilai yang diperoleh oleh seorang
mahasiswa dalam MSQ akan ditentukan oleh kondisi berikut:
(1) Jika pertanyaannya memiliki c opsi yang benar, setiap opsi yang benar masing-masing bernilai = poin
(2) Jika seorang siswa memilih salah satu dari opsi yang salah, nilai yang diberikan untuk pertanyaan tersebut akan menjadi 0.
Hitung nilai yang diperoleh oleh siswa dan cetak ini sebagai nilai float.
(4) Baris keempat adalah urutan opsi yang dipisahkan dengan koma yang diberikan oleh siswa.
Tulis program untuk mencetak jumlah nilai yang diperoleh oleh seorang siswa.
Catatan: Opsi diberi nomor menggunakan bilangan bulat positif dalam rentang [1, 9], inklusif titik akhir. A
pertanyaan akan memiliki paling banyak sembilan pilihan. Jumlah nilai dan pilihan yang benar akan selalu
bilangan bulat.
Jika pertanyaannya memiliki lima opsi secara total, maka opsi-opsinya akan diberi nomor sebagai1,2,3,4,5.
marks = int(input())
options = int(input())
correct_options = input().split(',')
answered_options = input().split(',')
c=0
untuk i di opsi_yang_dijawab:
jika saya di opsi_benar:
c += 1
lainnya:
c=0
istirahat
marks_per_option = marks / len(correct_options)
total_marks = marks_per_option * c
print(total_marks)
PT 3.5
danb panjangsn1dan2masing-masing, yang hanya mengandung
Pertimbangkan dua string yang tidak kosonga
angka sebagai karakter mereka. Kedua string dalam urutan menaik, yaitu a[i]≤a[j] untuk 0≤i<j<n1. Yang
hal yang sama berlaku untukbAnda perlu menggabungkan kedua string menjadi satu string dengan panjang n1+n2sehingga semua
karakter dari string gabungan ini juga dalam urutan menaik.
Terimaa danb sebagai masukan dan cetak string yang digabungkan ini sebagai keluaran.
n=input()
s=input()
t=s+n
m=''
w='0123456789'
untuk i di rentang(len(w)):
untuk j dalam rentang(len(t)):
jika t[j]==w[i]:
m+=w[i]
cetak(m)
PT 4.1
Anda diberikan daftar string. Di mana setiap string berisi dua bilangan bulat yang dipisahkan koma.
terpisah. Untuk masing-masing string, Anda perlu memeriksa apakah dua bilangan bulat yang diberikan dalam string
apakah coprime atau tidak. Anda perlu mencetak daftar nilai sebagaiYAatauTIDAKuntuk setiap nilai dari daftar
dipisahkan oleh koma. CetakYAjika sepasang bilangan bulat tersebut coprime sebaliknya cetakTIDAK.
n = int(input())
A=[]
untuk i dalam rentang(n):
[Link](input().split(','))
untuk j dalam rentang(2):
A[-1][j] = int(A[-1][j])
def faktor(n):
l=[]
untuk i dalam rentang(1,n+1):
jika n%i==0:
[Link](i)
l=set(l)
kembali l
x=[]
untuk i di A:
jika faktor(i[0])&faktor(i[1])=={1}:
[Link]('YA')
lainnya:
[Link]('TIDAK')
print(*x, sep=',')
PT 4.2
Baris pertama dari input berisi sebuah bilangan bulat positif n. Baris kedua dari input berisi sebuah urutan dari
bilangan bulat positif yang dipisahkan dengan koma. Cetak jumlah minimum syarat yang perlu diambil
dari urutan sehingga jumlah dari suku-suku ini lebih besar dari atau sama dengan n. Jika tidak ada minimum semacam itu
jika angka ada, maka cetak stringTidak ada.
(1) Misalnya, jika inputnya 100 dan urutannya adalah 10,88,3,4,99, maka jumlah minimum dari
syarat yang perlu kita ambil adalah 2 sehingga jumlahnya lebih besar dari atau sama dengan 100.
(2) Jika inputnya 99 dan urutannya adalah 10,20,5,18,17, maka kita tidak akan pernah mendapatkan jumlah yang lebih besar
than or equal to 99, no matter how many numbers we pick up. So, the output here is Tidak ada.
a=int(input())
b=input().split(',')
total=0
count=0
PT 4.3
Dua string dikatakan setara jika salah satu string dapat diperoleh dengan mengatur ulang karakter dari
string lainnya. Misalnya, baikdananjingadalah setara. Tetapiapeldanlapartidak setara.
Terima dua string sebagai masukan. CetakSetarajika kedua string tersebut setara danTidak
Setaralainnya.
s1=input()
s2=input()
flag=True
jika len(s1)==len(s2):
untuk i dalam s1:
jika [Link](i)!=[Link](i):
Cetak('Tidak Setara')
flag=False
istirahat
jika bendera:
Cetak('Setara')
lainnya:
Cetak('Tidak Setara')
PT 4.4
Aadalah matriks persegi berukurann×nitu diberikan [Link] bilangan bulat positif yang juga
diberikan kepada Anda. Cetak nilai dariA. m
n = int(input())
m = int(input())
A=[]
untuk i dalam rentang(n):
[Link](input().split(','))
untuk j dalam rentang(n):
A[-1][j] = int(A[-1][j])
B=A
untuk x dalam rentang(m-1):
t=[]
untuk i dalam rentang(n):
y=[]
untuk j dalam rentang(n):
c=0
untuk k dalam rentang(n):
c+=A[i][k]*B[k][j]
[Link](c)
[Link](y)
B=t
cetak(B)
PT 5.1
Sebuah fungsif(n)didefinisikan sebagaif(n)=1∗3∗5∗7∗⋯∗n-1/2∗4∗6∗8∗10∗⋯∗nif n genap, danf(n)=
def func(n):
jika n==1:
kembali 1
c=1
untuk i dalam rentang(1,n+1):
jika i%2==1:
c*=i
lainnya:
c/=i
mengembalikan c
PT 5.2
Di sebuah situs web login portal, Anda diminta untuk menulis sebuah fungsidapatkan_kekuatan_kata_sandiuntuk memutuskan
kekuatan sebuah kata sandi. Kekuatan ditentukan berdasarkan total skor kata sandi, Gunakan
syarat-syarat berikut:
1) Jika kata sandi memiliki panjang lebih dari 7 maka skor meningkat satu poin.
2) Jika kata sandi memiliki setidaknya satu huruf kapital dan satu huruf kecil, skor meningkat satu poin.
3) Jika kata sandi memiliki setidaknya satu angka dan tidak ada angka berturut-turut seperti12atau234kemudian skor
meningkat satu poin.
4) Jika kata sandi memiliki setidaknya satu karakter khusus (karakter apa pun selain angka dan alfabet) maka
skor meningkat satu poin.
5) Jika kata sandi mengandung nama pengguna, maka itu adalah kata sandi tidak valid.
Jika kata sandi memiliki nilai empat poin, tiga poin, dua poin, atau satu poin maka cetakSangat
Kuat, Kuat, Sedang, atau Lemahmasing-masing. Jika kata sandi tidak valid, maka
cetakKATA SANDI TIDAK BOLEH MENGANDUNG NAMA PENGGUNAdan Jika skor adalah nol, maka cetakGunakan sebuah
kata sandi yang berbedaArgumen untuk fungsi tersebut adalahnama penggunadanpasswordyang mana
sudah didefinisikan.
def get_password_strength(nama_pengguna,kata_sandi):
c=0
capital='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
c_flag=False
small='abcdefghijklmnopqrstuvwxyz'
s_flag=False
num='0123456789'
n_flag=False
nc_flag=True
jika nama pengguna ada dalam kata sandi:
ProgQuiz-M1
Seorang operator entri data memiliki keyboard yang rusak. Tombol 0 dan 1 sangat tidak dapat diandalkan. Terkadang mereka
bekerja, kadang-kadang tidak. Saat memasukkan nomor telepon ke dalam database, operator menggunakan
huruf 'l' sebagai pengganti 1 dan 'o' sebagai pengganti 0 setiap kali digit biner ini membiarkannya
turun. Baik 'l' maupun 'o' ditulis dengan huruf kecil.
Terima nomor sepuluh digit sebagai input. Temukan jumlah tempat di mana angka 0 dan 1 telah berada.
diganti dengan huruf. Jika tidak ada penggantian seperti itu, cetak stringTidak ada kesalahan. Jika tidak, cetak
number of mistakes (replacements) and in the next line, print the correct phone number.
n=masukan()
o=[Link]('o')
l=[Link]('l')
jika o!=0:
untuk j di rentang(o):
n=[Link]('o','0')
jika l!=0:
untuk j dalam rentang(l):
n=[Link]('l','1')
jika o+l==0:
print('Tidak ada kesalahan')
lainnya:
cetak(o+l,'kesalahan')
cetak(n)
ProgQuiz-M2
Sebuah urutan bilangan bulat dengan panjang genap dikatakanberat sebelah kirijika jumlah dari istilah di sebelah kiri-
setengah dari urutan lebih besar daripada jumlah suku di separuh kanan. Ini disebutbenar
beratjika jumlah dari setengah kedua lebih besar daripada setengah pertama. Ini disebut sebagaiseimbangjika keduanya
jumlahnya sama.
Terima urutan bilangan bulat yang dipisahkan koma sebagai input. Tentukan apakah urutan tersebut adalahkiri
berat, berat kananatauseimbangdan cetak ini sebagai keluaran.
l=input().split(',')
n=(len(l)//2)
left=0
right=0
untuk i dalam rentang(n):
kiri+=int(l[i])
right+=int(l[-(i+1)])
jika kiri>kanan:
cenderung kiri
elif kiri<kanan:
cenderung ke kanan
elif kiri==kanan:
cetak('seimbang')
ProgQuiz-M3
Matriks persegi M dikatakan:
• diagonal: jika entri di luar diagonal utama semuanya nol
• skalar: jika itu adalah matriks diagonal, semua elemen diagonalnya sama
• identitas: jika itu adalah matriks skalar, semua elemen diagonalnya sama dengan 1
Terima masukan matrixMas dari konsol. Baris pertama masukan akan memiliki n, jumlah baris dalam
matriks. Setiap dari garis berikutnya akan menjadi urutan bilangan bulat yang dipisahkan oleh koma yang mewakili
satu baris dari matriks.
Tugas Anda adalah mengeluarkan jenis matriks dan harus salah satu dari ini
strings: diagonal, skalar, identitas, non-diagonalTipe yang Anda keluarkan haruslah
yang paling sesuai untuk matriks yang diberikan.
n=int(input())
mat=[]
a=True
b=True
c=True
untuk i dalam rentang(n):
t=[]
t=input().split(',')
untuk j dalam rentang(n):
t[j]=int(t[j])
[Link](t)
untuk i dalam jangkauan(n):
untuk j dalam rentang(n):
jika i!=j:
jika mat[i][j] != 0:
a=False
jika mat[i][i] != mat[j][j]:
b=False
jika mat[i][i] != 1:
c=False
jika a dan b dan c:
cetak('identitas')
elif a dan b:
print('skalar')
jika a:
diagonal
lainnya:
cetak('non-diagonal')
ProgQuiz-M4
Ada lima kotak yang diatur dari kiri ke kanan. Anda terus menambahkan sejumlah koin yang bervariasi.
secara berurutan di setiap kotak. Mulai dari kotak-1 dan terus berjalan ke kanan. Setelah mencapai kotak terakhir, arahkan
kembali ke kotak-1 dan kemudian terus menambahkan koin. Pada setiap giliran, jumlah koin yang ditambahkan ke sebuah kotak adalah
selalu kurang dari 10.
Temukan kotak yang memiliki jumlah koin terbanyak. Jika ada dua kotak yang memiliki jumlah yang sama
jumlah maksimum koin, keluarkan nomor kotak yang lebih kecil dari dua angka. Urutan koin adalah
diwakili oleh sebuah string. Misalnya, jika inputnya adalah3972894910, inilah cara koin ditambahkan:
Kotak Koin
1 3 + 9 = 12
2 9 + 4 = 13
3 7 + 9 = 16
4 2+1=3
5 8+0=8
Dalam hal ini, 3 adalah keluaran karena kotak-3 memiliki jumlah koin maksimum di dalamnya.
a=int(input())
untuk i dalam rentang(1,a+1):
jika a % i == 0:
jika i<=(a/i):
print(i,int(a/i),sep=(','))
ProgQuiz-M6
Urutkan daftarL item-item dalam urutan tidak menurun dan menyimpannya di dalam daftartersusun_LSemua item dalam daftar
adalah dari jenis yang sama. Jenis umum ini bisa jadiint, mengapungor str. DaftarL sudah diberikan kepada
Anda.
(1) Anda harus menulis solusi Anda di dalam fungsi. Indentasi semua kode Anda sebanyak empat spasi.
(2) Anda tidak perlu menerima input atau mencetak output ke konsol.
Anda tidak diizinkan untuk menggunakan fungsi sortir bawaan.
def urutkan(L):
# Masukkan kode Anda di bawah baris ini
# Indent semua kode Anda dengan empat spasi
untuk i di rentang(len(L)):
untuk j dalam rentang(i, panjang(L)):
jika L[i]>=L[j]:
L[i],L[j]=L[j],L[i]
sorted_L=L
# Masukkan kode Anda di atas garis ini
# Indent semua kode Anda dengan empat spasi
kembalikan sorted_L
PQuiz-1
Terima angka bulat positifnmasukkan dan temukan cetak integer terkecil yang dapat dibagi oleh
semua bilangan bulat dalam rentang[1,n], titik akhir termasuk.
n=int(input())
c=1
sementara 1:
flag=True
untuk i dalam rentang(1,n+1):
jika c%i==0 dan c!=i:
lanjutkan
lainnya:
flag=False
istirahat
jika bendera:
print(c)
istirahat
c=c+1
PQuiz-2
Pertimbangkan suatu urutan kata. Suatu sub-urutan adalah kumpulan kata yang berurutan dalam urutan ini.
contoh, diberikan urutan berikut:
one,two,order,real,long,tight,tree,cool,lot,trouble
Berikut adalah beberapa sub-sekuens:
satu,dua,pesanan
(2) nyata, panjang, ketat, pohon
(3) keren
["satu","dua","perintah","nyata","panjang","erat","pohon","keren","banyak","masalah"]
Catatan bahwaone,lottidak membentuk sub-sekuen sejauh masalah ini dipertimbangkan. (3) dan (4) adalah
valid sub-sequences even though they are quite trivial in nature.
Sebuah subsekuensi dikatakan memiliki properti antakshari jika huruf terakhir dari setiap kata dalam subsekuensi tersebut
urutan sama dengan huruf pertama dari kata berikutnya. Misalnya, dalam urutan di atas, kita memiliki
sub-urutan berikut dengan sifat ini:
1keren,banyak
2keren,lot,masalah
3dua,pesanan,nyata
4dua,pesanan,nyata,panjang
Tugas Anda adalah untuk menemukan panjang sub-sekuens terpanjang dengan properti antakshari. Di atas
urutan, subsekuens terpanjang dengan properti ini memiliki panjang 4.
Terima satu urutan kata yang dipisahkan koma sebagai masukan dan cetak panjang substring terpanjang
urutan dengan properti antakshari. Semua kata dalam urutan akan ditulis dengan huruf kecil.
l=input().split(',')
c=1
maxi=1
untuk i dalam rentang(len(l)):
jika i!=(len(l)-1):
jika l[i][-1]==l[i+1][0]:
c=c+1
jika c>maxi:
maxi=c
sebaliknya:
jika c>maksimum:
maxi=c
c=1
lainnya:
c=1
print(maxi)
PQuiz-3
Masalah ini tentang membalik matriks persegi sepanjang baris atau kolom.
Baris pertama dari input akan menjadi bilangan bulat n, yang menunjukkan dimensi dari matriks persegi. Setiap
dari baris berikutnya dalam input akan memiliki urutan bilangan bulat yang dipisahkan dengan koma. Baris terakhir dalam
masukan akan menjadi salah satu dari dua kata ini:barisataukolom. Jika itu adalah baris, maka balikkan matriks tersebut.
yaitu baris, jika tidak, balikkan sepanjang kolom.
Print the reversed matrix as output: each line should contain one row of the matrix as a sequence of
bilangan bulat yang dipisahkan koma.
n=int(input())
mat=[]
untuk i dalam rentang(n):
a=input().split(',')
untuk j dalam rentang(n):
a[j]=int(a[j])
[Link](a)
s=input()
final_mat=[]
jika s=='baris':
untuk i dalam rentang(n-1, -1, -1):
a=[]
untuk j dalam rentang(n):
[Link](mat[i][j])
final_mat.append(a)
jika s=='kolom':
untuk i dalam rentang(n):
a=[]
untuk j dalam rentang(n-1, -1, -1):
[Link](mat[i][j])
final_mat.append(a)
untuk i dalam rentang(n):
untuk j dalam rentang(n):
j!=n-1:
print(final_mat[i][j],end=',')
lainnya:
cetak(final_mat[i][j])
PQuiz-4
Sebuah stringstr_1adalah substring dari string lainstr_2, jika str_1terdapat sebagai urutan dari
karakter berturut-turut distr_2. Misalnya, mendapatadalah substring dariGöttingen,
sementara itumendapatbukan substring darikambing.
Terima sebuah urutan kata yang dipisahkan dengan koma sebagai input. Cetak kata dalam urutan tersebut yang merupakan
substring dari setiap kata lainnya dalam urutan.
Jika Anda tidak menemukan kata yang merupakan substring umum dari semua kata dalam urutan, cetakTidak ada.
anggap bahwa semua kata akan ditulis dalam huruf kecil.
def subset(s,kata):
untuk i di s:
jika kata tidak ada di i:
kembali Salah
kembali Benar
s=input().split(',')
flag=True
untuk i dalam rentang(len(s)):
jika subset(s,s[i]):
cetak(s[i])
flag=False
istirahat
jika bendera:
cetak('Tidak ada')
PQuiz-5
Sebuah angka disebut palindrom ganda jika angka tersebut dan kuadratnya keduanya adalah palindrom.
Sebagai contoh,11apakah palindrom ganda sebagai keduanya11dan121adalah palindrom. Terima sebuah
n n di
bilangan bulat positif sebagai masukan dan mencetak semua palindrom ganda yang kurang dari atau sama dengan
ascending order.
n=input()
l=[]
a=1
sementara a<=int(n):
p1=False
r=''
k=''
j=a**2
a=str(a)
j=str(j)
m=len(a)
z=len(j)
untuk i dalam rentang(m-1,-1,-1):
r+=a[i]
jika a==r:
p1=True
jika p1:
untuk i dalam rentang(z-1,-1,-1):
k += j[i]
j==k:
[Link](a)
a=int(a)
a+=1
for i in range(len(l)):
cetak(l[i])
PQuiz-6
Tiga matriks persegi panjang A, B, dan C diberikan kepada Anda. Anda perlu menghitung hasil kali dari ini.
tiga matriks: A×B×C. Simpan hasil perkalian matriks ini dalam matriks yang dinamakan sebagaiprod.
Setiap matriks ini adalah daftar dari daftar.
Anda tidak perlu menerima input dari konsol atau mencetak output ke konsol. Anda hanya perlu
tulis kode Anda di dalam fungsi yang disediakan. Pastikan untuk mengindentas semua kode Anda sebanyak empat spasi.
ProgQuiz-2-M1
paraadalah urutan kata-kata yang dipisahkan spasi. Semua kata akan dalam huruf kecil. Akan ada satu
ruang antara kata-kata yang berurutan. String tidak memiliki karakter khusus lain selain spasi.
Write a function named jumlah_tepatyang menerima stringparadan bilangan bulat positif nnas
argumen. Anda harus mengembalikanBenarjika ada setidaknya satu kata dalamparaitu
terjadi tepat nntimes, danSalahselain itu.
1defexact_count(para, n):
2'''
3 Argumen:
4 para: string
5 n: integer
6 Kembali:
7 result: bool
8'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
definisi fungsi.
d[i]=1
lainnya:
d[i]=d[i]+1
l=[Link]()
untuk i dalam l:
jika i==n:
kembali Benar
kembali Salah
ProgQuiz-2-M2
Tugas Anda adalah menyelesaikan masalah kata sederhana seperti ini:
Anda harus menemukan solusi dari masalah aritmatika ini dan mencetak jawabannya sebagai bilangan bulat. Evaluasi
ekspresi tanpa memperkenalkan tanda kurung di mana saja. Artinya,
minus satu ditambah dua minus tiga
hanya−1+2−3.
l=input().split(' ')
sum=0
c=1
d={'zero':0,'one':1,'two':2,'three':3,'four':4,'five':5,'six':6,'seven':7,'eig
ht':8,'nine':9}
untuk i dalam l:
jika saya=='minus':
c=-1
lanjutkan
jika i=='plus':
c=1
lanjutkan
jumlah=jumlah+(c*d[i])
cetak(jumlah)
ProgQuiz-2-M3
Harga sebuah batang baja umumnya merupakan fungsi sederhana dari panjangnya. Namun, persyaratan dari
perusahaan juga mempengaruhi harga. Jika Anda menjual batang kepada perusahaan yang memiliki preferensi untuk yang pendek
rods dan tidak menggunakan terlalu banyak batang panjang, distribusi harga bisa terlihat seperti ini:
1 10
2 20
3 20
4 5
5 3
Jika Anda memiliki batang sepanjang 5 meter, Anda akan menghasilkan lebih banyak uang dengan memotong batang dan menjualnya
itu sebagai dua batang—satu dengan panjang 3 meter dan satu lagi dengan panjang 2 meter—daripada menjual satu batang tunggal dari
panjang 5 meter.
Tugas Anda adalah menerima panjang sebuah batang dan distribusi harga sebagai input. Anda diizinkan untuk membuat
maksimal satu potongan dari batang. Temukan pendapatan maksimum yang dapat Anda peroleh. Anggaplah Anda hanya dapat
menjual batang dengan panjang integer.
Baris pertama dari input adalah panjang batang, L. Baris kedua adalah urutan L yang dipisahkan oleh koma
bilangan bulat yang sesuai dengan harga jual tongkat dengan panjang (1,2,3,⋯,L−1,L). Cetak maksimum
pendapatan yang dapat diperoleh dengan maksimal satu potongan dari batang yang diberikan.
n=int(input())
l=input().split(',')
p=[]
max=0
untuk i dalam rentang(len(l)):
untuk j dalam rentang(len(l)):
s=0
jika i+j==(n-2):
s=int(l[i])+int(l[j])
[Link](s)
[Link](int(l[-1]))
untuk i dalam rentang(len(p)):
jika p[i]>maks:
max=p[i]
cetak(max)
ProgQuiz-2-M4
Tulis fungsi rekursif bernamasubhimpunanyang menerima daftar bilangan bulat berbeda yang tidak kosongL sebagai
argumen. Ini harus mengembalikan daftar semua subset dariL.
(1) Setiap himpunan bagian harus direpresentasikan sebagai daftar angka.
(2) Urutan di mana Anda mengatur elemen dalam suatu subset tidak penting. UntukL = [1, 2, 3], [1,
3]dan[3, 1]mewakili subset yang sama.
(3) Urutan di mana Anda menambahkan subset ke dalam daftar yang dikembalikan tidak penting.
1defsubsets(L):
2'''
3 Argumen:
4 L: daftar bilangan bulat
5 Kembalikan:
6 result: list of lists
7'''
Anda tidak perlu menerima input dari konsol atau mencetak output ke konsol.
def himpunan(L):
if len(L) == 1:
[[],L]
lainnya:
l = []
untuk sub dalam subset(L[0:-1]):
[Link](sub)
[Link]([L[-1]])
[Link](sub+[L[-1]])
t=[]
untuk i dalam l:
jika saya tidak dalam t:
[Link](i)
kembali t
ProgQuiz-2-M5
Pertimbangkan sebuah bilangan irasional dalam bentuk berikut:
+ √
a, bilangan bulat bandpare. Selain itu, p adalah bilangan prima. Untuk semua n ≥ 1, diketahui bahwa ada satu tuple unik
dari bilangan bulat (x,y,p) yang memenuhi:
n
( + √ ) =x+y √
Contohnya:
2
(2 + 3√5) = 49 + 12√5
Tulis sebuah fungsi bernamahitungyang menerima bilangan bulat a, b, p, dan n sebagai argumen dan mengembalikan sebuah
tuple dari bilangan bulat (x,y).
1defcompute(a, b, p, n):
2 '''
3 Argumen:
4 a: integer
5 b: bilangan bulat
6 p: prima
7 n: bilangan bulat positif
8 Kembali:
9 result: (x, y): tuple of integers
10'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol. Anda hanya perlu menulis
the function definition.
Dunia grid diwakili sebagai matriks string: 'B' melambangkan posisi awal semut, 'W'
melambangkan sel kosong dan 'G' melambangkan sumber makanan. Sebagai contoh, dunia kisi di sebelah kiri adalah
diwakili sebagai:
W WW W G
W W W W W
W B W W W
W W W W W
[W W W W W]
defis_reachable(grid):
2'''
3 Argumen:
4 grid: matrix of strings (upper-case characters)
5 Kembali:
6 result: tuple, either (True, int) or (False, None)
7'''
Anda tidak perlu menerima input dari pengguna atau mencetak output ke konsol.
def dapat_diakses(grid):
n=len(grid)
untuk i dalam rentang(n):
untuk j dalam rentang(n):
jika grid[i][j]=='B':
ib=i
jb=j
jika grid[i][j]=='G':
ig=i
jg=j
jika ib>=ig dan jb<=jg:
a=(ib-ig)+(jg-jb)
kembali ((Benar,a))
lainnya :
return ((False,None))