一、格式化输出(补充)
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. 逻辑运算符
逻辑运算符.png4. 赋值运算符
- 在 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)
网友评论