美文网首页
python+AI第二课

python+AI第二课

作者: M_小七 | 来源:发表于2019-11-05 17:03 被阅读0次
    使用format

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

    # -*- coding: utf-8 -*-
    # @Time    : 2019/11/5 9:18
    # @Author  : WenTing Men
    # @Email   : wentingmen@163.com
    # @File    : demo4.py
    # @Software: PyCharm
    name = '鲁班七号'
    grade = 15
    print('当前使用英雄为{},等级为{}级'.format(name, grade))
    
    f-字符串

    python3.6及以上版本中定义的一种参数化字符串方式,主要目的是让字符串格式化更加便捷,用{}标识变量, 但是不是使用{}进行占位。而是直接写入变量名

    print(f'当前使用英雄为{name},等级为{grade}级')
    

    练习:在控制台依次提示用户输入:姓名、公司、职位、电话、邮箱
    按照以下格式输出:


    公司名称

    姓名 (职位)

    电话:电话
    邮箱:邮箱


    name = input("请输入姓名:")
    company = input("请输入公司:")
    title = input("请输入职位:")
    phone = input("请输入电话:")
    email = input("请输入邮箱:")
    
    print('*'*40)
    print()
    print(f'公司名称{company_name}')
    print()
    print(f'{name}({position})')
    print(f'电话:{num}')
    print(f'邮箱:{mail}')
    print('*'*40)
    
    标识符和保留字

    标识符
    标识符就是程序员自己命名的变量名,原则上标识符的命名要有见明知意的效果

    • 标示符可以由字母、下划线 和 数字 组成
    • 不能以数字开头
    • 不能与关键字重名
      保留字
    • 关键字就是在 Python 内部已经使用的标识符
    • 关键字具有特殊的功能和含义
    • 开发者不允许定义和关键字相同的名字的标示符
    #查看 Python 中的关键字
    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 中,如果变量名需要由二个或多个单词组成时,可以按照以下方式命名
    每个单词都使用小写字母单词与单词之间使用 _下划线 连接
    驼峰命名法
    当变量名是由二个或多个单词组成时,还可以利用驼峰命名法来命名

    • 小驼峰式命名法
      第一个单词以小写字母开始,后续单词的首字母大写
      例如:firstName、lastName
    • 大驼峰式命名法
      每一个单词的首字母都采用大写字母
      例如:FirstName、LastName、CamelCase
    运算符
    • 算数运算符
    运算符 描述 实例
    + -10 + 20 = 30
    - 10 - 20 = -10
    * 10 * 20 = 200
    / 10 / 20 = 0.5
    // 取整除 返回除法的整数部分(商) 9 // 2 输出结果 4
    % 取余数 返回除法的余数 9 % 2 = 1
    ** 又称次方、乘方,2 ** 3 = 8
    a = 10
    b = 5
    print(a + b)
    # 15
    print(a - b)
    # 5
    print(a * b)
    # 50
    print(a / b)
    # 2.0
    print(a ** b)
    # 100000
    print(a // b)
    # 2
    print(a % b)
    # 0
    
    • 算数运算符
    运算符 描述
    == 检查两个操作数的值是否 相等,如果是,则条件成立,返回 True
    != 检查两个操作数的值是否 不相等,如果是,则条件成立,返回 True
    > 检查左操作数的值是否 大于 右操作数的值,如果是,则条件成立,返回 True
    < 检查左操作数的值是否 小于 右操作数的值,如果是,则条件成立,返回 True
    >= 检查左操作数的值是否 大于或等于 右操作数的值,如果是,则条件成立,返回 True
    <= 检查左操作数的值是否 小于或等于 右操作数的值,如果是,则条件成立,返回 True
    a = 10
    b = 20
    a == b
    # False
    a != b
    # True
    a > b
    # False
    a < b
    # True
    a >= b
    # False
    a <= b
    # True
    
    • 逻辑运算符
    运算符 逻辑表达式 描述
    and x and y 只有 x 和 y 的值都为 True,才会返回 True否则只要 x 或者 y 有一个值为 False,就返回 False
    or x or y 只要 x 或者 y 有一个值为 True,就返回 True只有 x 和 y 的值都为 False,才会返回 False
    not not x 如果 x 为 True,返回 False如果 x 为 False,返回 True
    a = True
    b = False
    a and b
    # False
    a or b
    # True
    not a
    # False
    not -1
    # False
    not 0
    # True
    
    • 赋值运算符
      赋值运算符中间不能使用空格
    运算符 描述 实例
    = 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
    += 加法赋值运算符 c += a 等效于 c = c + a
    -= 减法赋值运算符 c -= a 等效于 c = c - a
    *= 乘法赋值运算符 c = a 等效于 c = c a
    /= 除法赋值运算符 c /= a 等效于 c = c / a
    //= 取整除赋值运算符 c //= a 等效于 c = c // a
    %= 取 模 (余数)赋值运算符 c %= a 等效于 c = c % a
    **= 幂赋值运算符 c = a 等效于 c = c a
    a = 10
    b = 20
    c = 0
    c = a + b
    print(c)
    # 30
    c += 10
    print(c)
    # 40
    c -= a
    print(c)
    # 30
    c *= a
    print(c)
    # 300
    c /= a
    print(c)
    # 30.0
    c %= a
    print(c)
    # 0.0
    c = a ** 5
    print(c)
    # 100000
    c //= b
    print(c)
    # 5000
    print(b)
    # 20
    
    • 运算符的优先级
    运算符 描述
    ** 幂 (最高优先级)
    * / % // 乘、除、取余数、取整除
    + - 加法、减法
    <= < > >= 比较运算符
    == != 等于运算符
    = %= /= //= -= += = *= 赋值运算符
    not or and 逻辑运算符
    条件语句

    Python 条件语句跟其他语言基本一致的,都是通过一条或多条语句的执行结果( True 或者 False )来决定执行的代码块。
    Python 程序语言指定任何非 0 和非空(None)值为 True,0 或者 None为 False。

    • if 语句
    if 判断条件:
        执行语句……
    else:
        执行语句……
    

    练习:

    results = 59
    if results >= 60:
        print ('及格')
    else :
        print ('不及格')
    

    练习:

    lenght = float(input('输入刀子的长度'))
    
    if lenght < 10 :
        print("您可以乘车")
    else:
        print('您携带危险物品,您不可以乘车')
    
    • if 语句多个条件同时判断
      Python中没有switch语句,所以不像其他语言可以使用switch去判断多个条件,只能用elif代替
    if 判断条件1:
        事情1……
    elif 判断条件2:
        事情2……
    elif 判断条件3:
        事情3……
    else:
       事情4……
    

    练习:

    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
    练习:

    ticket = int(input('请出示您的车票')) # 0代表没车票,1代表有车票
    if ticket == 1:
        print("请过安检")
        lenght = float(input('输入刀子的长度'))
        if lenght < 10:
            print('安检通过')
            print('终于可以见到他了,美滋滋~~~')
        else:
            print('没有通过安检')
            print('您携带危险物品,您不可以乘车')
    else:
        print('您没有购买车票,不能乘车')
    

    练习:猜拳游戏
    键盘输入 剪刀(0)石头(1)布(2),电脑随机生成[0, 2],并判断输赢
    不使用字典的情况下
    方法1

    from random import randint
    player = int(input("剪刀石头布,请出拳:"))
    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

    from random import randint
    player = int(input("剪刀石头布,请出拳:"))
    computer = randint(0, 2)
    if player == 0:
        if computer == 2:
            print("恭喜玩家胜利")
        elif computer == 1:
            print("电脑胜利")
    elif player == 1:
        if computer == 0:
            print("恭喜玩家胜利")
        elif computer == 2:
            print("电脑胜利")
    elif player == 2:
        if computer == 1:
            print("恭喜玩家胜利")
        elif computer == 0:
            print("电脑胜利")
    else:
        print("平手")
    
    循环语句
    image

    一般编程语言都有循环语句,循环语句允许我们执行一个语句或语句组多次。

    循环控制语句 描述
    break 在语句块执行过程中终止循环,并且跳出整个循环
    continue 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环
    pass pass 是空语句,是为占位
    • while循环的格式
    while 循环条件:
        循环体
    

    例子:1.求1-100之间的累加和

    i = 1
    sum_i = 0
    while i <= 100:
        print(f'当前执行的循环是第{i}次')
        sum_i += i
        i += 1
    print(sum_i)
    

    2.求1-100之间的偶数累加和

    i = 1
    sum_i = 0
    while i <= 100:
        if i % 2 == 0:
            sum_i += i
        i += 1
    print(sum_i)
    

    3.累加和大于1000的时候输出值

    i = 1
    sum_i = 0
    while i <= 100:
        sum_i += i
        if sum_i > 1000:
            break
        i += 1
    print(sum_i)
    

    while循环嵌套
    在控制台中输出下面图形

    *
    * *
    * * *
    * * * *
    * * * * *
    i = 1
    while i < 6 :
        print("* "*i)
        i += 1
    

    或者

    i = 1
    while i < 6 :
        j = 1
        while j <= i:
            print("* ",  end='')
            j += 1
    
        print(end='\n')
        i += 1
    

    while循环-课上练习

    #九九乘法表
    i = 1
    while i <= 9:
        j = 1
        while j <= i:
            print("%dX%d=%-2d"%(i,j,i*j),end = ' ')
            j += 1
        print()
        i += 1
    
    #猜拳
    from random import randint
    
    i = 1
    while i == 1:
        player = int(input("剪刀[0]石头[1]布[2],请出拳:"))
        computer = randint(0, 2)
        if player != 0 and player != 1 and player != 2:
            print("输入错误,请重新输出")
    
        elif (player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1):
            print("恭喜玩家胜利")
            i = 2
        elif player == computer:
            print("平手")
        else:
            print("电脑胜利")
    
    for循环

    语法格式


    image
    for iterating_var in sequence:
      statements(s)
    

    取出字符串

    for zifuchuan in '李磊韩梅梅':
       print(zifuchuan)
    

    for循环的计数
    range()

    for value in range(1,6):
       print(value)
    

    使用for循环编写九九乘法表

    #九九乘法表
    for i in range(1, 10):
        for j in range(1, 10):
            print(j, "X", i, "=", i*j, "\t", end="")#默认结尾是换行的,变成换行的只需要end=“”即可
            if i == j:
                print("")
    

    回顾猜数字练习

    #猜数字
    import random
    min_num = int(input("请给定要猜的最大数字:"))
    max_num = int(input("请给定要猜的最小数字:"))
    #随机数生成一个数字,让用户猜这个数字
    generate_num = random.randint(min_num, max_num)
    count = 0
    while True:
       count +=1
       guess_number = int(input("输入您猜的数字:"))
       if guess_number < generate_num:
           print("您猜小了")
       elif guess_number > generate_num:
           print("您猜大了")
       else:
           if count ==1:
               print("你也太厉害了吧,1次就猜对了,这是高手")
           elif count > 1 and count < 6:
               print("恭喜只用了:", count, "次就猜对了数字")
           else:
               print("你也太菜了", count, "次就才猜得出来,洗洗睡吧")
    

    作业:
    1.我想买车,买什么车决定于我在银行有多少存款
    如果我的存款超过500万,我就买路虎
    否则,如果我的存款超过100万,我就买宝马
    否则, 如果我的存款超过50万,我就买迈腾
    否则, 如果我的存款超过10万,我就买福特
    否则, 如果我的存款10万以下 ,我买比亚迪

    money = int(input('查看我的存款:'))
    if money >= 500:
        print("我可以买路虎啦!")
    elif money >= 100 and money < 500:
        print("我可以买宝马啦!")
    elif money >= 50 and money < 100:
        print("我还可以买迈腾!")
    elif money >= 10 and money < 50:
        print("我只能买福特了.")
    else:
        print("我就能买的起比亚迪了.")
    

    2.输入小明的考试成绩,显示所获奖励
    成绩==100分,爸爸给他买辆车
    成绩>=90分,妈妈给他买MP4
    90分>成绩>=60分,妈妈给他买本参考书
    成绩<60分,什么都不买

    score = int(input('小明的考试成绩:'))
    if score == 100:
        print("小明考了满分,爸爸给买辆车。")
    elif score >= 90 and score < 100:
        print("成绩还不错,妈妈给买MP4")
    elif score >= 60 and score < 90:
        print("需要努力,妈妈给买参考书")
    else:
        print("成绩不好,什么都不买")
    

    3.输入n的值,求出n的阶乘。

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

    或者使用math库

    import math
    n = int(input("请输入数字n:"))
    print(math.factorial(n))  
    

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

    
    n=0
    d=0.088
    while d <= 363300*1000*1000:
       d = 2 * d
       n = n + 1
    print(n)
    

    答案

    count = 0
    n = 0.088
    while 1:
       if(n>=363300*1000*1000):
           break
       n=n*2
       count=count+1
    print(count)
    
    

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

    h = int(input("请输入球的初始高度:"))
    s = h
    for i in range(1,11):
       h = h * 0.5
       s = s + h*2
    print("一共经过{}\n第十次高度为{}\n".format(s,h))
    

    相关文章

      网友评论

          本文标题:python+AI第二课

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