Latest web development tutorials

Python3 حلقة

وهذا الفصل يعرض استخدام البيان حلقة بيثون.

الثعبان في حلقة وهناك لبعض الوقت.

بيثون هيكل الرقابة حلقة من البيان كما يلي:


في حين حلقة

الثعبان بينما جاء في الشكل العام:

while 判断条件:
    语句

أيضا لاحظ القولون والمسافة البادئة. وعلاوة على ذلك، لا حلقة do..while في بيثون.

يستخدم المثال التالي بعض الوقت لحساب مجموع 1-100:

#!/usr/bin/env python3

n = 100

sum = 0
counter = 1
while counter <= n:
    sum = sum + counter
    counter += 1

print("1 到 %d 之和为: %d" % (n,sum))

نتائج التنفيذ هي كما يلي:

1 到 100 之和为: 5050

حلقة لانهائية

لا يمكننا أبدا أن تتحقق باعتباره حلقة لا نهائية كاذبة عن طريق وضع التعبير الشرطي، والأمثلة على النحو التالي:

#!/usr/bin/python3

var = 1
while var == 1 :  # 表达式永远为 true
   num = int(input("输入一个数字  :"))
   print ("你输入的数字是: ", num)

print ("Good bye!")

تنفيذ البرنامج النصي أعلاه، نتائج الإخراج هي كما يلي:

输入一个数字  :5
你输入的数字是:  5
输入一个数字  :

يمكنك استخدامCTRL + C للخروج من حلقة لا نهائية الحالية.

حلقة لا نهائية في الوقت الحقيقي لطلبات العميل مفيدة جدا على الخادم.

في حين إعادة تدوير تصريحات شيء آخر

إعدام كتلة بيان آخر لعبارة شرطية غير صحيح في الوقت ... آخر:

#!/usr/bin/python3

count = 0
while count < 5:
   print (count, " 小于 5")
   count = count + 1
else:
   print (count, " 大于或等于 5")

تنفيذ البرنامج النصي أعلاه، نتائج الإخراج هي كما يلي:

0  小于 5
1  小于 5
2  小于 5
3  小于 5
4  小于 5
5  大于或等于 5

مجموعة بيان بسيطة

بناء الجملة مشابه لبيان إذا، حلقة في حين إذا كنت بيان واحد فقط، وعلى الرغم من أن تتمكن من كتابة بيان على نفس الخط، على النحو التالي:

#!/usr/bin/python

flag = 1

while (flag): print ('欢迎访问本教程!')

print ("Good bye!")

ملاحظة: حلقة لا نهائية أعلاه يمكنك استخدام CTRL + C لمقاطعة دورة.

تنفيذ البرنامج النصي أعلاه، نتائج الإخراج هي كما يلي:


للبيان

الثعبان لحلقة يمكن أعاد على أي تسلسل من العناصر، مثل قائمة أو سلسلة.

الشكل العام للتداول على النحو التالي:

for <variable> in <sequence>:
    <statements>
else:
    <statements>

بيثون دورة حلقة مثال:

>>> languages = ["C", "C++", "Perl", "Python"] 
>>> for x in languages:
...     print (x)
... 
C
C++
Perl
Python
>>> 

يستخدم المثال التالي استراحة لبيان، وكسر بيان للقفز للخروج من حلقة الحالية:

#!/usr/bin/python3

sites = ["Baidu", "Google","w3big","Taobao"]
for site in sites:
    if site == "w3big":
        print("本教程!")
        break
    print("循环数据 " + site)
else:
    print("没有循环数据!")
print("完成循环!")

بعد تنفيذ البرنامج النصي، في حلقة ل"w3big" سوف يطفو على السطح عندما الحلقة:

循环数据 Baidu
循环数据 Google
本教程!
完成循环!

وظيفة مجموعة ()

إذا كنت بحاجة إلى تكرار عبر سلسلة من الأرقام، يمكنك استخدام وظيفة المدمج في مجموعة (). فإنه سيتم إنشاء عدد من الأعمدة، على سبيل المثال:

>>> for i in range(5):
...     print(i)
...
0
1
2
3
4

يمكنك أيضا استخدام مجموعة ومجموعة قيمة محددة:

>>> for i in range(5,9) :
    print(i)

    
5
6
7
8
>>>

ومن الممكن أيضا لتحديد عدد مجموعة بداية وتحديد العلاوة مختلفة (حتى سلبية، وأحيانا تسمى أيضا 'خطوة'):

>>> for i in range(0, 10, 3) :
    print(i)

    
0
3
6
9
>>> 

تقييم سلبي:

>>> for i in range(-10, -100, -30) :
    print(i)

    
-10
-40
-70
>>> 

يمكنك الجمع بين مجموعة () وظيفة ليون () لاجتياز مؤشر تسلسل، على النحو التالي:

>>> a = ['Google', 'Baidu', 'w3big', 'Taobao', 'QQ']
>>> for i in range(len(a)):
...     print(i, a[i])
... 
0 Google
1 Baidu
2 w3big
3 Taobao
4 QQ
>>> 

يمكنك أيضا استخدام الدالة مجموعة () لإنشاء قائمة:

>>> list(range(5))
[0, 1, 2, 3, 4]
>>>

كسر وتواصل التصريحات وشرط حلقة آخر

الخروج من لبيان وحلقة من الوقت. إذا كنت الخروج من لأو أثناء حلقة، لا يتم تنفيذ أي كتلة حلقة المناظرة آخر. ومن الأمثلة على ذلك ما يلي:

#!/usr/bin/python3

for letter in 'w3big':     # 第一个实例
   if letter == 'b':
      break
   print ('当前字母为 :', letter)
  
var = 10                    # 第二个实例
while var > 0:              
   print ('当期变量值为 :', var)
   var = var -1
   if var == 5:
      break

print ("Good bye!")

تنفيذ إخراج البرنامج النصي في الأعلى هو:

当前字母为 : R
当前字母为 : u
当前字母为 : n
当前字母为 : o
当前字母为 : o
当期变量值为 : 10
当期变量值为 : 9
当期变量值为 : 8
当期变量值为 : 7
当期变量值为 : 6
Good bye!

يواصل الإدلاء يستخدم لمعرفة بيثون لتخطي ما تبقى من بيان كتلة الحلقة الحالية، ومن ثم المضي قدما في الدورة القادمة.

#!/usr/bin/python3

for letter in 'w3big':     # 第一个实例
   if letter == 'o':        # 字母为 o 时跳过输出
      continue
   print ('当前字母 :', letter)

var = 10                    # 第二个实例
while var > 0:              
   var = var -1
   if var == 5:             # 变量为 5 时跳过输出
      continue
   print ('当前变量值 :', var)
print ("Good bye!")

تنفيذ إخراج البرنامج النصي في الأعلى هو:

当前字母 : R
当前字母 : u
当前字母 : n
当前字母 : b
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
当前变量值 : 4
当前变量值 : 3
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0
Good bye!

يمكن الحلقات لديها بنود شيء آخر، وقائمة شاملة (مع لحلقة) أو حالة يصبح كاذبة (مع مع حلقة) يتم تنفيذ تؤدي إلى إنهاء الحلقة، ولكن إنهاء دورة عندما لا يتم تنفيذه في الشوط الثاني.

الأمثلة التالية هي ليعبي دورة سبيل المثال الاستعلام:

#!/usr/bin/python3

for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print(n, '等于', x, '*', n//x)
            break
    else:
        # 循环中没有找到元素
        print(n, ' 是质数')

تنفيذ إخراج البرنامج النصي في الأعلى هو:

2  是质数
3  是质数
4 等于 2 * 2
5  是质数
6 等于 2 * 3
7  是质数
8 等于 2 * 4
9 等于 3 * 3

الجملة ممر

بيثون تمرير بيان فارغة، من أجل الحفاظ على سلامة هيكل البرنامج.

تمر دون أن تفعل أي شيء، وتستخدم عادة كبيان نائب التالية أمثلة

>>> while True:
...     pass  # 等待键盘中断 (Ctrl+C)

أصغر فئات:

>>> class MyEmptyClass:
...     pass

الأمثلة التالية تنفذ تمرير كتلة من البيانات عندما خطابات س:

#!/usr/bin/python3

for letter in 'w3big': 
   if letter == 'o':
      pass
      print ('执行 pass 块')
   print ('当前字母 :', letter)

print ("Good bye!")

تنفيذ إخراج البرنامج النصي في الأعلى هو:

当前字母 : R
当前字母 : u
当前字母 : n
执行 pass 块
当前字母 : o
执行 pass 块
当前字母 : o
当前字母 : b
Good bye!