美文网首页
Python正式课第二天

Python正式课第二天

作者: code与有荣焉 | 来源:发表于2019-11-05 21:12 被阅读0次

    一、格式化输出(补充)

    1. format() 格式化输出

    语法格式:
    '{}'.format() 是使用{}去代替传统的%
    <模板字符串>.format(<逗号分隔的参数>) {} 类似于生活中槽的概念

    # format() 格式化输出
    # ''.format() 是使用{}去代替传统的%
    # 格式,<模板字符串>.format(<逗号分隔的参数>) {} 类似于生活中槽的概念
    print('当前使用英雄为{},当前等级为{}级'.format(name, grade))  # 当前使用英雄为鲁班七号,当前等级为15级
    # 可以通过序列号的方式指定模板字符串中参数的使用,参数从0开始编号
    print('当前使用英雄为{1},当前等级为{0}级'.format(grade, name))  # 当前使用英雄为鲁班七号,当前等级为15级
    print('当前使用英雄为{name1},当前等级为{grade1}级'.format(name1=name, grade1=grade))  # 当前使用英雄为鲁班七号,当前等级为15级
    

    2. f-string

    # f-string
    # f-string 是python3.6中定义的一种参数化字符串的方式,主要目的是让字符串格式化更加便捷
    # 用{}标识变量,但是不是使用{}进行占位,而是直接变量名
    print(f'当前使用英雄为{name},当前等级为{grade}级')  # 当前使用英雄为鲁班七号,当前等级为15级
    

    练习:

    # 课上实践 —— 个人名片
    # 需求
    # 在控制台依次提示用户输入:姓名、公司、职位、电话、邮箱
    # 按照以下格式输出:
    name = input('请输入您的姓名')
    company = input('请输入您的公司')
    site = input('请输入您的职位')
    tel = input('请输入您的电话')
    email = input('请输入您的邮箱')
    print('*'*30)
    print('{}'.format(company))
    print()
    print()
    print('%s(%s)' % (name, site))
    print('电话:' + f'{tel}')
    print('邮箱:{}'.format(email))
    print('*'*30)
    
    输出

    二、标识符和保留字

    # -*- coding: utf-8 -*-
    # @Time    : 2019/11/5 9:18
    # @Author  : Han lei
    # @Email   : hanlei5012@163.com
    # @File    : demo4.py
    # @Software: PyCharm
    
    # 标识符和保留字:
    # 标识符就是程序员自己命名的变量名。原则上标识符的命名要有见名知意的效果,不要随便起名字
    # c = '东软' 不好的变量名字
    # en = 2232323 不好的变量名字
    company = 'neusoft'
    employeeNum = 3235235
    # 标识符可以有字母、下划线数字组成
    # 不能以数字开头
    # 不能与保留字重复
    # 保留字,也叫关键字
    # 查看关键字 (35个)
    # import keyword
    # keyword.kwlist
    # ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
    # 关键字就是Python中内部已经定义好的标识符
    # 具有特殊的功能和含义
    # 不允许定义与关键字相同的标识符
    
    # 变量的命名规则
    # 规范的命名是为了增加代码的可读性
    # 1. 下划线命名法 原则:每个单词都要小写,单词之间使用_连接
    first_name = 'zhang'
    qq_number = '1455454'
    # 2. 驼峰式命名法
    # 小驼峰:第一个单词小写字母开始,后续单词首字母大写
    firstName = 'zhang'
    # 大驼峰:每个单词首字母都采用大写的方式
    FirstName = 'zhang'  # 用于类名
    

    三、运算符

    1. 算数运算符

    • 是完成基本的算术运算使用的符号,用来处理四则运算


      算数运算符

    2. 比较(关系)运算符

    比较运算符

    3. 逻辑运算符

    逻辑运算符.png

    4. 赋值运算符

    • 在 Python 中,使用 = 可以给变量赋值
    • 在算术运算时,为了简化代码的编写,Python 还提供了一系列的 与 算术运算符 对应的 赋值运算符
    • 注意:赋值运算符中间不能使用空格


      赋值运算符

    5. 运算符的优先级

    • 以下表格的算数优先级由高到最低顺序排列


      运算符的优先级

    四、分支和循环

    条件判断语句 Python中任何非零 和非空None的值都为True,
    0 或者 None 就为False

    1. if 语句的基本形式

    语法格式:

    if 判断条件:
        执行语句.....
    else:
        执行语句.....
    

    示例:

    result = 99
    if result >= 60:    #  用<判断条件>.if回车可以快捷输入
        print('及格')
    else:
        print('不及格')
    # 下面这样写同样成立
    num = 20
    if num:
        print('if执行了')
    if True:
        print('ifTrue执行了')
    
    chePiao = 1  # 1代表有车票,0代表没车票
    if chePiao == 1:
        print('有车票,可以上火车了')
        print('终于可以见到她了,美滋滋~~~')
    else:
        print('没有车票,不可以上火车')
        print('亲爱的,那就下次再见面吧,一票难求啊~~~(>_<)~~~')
    
    # 从键盘中输入刀子的长度,如果刀子的长度小于10cm,则允许上火车,否则不允许
    dao_length = int(input('请输入刀子的长度:'))
    if dao_length < 10:
        print('上火车吧')
    else:
        print('安保,撵走')
    
    
    if 语句多个判断的形式

    很多编程语言使用switch去判断多个条件
    Python并没有提供switch语句,而是使用elif在代替
    语法格式:

    if xxx1:
        事情1
    elif xxx2:
        事情2
    elif xxx3:
        事情3
    else:
        以上都不满足执行的事情
    

    示例:

    score = int(input('请输入您的成绩'))
    if score >= 90 and score <= 100:
        print('您的成绩为优秀')
    elif score >= 75 and score < 90:
        print('您的成绩为良好')
    elif score >= 60 and score <= 75:
        print('您的成绩为及格')
    elif score>= 0 and score< 60:
        print('您的成绩为及格')
    else:
        print('您输入的成绩不合法')
    # 注意 elif 必须和 if 一起使用,否则会出错
    # else 可以选择性使用,是以上条件都不满足时要执行的事情
    
    if 的嵌套

    语法格式:

    if 条件1:
        满足条件1执行的事情
        if 条件2:
            满足条件2执行的事情
    # 说明
    # 外层的if判断,也可以是if else
    # 内层的if判断,也可以是if else
    

    应用

    chePiao = 1  # 1代表有车票,0代表没车票
    daoLength = 9  # 刀子的长度
    if chePiao == 1:
        print('有车票,可以上火车了')
        if daoLength < 10:
            print('通过安检')
            print('终于可以见到她了,美滋滋~~~')
        else:
            print('没通过安检')
            print('刀子超过规定长度,等待警察处理...')
    else:
        print('没有车票,不可以上火车')
        print('亲爱的,那就下次再见面吧,一票难求啊~~~(>_<)~~~')
    
    
    练习:

    猜拳游戏

    • 键盘输入 剪刀(0),石头(1),布(2)
    • 电脑随机生成一个数[0,2]
    • 判断玩家和电脑猜拳输赢的情况,并且给予显示
      我的代码
    from random import randint
    dict = {'剪刀': 0, '石头': 1, '布': 2}
    ai_guess = randint(0, 2)
    you_guess = dict[input('剪刀石头布你要出哪个:')]
    print('电脑出的是{}'.format(ai_guess))
    if you_guess == 0:
        if ai_guess == 1:
            print('电脑赢,你输了')
        elif ai_guess == 2:
            print('你赢了')
        else:
            print('平了')
    elif you_guess == 1:
        if ai_guess == 1:
            print('平了')
        elif ai_guess == 2:
            print('电脑赢,你输了')
        else:
            print('你赢了')
    elif you_guess == 2:
        if ai_guess == 1:
            print('你赢了')
        elif ai_guess == 2:
            print('平了')
        else:
            print('电脑赢,你输了')
    else:
        print('输入错误')
    

    老师的代码

    from random import randint
    player = int(input('请输入剪刀(0),石头(1),布(2):'))
    if player not in [0, 1, 2]:
        print('输入错误,请重启代码')
    else:
        # 电脑随机生成[0,2]之间的数字
        computer = randint(0, 2)
        # 赢的情况
        if (player == 0 and computer == 2)or(player == 1 and computer == 0)or(player == 2 and computer == 1):
            print('这是高手,你赢了')
        elif player == computer:
            print('哈哈,平局,要不在来一局')
        else:
            print('你输了')
    

    2. 循环

    break 用于跳出本层循环 continue 跳出本次循环,继续执行下一次循环
    pass 是空语句 ,用于占位

    • while循环

    语法格式:

    while 循环条件:
        循环体
    

    练习1:求 1 到 100 之间的累加和

    # 求 1 到 100 之间的累加和
    # 定义一个 用于循环中自增长的变量
    i = 1
    # 定义一个存储累加和的变量
    sum_res = 0
    while i <= 100:
        print('当前执行的循环是第{}次'.format(i))
        sum_res += i
        # 自增操作
        i += 1
    print(sum_res)
    

    练习2:计算1~100之间偶数的累加和

    # 计算1~100之间偶数的累加和
    i = 1
    sum_res = 0
    while i <= 100:
        if i % 2 == 0:
            sum_res += i
        i += 1
    print(sum_res)
    

    练习3:累加和大于 1000时输出sum_res

    # 累加和大于 1000时输出sum_res
    i = 1
    sum_res = 0
    while i <= 100:
        sum_res += i
        if sum_res > 1000:
            break
        i += 1
    print(sum_res, i)
    

    练习4:计算1~100之间奇数的累加和

    # 计算1~100之间奇数的累加和
    i = 1
    sum_res = 0
    while i <= 100:
        if i % 2 == 0:
            i += 1
            continue
        sum_res += i
        i += 1
    print(sum_res)
    
    • while 循环的嵌套

    练习1: 在控制台中输出下面图形

    *
    * *
    * * *
    * * * *
    * * * * *
    

    思路:里层循环负责每一行的输出,外层循环负责换行

    i = 1
    while i <= 5:
        j = 1
        while j <= i:
            print('* ', end='')
            j += 1
        # 外层循环负责换行
        print(end='\n')
        i += 1
    

    练习2:打印九九乘法表

    row = 1
    while row <= 9:
        col = 1
        while col <= row:
            print('{}x{}={}'.format(row, col, row*col), end='\t')  # \t等同于Tab键
            col += 1
        row += 1
        print()
    

    练习3:判断玩家和电脑猜拳输赢的情况,并且给予显示

    from random import randint
    while True:
        player = int(input('请输入剪刀(0),石头(1),布(2):'))
        if player not in [0, 1, 2]:
            print('输入错误,请重新输入')
            continue
        else:
            # 电脑随机生成[0,2]之间的数字
            computer = randint(0, 2)
            # 赢的情况
            if (player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1):
                print('这是高手,你赢了')
                break
            elif player == computer:
                print('哈哈,平局,再给你一次机会')
            else:
                print('你输了,再给你一次机会')
    
    • for循环

    语法格式:

    #iterable可迭代的
    for iterating_var in sequence:
        statements(s)
    

    示例:

    取出字符串
    for zifuchuan in '任嘉俊韩雷吴楠':
        print(zifuchuan, end='\t')
    
    name = '任嘉俊韩雷吴楠'  # 任   嘉   俊   韩   雷   吴   楠
    i = 0
    while i < len(name):
        print(name[i])
        i += 1
    # 上面的循环无法进行计数
    # for 循环的计数
    print(range(10))  # range(0, 10)
    print(list(range(10)))  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    for x in range(10):
        print(x)
    # 等价于
    for x in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
        print(x)
    

    练习1:九九乘法表改成for循环的形式

    for row in range(1, 10):
        for col in range(1, row+1):
            print('{}x{}={}'.format(col, row, col*row),end='\t')
        print()
    

    练习2:猜数字游戏

    • 范围数字(0,100)
    • 电脑生成数字
    • 猜这个数字,提示猜大了还是猜小了,知道猜对结束
    # 猜数字游戏
    # 1 范围数字(0,100)
    # 电脑生成数字
    # 猜这个数字,提示猜大了还是猜小了,知道猜对结束
    from random import randint
    computer_num = randint(0, 100)
    while True:
        guess_num = int(input('请输入您猜的数字:'))
        if guess_num == computer_num:
            print('厉害了')
            break
        elif guess_num > computer_num:
            print('猜大了')
        elif guess_num < computer_num:
            print('猜小了')
    

    五、作业

    1、输入n的值,求出n的阶乘

    n = int(input('请输入n:'))
    factorial = 1
    for i in range(1, n+1):
        factorial *= i
    print(factorial)
    

    2、折纸上月球

    # 大家都看过科幻片《火星救援The Martian》吧,电影里航天员们在太空中碰到各种情况都是靠计算机模拟、计算来解决问题的。
    # 我们在地球上也可以靠高大上的Python语言来解决问题。现在问题来了:我们都知道,月亮在一个椭圆形的轨道上绕地球公转,
    # 因此两者的距离是不断变化的,它们的最小距离是363300公里。现在我们都想去月球旅游(地球玩腻了,想换个口味),
    # 但是坐火箭上天一次就带辣么几个人,我们等不及。好消息,好消息,厂家现在开发出逆天神技——折纸上月球!
    # 只需一张很大的A4纸,厚度为0.088毫米,折一次就0.176毫米,折两次就0.352毫米……多折几次就很高了。
    # 穿上冲锋衣,拿上登山杖,带上自拍杆,我们爬着就可以上月球发朋友圈了。我就想问一句:要上月球,我们到底需要折多少次?
    for n in range(1, 100000):
        if 0.088*2**n >= 363300000000:
            print(n)
            break
    

    3、篮球弹跳高度的计算

    # 书呆子就是书呆子,打个篮球脑子也不闲着。这种人说好听的叫‘geek’,说不好听的就是叫‘nerd’。
    # 这不,书呆子看着篮球在想:如果篮球从某一高度落下,每次落地后反弹回原来高度的一半再落下。
    # 那么球在第10次落地时,共经过多少米呢? 第10次反弹多高? (你问我这个题是不是瞎编的?当然是了,你什么时候见过书呆子打篮球?)
    # 输入:输入一个整数h,单位是米,表示球的初始高度。
    # 输出:输出包含两行:
    # 第1行:到球第10次落地时,一共经过的距离。
    # 第2行:第10次弹跳的高度。
    # 例如输入:20 对应输出:第一行:59.921875 第二行:0.01953125
    
    # 没写出来
    start_h = int(input('球的初始高度是(请输入整数):'))
    n = int(input('球落地多少次:'))
    sum_h = 0
    for i in range(n):
        sum_h = start_h+start_h*(i-1)
    print(sum_h)
    print(n_h)
    

    相关文章

      网友评论

          本文标题:Python正式课第二天

          本文链接:https://www.haomeiwen.com/subject/qtvebctx.html