input python 验证int_python自学笔记day2

.一:分支结构[1]

if语句的使用:

"""
用户身份验证
"""

username = input('请输入用户名: ')
password = input('请输入口令: ')
# 用户名是admin且密码是123456则身份验证成功,否则失败
if username == 'admin' and password == '123456':
    print('身份验证成功')
else:
    print('身份验证失败')

input python 验证int_python自学笔记day2_第1张图片

若要构造更多的分支,可以使用if...elif...else...结构:

"""
分段函数求值
       3x - 5 (x>1)
f(x)=  x + 2 (-1<= x <= 1)
       5x +3 (x < -1)
"""

x = float(input('x = '))
if x > 1:
  y = 3*x - 5
elif x >= -1:
    y = x+ 2
else:
    y = 5 * x + 3
print('f(%.2f) = %.2f' % (x, y))

input python 验证int_python自学笔记day2_第2张图片

还可以进行嵌套,但是第一章说过,代码提倡的是扁平化,故不提倡这种写法

x = float(input('x = '))
if x > 1:
    y = 3 * x - 5
else:
    if x >= -1:
        y = x + 2
    else:
        y = 5 * x + 3
print('f(%.2f) = %.2f' % (x, y))

练习:

1.英制单位英寸和公制单位厘米互换

"""
一英寸=2.54厘米
1cm = 0.39in
"""

"""
# 第一次做法,没有考虑互换
inch = float(input('请输入英尺: '))
cm = 0.39 * inch
print('%.2f英寸 = %.2f厘米' % (inch, cm))
"""

value = float(input('请输入长度: '))
unit = input('请输入单位: ')
if unit == 'inch' or unit == '英寸':
    print('%.2f英寸 = %.2f厘米' % (value, value*2.54))
elif unit == 'cm' or unit == '厘米':
    print('%2.f厘米 = %.2f英寸' % (value, value*0.39))
else:
    print('请输入有效单位')

input python 验证int_python自学笔记day2_第3张图片

2.百分制成绩转换为等级制成绩:

"""
如果输入成绩在90分及以上,输出A;
如果输入成绩在80-90(不含90),输出B;
如果输入成绩在70-80(不含80),输出C;
如果输入成绩在60-70(不含70),输出D;
60分以下输出E
"""

1.第一次程序不够简洁,可将print放到最后整个程序输出,同时也没有考虑到小数情况
grades = int(input('请输入成绩: '))
if 100 >= grades >= 90:
    print('您的等级为:A')
elif 80 <= grades < 90:
    print('您的等级为:B')
elif 70 <= grades < 80:
    print('您的等级为:C')
elif 60 <= grades < 70:
    print('您的等级为:D')
elif grades < 60:
    print('您的等级为:E')
else:
    print('请输入正确的数字')

2.这是作者给出的答案,但是我觉得没有考虑到无效数字的情况
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)
   

3.输入三条边长,如果能够构成三角形就计算周长和面积

"""
判断是否能够构成三角形:两边之和大于第三条边
如果能够构成三角形,计算周长和面积
周长:三边之和
面积(海伦公式):p=(a+b+c)/2
      s=sqrt[p(p-a)(p-b)(p-c)]
"""

1.写完if之后忘记写else了,最好还是先把结构写好在填内容
a = float(input('请输入边长a= '))
b = float(input('请输入边长b= '))
c = float(input('请输入边长c= '))

if a + b > c and a+c>b and b+c>a:
    print('此三条边能够构成一个三角形')
    print('周长= %.1f' %(a+b+c))
    p = (a+b+c)/2
    s = (p*(p-a)*(p-b)*(p-c))** 0.5
    print('面积= %.1f' % (s))
else:
    print('不能构成一个三角形')

input python 验证int_python自学笔记day2_第4张图片

二:循环结构[2]

在python中构造循环结构有两种做法,一种是for-in循环,一种是while循环

for-in循环:

"""
用for循环实现1-100求和
"""

sum = 0
for x in range(101):    # range(101):0-100整数序列, range(1,100):1-99的整数序列
    sum += x           
print(sum)                 # 结果为5050
"""
用for循环实现1-100偶数求和
"""

sum = 0
for x in range(2, 101, 2):     # range(1,100,2):1-99的奇数序列,2是步长
    sum += x
print(sum)                 # 结果为2550


"""
也可以用循环分支结构
"""

sum = 0
for x in range(1, 101):
    if x % 2 == 0:
        sum += x
print(sum)                 #结果同样为2550

while循环:不知道具体循环次数推荐使用while循环

"""
猜数字游戏
计算机出一个1-100之间的数由人来猜
计算机根据猜的数字来给出提示
"""

import random

answer = random.randint(1, 100)
counter = 0
while True:
    counter += 1
    number = int(input('请输入: '))
    if number < answer:
        print('bigger')
    elif number > answer:
        print('smaller')
    else:
        print('bingo')
        break                     # break:终止所在的这个循环  continue:结束本次循环直接进入下一轮循环结构
print('你总共猜了%d次' % counter)
if counter > 7:
    print('你的智商余额不足')

input python 验证int_python自学笔记day2_第5张图片

循环结构也可嵌套

"""
输出乘法口诀表
"""

for i in range(1,10):
    for j in range (1, i+1):
        print('%d*%d=%d' % (i, j, i*j), end='t')
    print()

input python 验证int_python自学笔记day2_第6张图片

练习:

1.输入一个正整数判断是不是素数

"""
输入一个正整数判断是不是素数
素数是指只能被1和自身整除的大于1的整数
"""

"""
number = int(input('请输入一个数:'))
for i in range(2,10):
    if number/i == int and i != number:
        print('这不是一个素数')
    else:
        print('这是一个素数')
"""

from math import sqrt                          # 引入平方根

num = int(input('请输入一个正整数:'))          # 输入数
end = int(sqrt(num))                           # 将输入的数求平方根整数,比如50开更等于7
is_prime = True                                # 判断是否为素数
for x in range(2, end + 1):                    # 循环2-7
    if num % x == 0:                           # 如果50模2-7中的数为0,也即能被整除
        is_prime = False                       # 判为非素数
        break                                  # 推出当前循环
if is_prime and num != 1:                      # 如果判断为素数且输入数字不为1
    print('是素数')
else:
    print('不是素数')

input python 验证int_python自学笔记day2_第7张图片

2.输入两个正整数,计算他们的最大公约数和最小公倍数

"""
输入两个正整数
计算它们的最大公约数和最小公倍数
"""
1.
num1 = int(input('请输入数字1:'))
num2 = int(input('请输入数字2:'))

if num1>num2:
    num = num1
else:
    num = num2
    
for x in range(num1+num2, 0, -1):       #不好确定区间,可以通过递减的方式来循环
    if num1 % x == 0 and num2 % x == 0:
        print('最大公约数为%d:' % x)
        break

    
for y in range(num, num1 * num2+1):
    if y % num1 == 0 and y % num2 == 0:
        print('最小公倍数为%d: ' % y)
        break
    
2.
x = int(input('x = '))
y = int(input('y = '))
# 如果x大于y就交换x和y的值
if x > y:
    # 通过下面的操作将y的值赋给x, 将x的值赋给y
    x, y = y, x
# 从两个数中较的数开始做递减的循环
for factor in range(x, 0, -1):
    if x % factor == 0 and y % factor == 0:
        print('%d和%d的最大公约数是%d' % (x, y, factor))
        print('%d和%d的最小公倍数是%d' % (x, y, x * y // factor))
        break

3.打印如下三角图案

24bc928e458d8e307b76be6cfb7fe5ad.png
"""
打印三角形
"""

row = int(input('请输入行数:'))              # 输入行数
for i in range(row):                         # 遍历
    for _ in range(i+1):                     # 下划线表示临时变量,只用一次
        print('*', end='')
    print()

for i in range(row):                
    for j in range(row):
        if j < row - i - 1:              # 
            print('',end='')
        else:
            print('*',end='')
    print()

for i in range(row):
    for _ in range(row - i - 1):
        print('',end='')
    for  _ in range(2 * i + 1):
        print('*',end='')
    print()

参考

  1. ^https://github.com/jackfrued/Python-100-Days/blob/master/Day01-15/03.%E5%88%86%E6%94%AF%E7%BB%93%E6%9E%84.md
  2. ^https://github.com/jackfrued/Python-100-Days/blob/master/Day01-15/04.%E5%BE%AA%E7%8E%AF%E7%BB%93%E6%9E%84.md

你可能感兴趣的:(input,python,验证int)