在 Python 面試中,循環(huán)和判斷是基礎(chǔ)且重要的考點(diǎn)。以下是一些常見的循環(huán)判斷相關(guān)面試題及其解答:

1. 基礎(chǔ)循環(huán)判斷
問題: 編寫一個(gè)程序,判斷一個(gè)數(shù)字是否為質(zhì)數(shù)。
| defis_prime(n): |
| if n <= 1: |
| returnFalse |
| for i inrange(2, int(n**0.5) + 1): |
| if n % i == 0: |
| returnFalse |
| returnTrue |
|
|
| |
| print(is_prime(7)) |
| print(is_prime(10)) |
2. 循環(huán)中的 break 和 continue
問題: 解釋 break 和 continue 的區(qū)別,并舉例說明。
| |
| for i inrange(1, 20): |
| if i % 3 == 0and i % 5 == 0: |
| print(f"找到**個(gè)能被3和5整除的數(shù): {i}") |
| break |
|
|
| |
| for i inrange(10): |
| if i % 2 == 0: |
| continue |
| print(f"奇數(shù): {i}") |
3. 循環(huán)與條件判斷結(jié)合
問題: 編寫一個(gè)程序,找出1-100之間所有的"完美數(shù)"(等于其真因子之和的數(shù))。
| deffind_perfect_numbers(): |
| perfect_numbers = [] |
| for num inrange(1, 101): |
| sum_factors = 0 |
| for i inrange(1, num): |
| if num % i == 0: |
| sum_factors += i |
| if sum_factors == num: |
| perfect_numbers.append(num) |
| return perfect_numbers |
|
|
| print(find_perfect_numbers()) |
4. 循環(huán)中的 else 子句
問題: 解釋 Python 中 for-else 和 while-else 結(jié)構(gòu)的用途。
| |
| for i inrange(2, 5): |
| if5 % i == 0: |
| print(f"5 能被 {i} 整除") |
| break |
| else: |
| print("5 是質(zhì)數(shù)") |
|
|
| |
| count = 0 |
| while count < 3: |
| print(f"循環(huán)次數(shù): {count}") |
| count += 1 |
| else: |
| print("循環(huán)正常結(jié)束") |
5. 列表推導(dǎo)式中的條件判斷
問題: 使用列表推導(dǎo)式生成1-20的平方數(shù),但排除能被3整除的數(shù)。
| squares = [x**2for x inrange(1, 21) if x**2 % 3 != 0] |
| print(squares) |
6. 循環(huán)優(yōu)化問題
問題: 如何優(yōu)化嵌套循環(huán)的性能?給出一個(gè)例子。
| |
| list1 = [1, 2, 3, 4, 5] |
| list2 = [4, 5, 6, 7, 8] |
|
|
| found = False |
| for x in list1: |
| for y in list2: |
| if x == y: |
| found = True |
| break |
| if found: |
| break |
|
|
| |
| set2 = set(list2) |
| found = any(x in set2 for x in list1) |
| print(found) |
7. 生成器與循環(huán)
問題: 編寫一個(gè)生成器函數(shù),生成無限斐波那契數(shù)列,并在滿足某個(gè)條件時(shí)停止。
| deffibonacci(max_value=None): |
| a, b = 0, 1 |
| whileTrue: |
| yield a |
| a, b = b, a + b |
| if max_value isnotNoneand a > max_value: |
| break |
|
|
| |
| fib = fibonacci(100) |
| for num in fib: |
| print(num, end=" ") |
這些題目涵蓋了 Python 循環(huán)和判斷的主要考點(diǎn),包括基本語法、性能優(yōu)化、特殊結(jié)構(gòu)使用等。在實(shí)際面試中,可能還會(huì)涉及更復(fù)雜的問題,如多線程循環(huán)、異步循環(huán)等高級(jí)主題。