Makale Özeti

Bu makalemizde IronPython içerisindeki for döngüsünü anlamak ve somutlaştırmak için Silverlight ile kullanarak, listbox bileşeni ile birlikte inceleyeceğiz. For döngüsünün işleyişini görmek için butonların altında “for döngüsünü” event olarak yazarak listbox içerisinde canlandıracağız. For ’un çeşitli kullanımlarını göreceğiz şimdi de.

Makale

IronPython içerisindeki for döngüsünü anlamak ve somutlaştırmak için Silverlight ile kullanarak, listbox bileşeni ile birlikte inceleyeceğiz.

For döngüsünün işleyişini görmek için butonların altında “for döngüsünü” event olarak yazarak listbox içerisinde canlandıracağız. For ’un çeşitli kullanımlarını göreceğiz şimdi de.

For döngüleri temelinde sürekli tekrarlanacak durumları, belirli kurallar ve şartlar altında otomatik olarak gerçekleştirmesidir. Projenin genel kodları aşağıdaki gibidir.

app.xaml

    1 <UserControl
    2     xmlns="http://schemas.microsoft.com/client/2007"
    3     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4   xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    5   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    6   x:Class="System.Windows.Controls.UserControl"
    7   mc:Ignorable="d">
    8   <Grid x:Name="layout_root">
    9     <Grid.Background>
   10       <RadialGradientBrush>
   11         <GradientStop Color="#FF56A8D6"/>
   12         <GradientStop Color="#FF15628E" Offset="1"/>
   13       </RadialGradientBrush>
   14     </Grid.Background>
   15     <ListBox Width="173" x:Name="Listt" HorizontalAlignment="Left" Margin="8,8,0,0" Height="251" VerticalAlignment="Top" Foreground="White">
   16       <ListBox.Background>
   17         <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
   18           <GradientStop Color="#FFA3AEB9" Offset="0"/>
   19           <GradientStop Color="#FF8399A9" Offset="0.228"/>
   20           <GradientStop Color="#FF718597" Offset="0.228"/>
   21           <GradientStop Color="#FF627786" Offset="1"/>
   22         </LinearGradientBrush>
   23       </ListBox.Background>
   24     </ListBox>
   25     <Button Margin="185,8,0,0" Width="75" Height="30" x:Name="Buton" Content="Calistir" HorizontalAlignment="Left" VerticalAlignment="Top" d:LayoutOverrides="Width, Height"/>
   26   </Grid>
   27 </UserControl>


app.py

    1 from System.Windows import Application
    2 from System.Windows.Controls import UserControl
    3 
    4 proje = Application.Current.LoadRootVisual(UserControl(), 'app.xaml')
    5 
    6 def onClickButton(sender, args):
    7     for sayilar in range(5):
    8         proje.Listt.Items.Add(sayilar)
    9 
   10 proje.Buton.Click += onClickButton

range()
range() komutu bizim için otomatik dizi oluşturmaya yarayan bir komuttur. Bizim için parametreyi alır ve istediğimiz bir koşulda bir liste oluşturur.  Bu range komutunu genellikle for döngüleri içersinde başlangıç ve bitiş iterasyonları için kullanacağız.

range(bitiş)
Tekli formda kullanırsak range komutunu 0'dan başlayarak bitiş sayısına kadar birer artan bir dizi oluşturur.
döngü içerisinde kullanmak bize çok kolaylıklar sağlar;

bitişi 5 olan bir dizi boyutunda döngü oluşturalım ve listbox’a aktaralım.

def onClickButton(sender, args):
    for sayilar in range(5):
        proje.Listt.Items.Add(sayilar)
 
range(başlangıç,bitiş,artış)
range komutunun bir değişik kullanımı da yukarıdaki formdadır. Başlangıç bitiş ve artış parametrelerini girdikten sonra otomatikman listeyi ona göre oluşturur.
1den 15e kadar tek sayıları listbox’a yazdıralım:

def onClickButton(sender, args):
    for sayilar in range(1,15,2):
        proje.Listt.Items.Add(sayilar)

5ten -5e kadar sayıları birer azaltarak listbox’a yazdıralım:

def onClickButton(sender, args):
    for sayilar in range(5, -5, -1):
        proje.Listt.Items.Add(sayilar)

81 sayısından 0’a kadar bir sayının karesi olan sayıları listbox’a yazdıralım:

from System.Windows import Application
from System.Windows.Controls import UserControl
from math import sqrt
proje = Application.Current.LoadRootVisual(UserControl(), 'app.xaml')
 
def onClickButton(sender, args):
    for sayilar in range(81,0,-1):
        kok=sqrt(sayilar)
        if kok==int(kok):
            proje.Listt.Items.Add((kok).ToString() + "^2 = " + (sayilar).ToString())
 
proje.Buton.Click += onClickButton

range(başlangıç,bitiş)
bu from da sayilar başlangıçtan bitişe kadar tek tek artar.
10dan 14e kadar olan sayıları listbox’a aktaralım.

def onClickButton(sender, args):
    for sayilar in range(10,14):
        proje.Listt.Items.Add(sayilar)

For döngüsünün dizilerle kullanımına bakacak olursak:

def onClickButton(sender, args):
    for sayilar in [1, 2, 3, 4, 5, 6, 7]:
        proje.Listt.Items.Add(sayilar)

Şimdi de bir metin üzerinde birer harf atlatarak listbox’a aktaralım

def onClickButton(sender, args):
    metin = "ironpython"
    for sayilar in range(0, len(metin), 2):
        proje.Listt.Items.Add(metin[sayilar])

IronPython da For döngüsünün değişik türlerini silverlight ile inceledik.

Hepinize Kolay gelsin. Sorularınızı ve takıldığınız yerleri ik@ibrahimkivanc.com mail adresime iletebilirsiniz.