Заметки по Python (3): условные операторы и операторы цикла

Python Технологии Nuggets призывают к публикации
Заметки по Python (3): условные операторы и операторы цикла

Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.

Привет всем, яодна чаша в неделю, передняя часть, которая не хочет быть пьяной (завернутой). Если написанной статье посчастливилось получить вашу благосклонность, мне очень повезло~

Условные операторы

Так называемыйУсловные операторы, который должен решить, следует ли выполнять или пропускать некоторые указанные блоки операторов в текущий момент через текущий результат указанного выражения. Краткий ответ заключается в том, что если указанное выражение оценивается какtrue, выполнить указанный блок операторов, если результат операцииfalseБлок операторов пропускается или выполняется другой блок операторов. Следующий код выглядит следующим образом:

# 通过input键入用户名和密码
user = input("请输入用户名:")
passwd = input("请输入密码:")

# 将默认的用户名设置为admin 密码123456
user_d = "admin"
passwd_d = "123456"

# 通过if,elif else梳理流程
if user == user_d and passwd == passwd_d:
    print("登陆成功")
elif user != user_d:
    print("用户名不存在")
else:
    print("密码错误")

если оператор

В Python для создания структуры ветвей вы можете использоватьif,elifиelseключевые слова. так называемыйключевые словаслова со специальным значением, напримерifиelseЭто ключевое слово, специально используемое для создания структур ветвей. Очевидно, вы не можете использовать его в качестве имени переменной (фактически, его нельзя использовать в качестве других идентификаторов).

В нашем коде выше синтаксический анализ выглядит следующим образом:

  • Используйте двоеточие после каждого условия:, указывающий, что следующий блок операторов должен быть выполнен после выполнения условия.
  • В системе входа в систему возможны 3 ситуации: 1. Имя пользователя и пароль совпадают, и вход выполнен успешно; 2. Имя пользователя не существует, и вход невозможен; 3. Неверный пароль, и вход невозможен.
  • Если имя пользователя и пароль совпадают, выведите успешный вход в систему.
  • Имя пользователя не соответствует печати Имя пользователя не существует
  • Первые два были исключены, оставлено условие, что пароль неверный.

Стоит отметить, что отступ используется для представления структуры кода в Python, то есть, если вы хотите выполнить оператор в операторе if, вам нужно только указать для него такой же отступ.отступМожно использовать любое количество пробелов, ноОбычно используется 4 пробела

оператор вложенной ветки

Пример кода выглядит следующим образом:

user_key = int(input("输入1进入登陆系统,输入0退出系统"))

# 通过if,elif else梳理流程
if user_key == 1:  # 只要用户输入1才能进入登陆系统界面
    # 通过input键入用户名和密码
    user = input("请输入用户名:")
    passwd = input("请输入密码:")
    # 将默认的用户名设置为admin 密码123456
    user_d = "admin"
    passwd_d = "123456"
    if user == user_d and passwd == passwd_d:
        print("登陆成功")
    elif user != user_d:
        print("用户名不存在")
    else:
        print("密码错误")
elif user_key == 0:
    print("已退出")
else:
    print("输入错误")
  • Поскольку в это время во внешнем слое есть дополнительный слой структуры, необходимоifВнутри строится новая отраслевая структура.elifиelseМожет также быть повторно настроен на новую ветвь, ветвь называется вложенной структурой
  • Однако по возможности старайтесь не использовать вложенные структуры, поскольку вложенные структуры влияют на читабельность кода.

кейс упражнение

  1. Имперские единицы дюймов заменены метрическими единицами сантиметров (1 дюйм (дюйм) = 2,54 сантиметра (см))

    value = float(input("请输入数值:"))
    unit = input("请输入单位(英寸或in和厘米或cm):")
    
    if unit == "in" or unit == "英寸":
        print("%.2f英寸=%.2f厘米" % (value, value * 2.54))
    elif unit == "cm" or unit == "厘米":
        print("%.2f厘米=%.2f英寸" % (value, value / 2.54))
    else:
        print("单位错误")
    
  2. Преобразование процентильных оценок в градуированные оценки

    Требовать: Если входная оценка выше 90 баллов (включая 90 баллов), выход A; 80 баллов-90 баллов (исключая 90 баллов) выход B; 70 баллов-80 баллов (исключая 80 баллов) выход C; 60 баллов-70 баллов ( исключая 70 баллов) выход D, ниже 60 баллов выход E.

    score = float(input('请输入成绩: '))
    if score >= 90:
        grade = 'A'
    elif score >= 80:
        grade = 'B'
    elif score >= 70:
        grade = 'C'
    elif score >= 60:
        grade = 'D'
    else:
        grade = 'E'
    print('对应的等级是:', grade)
    

оператор цикла

оператор циклаЭто повторное выполнение определенных операторов, которое управляется указанием выражений. Проще говоря, указанное выражение преобразуется вbooleanРезультат после значения типаtrue, какие операторы повторяются до тех пор, пока указанное выражение не будет преобразовано вbooleanРезультат после значения типаfalseперестанет выполняться.

цикл for-in

Циклы for используются для перебора последовательностей (то есть списков, кортежей, словарей, наборов или строк). Структура синтаксиса выглядит следующим образом:

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

функция диапазона()

создать набор массивов,range()Несколько вариантов использования

  • range(101): Может использоваться для генерации целых чисел в диапазоне от 0 до 100. Следует отметить, что 101 получить нельзя.
  • range(1, 101): может использоваться для генерации целого числа в диапазоне от 1 до 100, что эквивалентно закрытому интервалу, за которым следует открытый интервал.
  • range(1, 101, 2): Может использоваться для генерации нечетных чисел от 1 до 100, где 2 — это размер шага, значение, которое увеличивается каждый раз, когда значение.
  • range(100, 0, -2): может использоваться для генерации четных чисел от 100 до 1, где -2 — размер шага, значение, на которое уменьшается каждое число.

Пример 1: вычислить сумму 1-100

# 用来存储每次计算的结果
sum = 0
for i in range(101):
    sum += i  # 这里等同于sum=sum+1
print(sum)

Пример 2: вычислить сумму четных чисел от 1 до 100

# 用来存储每次计算的结果
sum = 0
for i in range(0, 101, 2):
    sum += i
print(sum)

Начиная с 0, каждый шаг равен 2, единственное число пропускается.

Пример 3: вычислить сумму нечетных чисел от 1 до 100

Можно начать с 1 с размером шага 2, чтобы пропускать четные числа, или сделать это путем вложения структур ветвления, например.

# 用来存储每次计算的结果
sum = 0
for i in range(101):
    if i % 2 == 1:  # 因为单数除2余1,所以只有满足这个条件,才可以进行累加计算
        sum += i
print(sum)

пока цикл

whileперебор может генерировать или преобразовыватьboolЗначение выражения для управления циклом, значение выражения равноTrueцикл продолжается, выражение оценивается какFalseзатем завершает цикл.

Структура синтаксиса выглядит следующим образом:

while 判断条件:
    执行语句……

пройти черезwhileЗаявление о достижении 1-100 кумулятивных результатов

# 用来存储每次计算的结果
sum = 0
# 设置开始的值
i = 1
# 设置允许循环的最大值
n = 100
while i <= n:
    sum += i
    i += 1
print(sum)

операторы break и continue

breakОператоры могут выходить за пределы тела циклов for и while. Если вы выходите из цикла for или while.

continueОператор используется, чтобы указать Python пропустить оставшиеся операторы в текущем блоке цикла и перейти к следующему раунду цикла.

поток выполнения кода

Пример: игра «Угадай слово»

Правила: Компьютер генерирует случайное число от 1 до 100, игрок вводит число, которое он угадал, и компьютер выдает соответствующую подсказку (больше, меньше или правильно угадал), если игрок угадывает число правильно, компьютер подсказывает user Сколько раз вы угадали всего, игра окончена, иначе игра продолжается, если количество раз больше 5, цикл выходит.

import random  # 导入随机数模块

answer = random.randint(1, 100)  # 生成1-100的随机数
counter = 0  # 将次数初始为0
while True:
    number = int(input('请输入: '))
    if number < answer:
        print('大一点')
        counter += 1
    elif number > answer:
        print('小一点')
        counter += 1
    else:
        print('恭喜你猜对了!')
        break  # 如果猜对了 就跳出循环
    if counter >= 5:  # 次数大于5则退出这个系统
        print('你的智商余额明显不足')
        break
print('你总共猜了%d次' % counter)

вложение петель

Подобно структуре ветвления, структура цикла также может быть вложенной, то есть структура цикла также может быть построена в цикле.

Пример 1: Печать таблицы умножения 99 с помощью оператора for...in

for x in range(1, 10):
    for y in range(1, x+1):
        print("%d * %d = %d" % (y, x, x*y), end="  ")
    print()

Пример 2: Печать таблицы умножения 99 с помощью оператора while

x = 1
y = 1
while x <= 9:
    y = 1  # 每执行完一次子循环,y重置为1
    while y <= x:
        print("%d * %d = %d" % (y, x, x*y), end="  ")
        y += 1
    x += 1
    print()  # 每一句结束一个换行