Menu
Coddy logo textTech

sprintf() ile Biçimlendirme

Coddy'nin R Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 2 / 64.

sprintf() bir şablondan dize oluşturur. Her % yer tutucusu bir sonraki bağımsız değişkenle değiştirilir: metin için %s, tam sayılar için %d ve ondalık sayılar için %f.

name <- "Ada"
age <- 36
print(sprintf("%s is %d years old", name, age))

Çıktı:

[1] "Ada is 36 years old"

%d yalnızca tam sayıları kabul eder: sprintf("%d", 2.5) bir hatayla durur.

% ile f arasındaki hassasiyet, ondalık basamak sayısını belirler; bu nedenle %.2f iki basamağa yuvarlar:

total <- 3 * 4.5 * 1.2
print(sprintf("Total: %.2f", total))

Çıktı:

[1] "Total: 16.20"

Bir genişlik, değeri belirtilen karakter sayısına tamamlar: %5d sola, %-6s sağa, %03d ise sıfırlarla tamamlar. %% bir yüzde işareti yazdırır.

print(sprintf("[%5d]", 42))
print(sprintf("[%-6s]", "tea"))
print(sprintf("%03d", 7))
print(sprintf("%d%%", 85))

Çıktı:

[1] "[   42]"
[1] "[tea   ]"
[1] "007"
[1] "85%"

sprintf() vektörleştirilmiştir: vektör bağımsız değişkenleriyle her öğe için bir dize döndürür. cat(), sep = "\n" ile her dizeyi kendi satırında yazdırır.

items <- c("tea", "cake")
prices <- c(4, 12.5)
lines <- sprintf("%-5s %6.2f", items, prices)
cat(lines, sep = "\n")

Çıktı:

tea     4.00
cake   12.50
challenge icon

Görev

Kolay

receipt_line(item, qty, price) işlevini tamamla. Ögeyi, miktarı ve satır toplamını (qty * price) tea x3 = 13.50 biçiminde döndür: öge, bir boşluk, miktarın ardından x, sonra = ve tam olarak iki ondalık basamaklı toplam.

Sağlanan kod, ögeyi, miktarı ve fiyatı (her satırda bir tane) okur ve döndürülen değeri yazdırır.

Kendin dene

receipt_line <- function(item, qty, price) {
  # Kodunuzu buraya yazın
  ""
}

# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
cat(receipt_line(input[1], as.integer(input[2]), as.numeric(input[3])), sep = "\n")
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online R derleyicisi