美文网首页
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正式课第二天

    一、格式化输出(补充) 1. format() 格式化输出 语法格式:'{}'.format() 是使用{}去代替...

  • 2019年python、golang、java、c++如何选择?

    Python入门教程完整版(懂中文就能学会) python网络爬虫第一天 python网络爬虫第二天 6节课掌握P...

  • Python正式课第四天

    一、列表(补充) 切片 对序列截取一部分的操作字符串、列表、元组都支持切片操作格式: 示例: 反转这个列表 使用切...

  • Python正式课第三天

    一、列表 列表是Python中内置有序可变序列,所有元素放在[]中,每个元素使用逗号隔开 创建列表 列表的访问 格...

  • Python正式课第六天

    一、函数作用域 1. 局部作用域 L:local,局部作用域,即函数中定义的变量; 2. 嵌套作用域 E:encl...

  • 【教学】疫情留给你什么?

    今天是正式开学第二天,正式开课第一天,斟酌了好久,开学第一课讲什么?接着假期网课继续上?还是从头开始重新上?感觉都...

  • 2019-10-08

    深度学习第二天 python基础: python...

  • 七月 Python基础入门 第三期 百度网盘分享

    大纲 第1课 Python入门及环境搭建第2课 Python编程基础(上)第3课 Python编程基础(下)第4课...

  • Python正式课第一天

    一、Python简介 诞生 Python的作者是著名的“龟叔”Guido van Rossum,1989年,龟叔为...

  • Python正式课第五天

    函数 function 格式: 函数执行的顺序,调用的时候才会被执行 为什么使用函数 函数的形参和实参 形式参数、...

网友评论

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

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