<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Hàm iter&#40;&#41; trong Python</title>
<meta name="description" content="Hàm iter&#40;&#41; trong Python - Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;ham-iter-trong-python-624.html">
<meta name="author" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.">
<meta name="copyright" content=".: Nguoicodonvn2008.info - Cõi lòng người cô đơn :. [admin@nguoicodonvn2008.info]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index,archive,follow,noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Hàm iter&#40;&#41; trong Python">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;www.nguoicodonvn2008.info&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;kien-thuc-may-tinh&#x002F;ham-iter-trong-python-624.html">
<meta property="og:site_name" content=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.">
<meta property="og:url" content="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/ham-iter-trong-python-624.html">
<link rel="shortcut icon" href="https://www.nguoicodonvn2008.info/favicon.ico">
<link rel="canonical" href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/ham-iter-trong-python-624.html">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/karaoke-dual/" title="Tin Tức - Karaoke Dual" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nhac-tre/" title="Tin Tức - Nhạc trẻ" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tru-tinh/" title="Tin Tức - Trữ tình" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/nuoc-ngoai/" title="Tin Tức - Nước ngoài" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/remix/" title="Tin Tức - Remix" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tam-su-tinh-yeu/" title="Tin Tức - Tâm sự tình yêu" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tho-suu-tam/" title="Tin Tức - Thơ sưu tầm" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/cuoc-song/" title="Tin Tức - Cuộc sống" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/phan-mem/" title="Tin Tức - Phần mềm" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/kien-thuc-may-tinh/" title="Tin Tức - Kiến thức máy tính" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/hoc-tap/" title="Tin Tức - Học tập" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/tai-lieu/" title="Tin Tức - Tài liệu" type="application/rss+xml">
<link rel="alternate" href="https://www.nguoicodonvn2008.info/vi/news/rss/de-thi/" title="Tin Tức - Đề thi" type="application/rss+xml">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://www.nguoicodonvn2008.info/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.nguoicodonvn2008.info/themes/default/js/bootstrap.min.js" type="text/javascript">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/bootstrap.non-responsive.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://www.nguoicodonvn2008.info/themes/default/css/news.css">
<link rel="stylesheet" href="https://www.nguoicodonvn2008.info/themes/default/css/custom.css">
<style type="text/css">
	body{background: #fff;}
</style>
    </head>
    <body>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">.&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.</h2>
		<p class="pull-right"><a title=".&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;." href="https://www.nguoicodonvn2008.info/">https://www.nguoicodonvn2008.info</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Hàm iter&#40;&#41; trong Python</h1>
		<ul class="list-inline">
			<li>Thứ tư - 31/07/2019 07:40</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
		</div>
		<div id="bodytext" class="clearfix">
			<p style="text-align: justify;">Tiếp tục với chủ đề các hàm tích hợp sẵn trong Python, bài viết sẽ giới thiệu cho các bạn về hàm iter() với cú pháp, cách sử dụng cũng như các ví dụ cụ thể. Mời bạn đọc theo dõi.</p>

<p style="text-align: justify;"><strong>Hàm iter()</strong>&nbsp;được tích hợp sẵn trong&nbsp;Python, trả về một iterator của đối tượng đã cho.</p>

<p style="text-align: justify;">Đối tượng được tạo ra từ iter() có thể lấy từng phần tử của nó tại mỗi thời điểm nhất định, rất hữu ích khi kết hợp với các vòng lặp for, while.</p>

<h3 style="text-align: justify;">Cú pháp hàm iter() trong Python:</h3>

<pre id="pre0">
<code>iter(object&#91;, sentinel&#93;)
 </code></pre>

<p style="text-align: justify;">&nbsp;</p>

<h3 style="text-align: justify;">Các tham số của hàm iter()</h3>

<p style="text-align: justify;">Hàm iter() có 2 tham số:</p>

<ul>
	<li style="text-align: justify;"><code>object</code>: đối tượng muốn tạo iterator, có thể là set, tuples...</li>
	<li style="text-align: justify;"><code>sentinel</code>: giá trị đặc biệt được sử dụng để thể hiện phần cuối của chuỗi.</li>
</ul>

<p style="text-align: justify;">Tùy thuộc vào tham số được truyền, iter() sẽ có những thuộc tính khác nhau như sau:</p>

<table border="1">
		<tr>
			<td style="text-align: justify;"><strong>Tham số object</strong></td>
			<td style="text-align: justify;"><strong>Tham số sentinel</strong></td>
			<td style="text-align: justify;"><strong>Mô tả</strong></td>
		</tr>
	<tbody>
		<tr>
			<td style="text-align: justify;">Bộ đối tượng (set, tuple)</td>
			<td style="text-align: justify;">&nbsp;Không có</td>
			<td style="text-align: justify;">Tạo iterator cho bộ đối tượng</td>
		</tr>
		<tr>
			<td style="text-align: justify;">Đối tượng do người dùng xác định (Đối tượng tùy chỉnh - Custom object)</td>
			<td style="text-align: justify;">&nbsp;Không có</td>
			<td>
			<p style="text-align: justify;">- thực thi phương thức&nbsp;<em>__iter__()</em>&nbsp;and&nbsp;<em>__next__().</em><br  />
			- thực thi phương thức&nbsp;<em>__getitem</em>&nbsp;__ () với các đối số nguyên bắt đầu từ 0.</p>
			</td>
		</tr>
		<tr>
			<td style="text-align: justify;">Đối tượng do người dùng xác định (Custom object) không triển khai __iter__(), __next() hoặc __getitem__()</td>
			<td style="text-align: justify;">&nbsp;Không có</td>
			<td style="text-align: justify;">&nbsp;Sinh ra ngoại lệ&nbsp;<code>TypeError</code>exception</td>
		</tr>
		<tr>
			<td style="text-align: justify;">Đối tượng Callable</td>
			<td style="text-align: justify;">&nbsp;Được cung cấp</td>
			<td style="text-align: justify;">Hàm trả về đối tượng iterator có thể gọi đối tượng không có đối số cho mỗi lần gọi đến phương thức&nbsp;<em>__next</em>&nbsp;__() của nó, nếu Sentinel được tìm thấy, ngoại lệ&nbsp;<code>StopIteration</code>&nbsp;exception sẽ được sinh ra.</td>
		</tr>
	</tbody>
</table>

<h3 style="text-align: justify;">Giá trị trả về từ iter()</h3>

<p style="text-align: justify;"><strong>Hàm iter() trả về đối tượng iterator cho tham số được truyền vào</strong>, có thể lặp qua từng phần tử của nó tại mỗi thời điểm nhất định</p>

<p style="text-align: justify;">Trong trường hợp tham số thứ hai sentinel được truyền, hàm trả về đối tượng iterator có thể gọi callable object cho đến khi không tìm thấy ký tự sentinel.</p>

<div style="text-align: justify;">&nbsp;</div>

<h3 style="text-align: justify;">Ví dụ 1: iter() hoạt động như thế nào?</h3>

<pre id="pre1">
<code># danh sach nguyen am
 # viet boi Quantrimang.com
 nguyenam = &#91;&#039;a&#039;, &#039;e&#039;, &#039;i&#039;, &#039;o&#039;, &#039;u&#039;&#93;
 nguyenamIter = iter(nguyenam)
 # in ra &#039;a&#039;
 print(next(nguyenamIter))
 # in ra &#039;e&#039;
 print(next(nguyenamIter))
 # in ra &#039;i&#039;
 print(next(nguyenamIter))
 # in ra &#039;o&#039;
 print(next(nguyenamIter))
 # in ra &#039;u&#039;
 print(next(nguyenamIter))</code></pre>

<p style="text-align: justify;">Khi bạn chạy chương trình, output trả về sẽ là:</p>

<pre id="pre2">
<code>a
 e
 i
 o
 u</code></pre>

<h3 style="text-align: justify;">Ví dụ 2: iter() hoạt động với custom object</h3>

<pre id="pre3">
<code>class PrintNumber:
     def __init__(self, max):
         self.max = max
     def __iter__(self):
         self.num = 0
         return self
     def __next__(self):
         if(self.num &gt;= self.max):
             raise StopIteration
         self.num += 1
         return self.num
 printNum = PrintNumber(3)
 printNumIter = iter(printNum)
 # in ra &#039;1&#039;
 print(next(printNumIter))
 # in ra &#039;2&#039;
 print(next(printNumIter))
 # in ra &#039;3&#039;
 print(next(printNumIter))
 # sinh ra StopIteration
 print(next(printNumIter))</code></pre>

<p style="text-align: justify;">Chạy chương trình, kết quả trả về là:</p>

<pre id="pre4">
<code>1
 2
 3
 StopIteration</code></pre>

<h3 style="text-align: justify;">Ví dụ 3: iter() hoạt động với callable object có sentinel</h3>

<pre id="pre5">
<code>with open(&#039;mydata.txt&#039;) as fp:
     for line in iter(fp.readline, &#039;&#039;):
         processLine(line)</code></pre>

<p style="text-align: justify;">Khi bạn chạy chương trình, Python sẽ mở&nbsp;<em>mydata.txt</em>&nbsp;ở chế độ read.</p>

<p style="text-align: justify;">Sau đó,&nbsp;<code>iter(fp.readline, &#039;&#039;)</code>&nbsp;trong vòng lặp&nbsp;<em>for</em>&nbsp;gọi&nbsp;<em>readline</em>&nbsp;(đọc từng dòng trong tệp văn bản) cho đến khi tìm thấy ký tự sentinel&nbsp;<code>&#039;&#039;</code>&nbsp;(chuỗi trống).</p>
		</div>
				<div id="author">
						<p>
				<strong>Nguồn tin:</strong>
				Quantrimang.com
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/ham-iter-trong-python-624.html" title="Hàm iter&#40;&#41; trong Python">https://www.nguoicodonvn2008.info/vi/news/savefile/kien-thuc-may-tinh/ham-iter-trong-python-624.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; .&#x3A; Nguoicodonvn2008.info - Cõi lòng người cô đơn &#x3A;.
		</div>
		<div id="contact">
			<a href="mailto:admin@nguoicodonvn2008.info">admin@nguoicodonvn2008.info</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://www.nguoicodonvn2008.info/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
		</script>
		<div class="car-top">
  <span><img src="https://www.nguoicodonvn2008.info/themes/default/images/car.png" alt=""></span>
</div>
<script src="https://www.nguoicodonvn2008.info/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4c_e856T",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://www.nguoicodonvn2008.info/assets/js/language/vi.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/DOMPurify/purify3.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/global.js"></script>
<script src="https://www.nguoicodonvn2008.info/assets/js/site.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/news.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/main.js"></script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/custom.js"></script>
<script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "url": "https://www.nguoicodonvn2008.info",
            "logo": "https://www.nguoicodonvn2008.info/uploads/angel.gif"
        }
        </script>
<script src="https://www.nguoicodonvn2008.info/themes/default/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $scrolltop = $('.car-top');
$scrolltop.on('click', function () {
    $('html,body').animate({
        scrollTop: 0
    }, 800);
    $(this).addClass("car-run");
    setTimeout(function(){ $scrolltop.removeClass('car-run');}, 1000);
    return false;
});
$(window).on('scroll', function ()
{ 
    if($(window).scrollTop() >= 200)
    {
        $scrolltop.addClass("show");
        $scrolltop.addClass("car-down");
    }
    else
    {
       $scrolltop.removeClass("show");
       setTimeout(function(){ $scrolltop.removeClass('car-down');}, 300);
    }
});
</script>
</body>
</html>