Python全栈开发记录_第一篇

时间:2024-01-22 09:38:33

  Python全栈开发记录只为记录全栈开发学习过程中一些和重要的知识点,还有问题及课后题目,以供自己和他人共同查看。

知识点1:优先级:not>and>or

    短路原则:and:如果第一个条件的结论为假,那么 and 前后两个条件组成的表达式计算结果一定为假,后面的条件计算机不会进行计算

         or:如果第一个条件的结论为真,那么or 前后两个条件组成的表达式计算结果一定为真,后面的条件计算机不会进行计算

知识点2:python区分大小写,常量需全部字母大写(默认这样写)

    python换行符说明:Windows是'\r\n',Linux是'\n',在Python 3,可以通过open函数的newline参数来控制Universal new line mode:读取时候,不指定newline,则默认开启Universal new line mode,所有\n, \r, or \r\n被默认转换为\n ;写入时,不指定newline,则换行符为各系统默认的换行符(\n, \r, or \r\n, ),指定为newline='\n',则都替换为\n(相当于Universal new line mode);不论读或者写时,newline=''都表示不转换。

知识点3:while...else...:while循环中,只要循环正常完成,即中途没有break,那么就会 执行else语句,否则就不会。

 

题目一:用户输入三个数字,输出三个数字中的最值/最小值

# -*- coding:utf-8 -*-

'''
需求1:用户输入三个数字,输出三个数字中的最大值/最小值

思路:以num1,num2,num3三个数为例
    1、三个数比较的话,先比较两个数,然后再拿这两个数跟第三个数进行比较
    2、
    if num1 >= num2:
        if num2 >= num3:
            print("最大值是:",num1,",最小值是:",num3)
        elif num1 >= num3:
            print("最大值是:",num1,",最小值是:",num2)
        else:
            print("最大值是:",num3,",最小值是:",num2)
    else:
        if num1 >= num3:
            print("最大值是:",num2,",最小值是:",num3)
        elif num2 >= num3:
            print("最大值是:",num2,",最小值是:",num1)
        else:
            print("最大值是:",num3,",最小值是:",num1)
'''

def compare_size():
    num1 = int(input("请输入第一个数字:"))
    num2 = int(input("请输入第二个数字:"))
    num3 = int(input("请输入第三个数字:"))
    if num1 >= num2:
        if num2 >= num3:
            print("最大值是:",num1,",最小值是:",num3)
        elif num1 >= num3:
            print("最大值是:",num1,",最小值是:",num2)
        else:
            print("最大值是:",num3,",最小值是:",num2)
    else:
        if num1 >= num3:
            print("最大值是:",num2,",最小值是:",num3)
        elif num2 >= num3:
            print("最大值是:",num2,",最小值是:",num1)
        else:
            print("最大值是:",num3,",最小值是:",num1)


if __name__ == "__main__":
    compare_size()

题目二:使用#号输出长方形,用户可以指定宽和高,如果宽为4,高为5,则输出4个横#和5个竖#的长方形
# -*- coding:utf-8 -*-

'''
需求2:使用#号输出长方形,用户可以指定宽和高,如果宽为4,高为5,则输出4个横#和5个竖#的长方形

思路:
    1、一般横竖这种可以通过循环嵌套来处理
    2、外层循环代表横,内层循环代表竖

'''

def print_rectangle():
    #接收用户输入
    rec_width = int(input("请输入宽:"))
    rec_height = int(input("请输入高:"))
    #外层循环输出高
    for height in range(rec_height):
        #内层循环输出宽的数量
        for width in range(rec_width):
            print("#",end="")
        #每行打完换行
        print()

if __name__ == "__main__":
    print_rectangle()

题目三:如何输出如下直角三角形,用户指定行数(上下反转试下)
'''
需求3:如何输出如下直角三角形,用户指定行数(上下反转试下)
*
**
***

思路:
    1、外层循环代表横,内层循环代表竖(先确定这个框架)
    2、外层是行,那么也就是用户的输入,由于用户只输入了高,发现列是第一行一,第二行二,第N行N,所以可以不用内循环也可以
    3、上下反转的话,就是输出第一行是N,依次减一即可

'''

def print_triangle():
    # 接收用户输入
    tri_height = int(input("请输入三角形的高:"))
    # 外层循环输出高
    for height in range(1, tri_height+1):
        print("*"*height)

def up_down_print_triangle():
    # 接收用户输入
    tri_height = int(input("请输入三角形的高:"))
    # 外层循环输出高
    for height in range(1, tri_height+1):
        print("*"*(tri_height+1-height))

if __name__ == "__main__":
    #print_triangle()
    up_down_print_triangle()

题目四:输出九九乘法表
'''
需求4:输出九九乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
....

思路:
    1、外层循环代表横,内层循环代表竖(先确定这个框架)
    2、然后找寻规律,发现总共九行,第一行一列,第N行N列
    3、x*y 左边x,x的值由1逐步增加至y  y的数值则为列的数值
'''

def print_99_multiply():
    #99乘法表的行、列数用变量表示
    nine_lines = 9
    nine_weight = 9
    #行的数量
    for line in range(1, nine_lines+1):
        #列的数量,由于列的数量跟行数量一致,所以是line+1
        for weight in range(1, line+1):
            print("%d*%d=%d"%(weight, line, (weight*line)),end="\t") #\t制表符是为了对齐
        print()

if __name__ == "__main__":
    print_99_multiply()

  

总结:第一篇主要用到的知识都是循环嵌套,虽然不难,但是这上面的题目都还是比较经典的,建议在做题的时候先看清楚需求然后明确思路,锻炼先理顺实现逻辑再去编程,这样会比较好,而且要写注释,变量名也需要有意义。