📤 Output in Python
We use the print() function to display something on the screen.
print("Welcome to Python!") #Welcome to Python!You can print multiple items using commas:
name='abc'
age=10
print("Name:", name, "Age:", age) #Name: abc , Age : 10📥 Input in Python
To take user input, use the input() function. It always returns a string.
name = input("What is your name? ")
print("Hello,", name)
# What is your name? Codeveda
# Hello, Codeveda❗ Important: Always cast input to the desired type if you’re doing calculations.
product = input("Enter product name: ")
price = float(input("Enter price: "))
qty = int(input("Enter quantity: "))
print(f"Bill: {product} x {qty} = Rs.{price*qty}")<div class="infographic-pyio">
<style>
.infographic-pyio {
--ink: #1a1a1a;
--ink-soft: #5c5c5c;
--paper: #ffffff;
--paper-alt: #f0ece4;
--accent: #2563eb;
--accent-soft:#e3ebfd;
--line: #ddd6c9;
--mono-font: 'IBM Plex Mono', 'SFMono-Regular', Menlo, monospace;
--display-font: 'Fraunces', Georgia, serif;
--body-font: 'Inter', system-ui, sans-serif;
box-sizing: border-box;
max-width: 720px;
margin: 0 auto;
font-family: var(--body-font);
color: var(--ink);
background: var(--paper);
}
.infographic-pyio[data-theme="dark"] {
--ink: #e8e6e1;
--ink-soft: #9a968c;
--paper: #121212;
--paper-alt: #1e1e26;
--accent: #5b8def;
--accent-soft:#202942;
--line: #2c313d;
}
.infographic-pyio *, .infographic-pyio *::before, .infographic-pyio *::after { box-sizing: border-box; }
.infographic-pyio .io-wrap { padding: 0 clamp(1rem, 4vw, 2rem) 1.5rem; }
.infographic-pyio h1 {
font-family: var(--display-font); font-weight: 600;
font-size: clamp(1.6rem, 5vw, 2.2rem); text-align: center; margin: 1.5rem 0 0.25rem; letter-spacing: -0.01em;
}
.infographic-pyio .io-sub { text-align: center; color: var(--ink-soft); font-size: 0.9rem; margin: 0 0 1.6rem; }
.infographic-pyio .io-section { margin-bottom: 1.6rem; }
.infographic-pyio .io-section-head { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.7rem; }
.infographic-pyio .io-icon { width: 30px; height: 30px; flex: none; }
.infographic-pyio .io-icon svg { width: 100%; height: 100%; stroke: var(--accent); fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.infographic-pyio .io-section-title { font-weight: 700; font-size: 1rem; }
.infographic-pyio .io-section-tag { font-size: 0.75rem; color: var(--ink-soft); }
/* terminal chrome — always a dark editor, independent of page theme */
.infographic-pyio .device {
--ed-bg: #1e1e1e; --ed-bar: #2d2d2d; --ed-text: #d4d4d4; --ed-soft: #8a8a8a; --ed-ok: #6fdc8c; --ed-input: #263a2e;
background: var(--ed-bg); border: 1px solid var(--line); border-radius: 8px; overflow: hidden;
}
.infographic-pyio .device-bar {
display: flex; align-items: center; gap: 0.4rem;
background: var(--ed-bar); padding: 0.5rem 0.7rem; border-bottom: 1px solid #3a3a3a;
font-size: 0.72rem; color: var(--ed-soft); font-weight: 600;
}
.infographic-pyio .device-bar .dot { width: 9px; height: 9px; border-radius: 50%; background: #5a5a5a; }
.infographic-pyio .device-bar .dot:nth-child(1) { background: #ff5f56; }
.infographic-pyio .device-body { padding: 0.85rem 0.95rem; font-family: var(--mono-font); font-size: 0.85rem; color: var(--ed-text); }
/* output demo */
.infographic-pyio .repl-line { display: flex; gap: 0.5rem; line-height: 1.7; opacity: 0; animation: io-fadein 0.3s ease forwards; }
@keyframes io-fadein { from { opacity: 0; transform: translateY(3px); } to { opacity: 1; transform: translateY(0); } }
.infographic-pyio .repl-line .p { color: var(--ed-ok); font-weight: 700; }
.infographic-pyio .repl-line.out { color: #fff; font-weight: 600; }
.infographic-pyio .try-row { display: flex; justify-content: center; margin-top: 0.7rem; }
.infographic-pyio .try-btn {
font: inherit; font-family: var(--mono-font); font-size: 0.75rem; font-weight: 700;
background: var(--accent-soft); color: var(--accent); border: 1px solid var(--accent);
padding: 0.35rem 0.7rem; cursor: pointer; border-radius: 4px;
}
.infographic-pyio .try-btn:disabled { opacity: 0.5; cursor: default; }
/* billing calculator (input demo) */
.infographic-pyio .prompt-row { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.55rem; flex-wrap: wrap; }
.infographic-pyio .prompt-row .p { color: var(--ed-ok); font-weight: 700; }
.infographic-pyio .prompt-text { color: var(--ed-text); white-space: nowrap; }
.infographic-pyio .io-input {
font-family: var(--mono-font); font-size: 0.85rem; color: #fff;
background: var(--ed-input); border: 1px solid #3d5a44; border-radius: 3px;
padding: 0.2rem 0.45rem; width: 110px;
}
.infographic-pyio .io-input:focus { outline: none; border-color: var(--ed-ok); }
.infographic-pyio .type-chip {
font-family: var(--mono-font); font-size: 0.62rem; font-weight: 700; color: var(--ed-soft);
border: 1px solid #3a3a3a; border-radius: 3px; padding: 0.05rem 0.35rem;
}
.infographic-pyio .divider { border-top: 1px dashed #3a3a3a; margin: 0.7rem 0; }
.infographic-pyio .bill-line { color: #fff; font-weight: 700; font-size: 0.95rem; }
.infographic-pyio .bill-line .accent-num { color: var(--ed-ok); }
.infographic-pyio .io-tip { text-align: center; font-size: 0.78rem; color: var(--ink-soft); margin-top: 0.7rem; }
@media (prefers-reduced-motion: reduce) {
.infographic-pyio *, .infographic-pyio *::before, .infographic-pyio *::after {
animation-duration: 0.001ms !important; transition-duration: 0.001ms !important;
}
}
</style>
<div class="io-wrap">
<h1>Talking to Python</h1>
<p class="io-sub">print() sends text out. input() brings text in.</p>
<!-- OUTPUT -->
<div class="io-section">
<div class="io-section-head">
<div class="io-icon"><svg viewBox="0 0 30 30"><rect x="3" y="4" width="24" height="16" rx="2"/><path d="M3,10 H27"/><path d="M9,24 H21"/><path d="M15,20 V24"/></svg></div>
<div>
<div class="io-section-title">Output</div>
<span class="io-section-tag">print() shows it on screen</span>
</div>
</div>
<div class="device">
<div class="device-bar"><span class="dot"></span><span class="dot"></span><span class="dot"></span> Terminal</div>
<div class="device-body" id="ioOutLog">
<div class="repl-line" style="animation-delay:0s"><span class="p">>>></span><span>print("Welcome to Python!")</span></div>
<div class="repl-line out" style="animation-delay:0.1s"><span>Welcome to Python!</span></div>
</div>
<div class="try-row"><button class="try-btn" id="ioTryComma">+ print with commas</button></div>
</div>
</div>
<!-- INPUT -->
<div class="io-section">
<div class="io-section-head">
<div class="io-icon"><svg viewBox="0 0 30 30"><rect x="4" y="8" width="22" height="14" rx="2"/><path d="M9,13 h0 M13,13 h0 M17,13 h0 M21,13 h0 M9,17 H21"/></svg></div>
<div>
<div class="io-section-title">Input</div>
<span class="io-section-tag">input() always returns a string — cast it</span>
</div>
</div>
<div class="device">
<div class="device-bar"><span class="dot"></span><span class="dot"></span><span class="dot"></span> Billing Calculator</div>
<div class="device-body">
<div class="prompt-row">
<span class="prompt-text">Enter product name:</span>
<input class="io-input" id="ioProduct" type="text" value="Apples" />
<span class="type-chip">str</span>
</div>
<div class="prompt-row">
<span class="prompt-text">Enter price:</span>
<input class="io-input" id="ioPrice" type="text" value="20.5" inputmode="decimal" style="width:70px" />
<span class="type-chip" id="ioPriceType">str → float</span>
</div>
<div class="prompt-row">
<span class="prompt-text">Enter quantity:</span>
<input class="io-input" id="ioQty" type="text" value="4" inputmode="numeric" style="width:60px" />
<span class="type-chip" id="ioQtyType">str → int</span>
</div>
<div class="divider"></div>
<div class="bill-line" id="ioBillLine">Bill: Apples x 4 = Rs.<span class="accent-num">82.0</span></div>
</div>
</div>
</div>
</div>
<script>
(function () {
var root = document.currentScript.closest('.infographic-pyio')
|| document.querySelector('.infographic-pyio');
var bodyAttr = document.body.getAttribute('data-darkmode');
var dark;
if (bodyAttr === 'true') { dark = true; }
else if (bodyAttr === 'false') { dark = false; }
else {
var match = document.cookie.match(/(?:^|;\s*)darkMode=([^;]+)/);
dark = match ? match[1] === 'true' : false;
}
if (dark) root.setAttribute('data-theme', 'dark');
/* ---- output demo: comma print ---- */
var tryBtn = root.querySelector('#ioTryComma');
var outLog = root.querySelector('#ioOutLog');
tryBtn.addEventListener('click', function () {
tryBtn.disabled = true;
var l1 = document.createElement('div');
l1.className = 'repl-line';
l1.innerHTML = '<span class="p">>>></span><span>print("Name:", "abc", "Age:", 10)</span>';
outLog.appendChild(l1);
setTimeout(function () {
var l2 = document.createElement('div');
l2.className = 'repl-line out';
l2.innerHTML = '<span>Name: abc Age: 10</span>';
outLog.appendChild(l2);
}, 300);
});
/* ---- input demo: billing calculator ---- */
var product = root.querySelector('#ioProduct');
var price = root.querySelector('#ioPrice');
var qty = root.querySelector('#ioQty');
var billLine = root.querySelector('#ioBillLine');
function formatFloat(n) {
var s = String(n);
if (!/\./.test(s)) s += '.0';
return s;
}
function recompute() {
var p = parseFloat(price.value);
var q = parseInt(qty.value, 10);
var name = product.value.trim() || 'Item';
if (isNaN(p) || isNaN(q)) {
billLine.innerHTML = 'Bill: enter a valid price and quantity';
return;
}
var total = p * q;
billLine.innerHTML = 'Bill: ' + name + ' x ' + q + ' = Rs.<span class="accent-num">' + formatFloat(total) + '</span>';
}
product.addEventListener('input', recompute);
price.addEventListener('input', recompute);
qty.addEventListener('input', recompute);
recompute();
})();
</script>
</div>