format 格式化输出
''.format()是使用{}去代替传统的%
格式 : <模版字符串>.format(<逗号分隔的参数>){}类似于生活中槽的概念
print('当前使用的英雄为{}, 当前等级为{}级'.format(name,grade))
可以通过序号的方式指定模板字符串中参数的的使用,参数从0开始编号
print('当前使用英雄为{1},当前等级为{0}级'.format(grade, name))
f-string
f-string 是Python3.6中定义的一种参数化字符串的方式,主要目的是让字符串格式化更加便捷
用{}标识变量,但是不是使用{}进行占位,而是直接写入变量名
print(f'当前使用的英雄为{name}, 当前等级为{grade}级')
在控制台依次提示用户输入:姓名、公司、职位、电话、电子邮箱
name = input("请输入姓名:")
company = input("请输入公司:")
title = input("请输入职位:")
phone = input("请输入电话:")
email = input("请输入邮箱:")
print("*" * 50)
print(company)
print()
print("%s (%s)" % (name, title))
print()
print("电话:%s" % phone)
print("邮箱:%s" % email)
print("*" * 50)
标识符和保留字:
标识符就是程序员自己命名的变量名.原则上标识符的命名要有见名知义的效果,不要随意起名字
# c = '东软' 不好的变量名字
# en = 2323232 不好的变量名字
company = 'neusoft'
employeeNum = 321313
标识符可以由字母,下划线数字组成
不能以数字开头
不能与保留字重名
保留字,关键字
关键字就是Python中内部已经定义好的标识符
具有特殊的功能和含义
不允许定义与关键字相同的标识符
['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']
变量命名规则
规范的命名是为了增加代码的可读性
1.下划线命名法 原则 每个单词都要小写,单词之间使用_链接
first_name = 'zhang'
qq_number = '4324324324'
2.驼峰式命名法
# 小驼峰: 第一个单词小写字母开始,后续单词首字母大写
firstName = 'zhang'
# 大驼峰: 每个单词的首字母都采用大写字母
FirstName = 'zhang' # 类名
算数运算符
是完成基本的算术运算使用的符号,用来处理四则运算
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 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>> 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=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
赋值运算符
- 在 Python 中,使用
=
可以给变量赋值 - 在算术运算时,为了简化代码的编写,
Python
还提供了一系列的 与 算术运算符 对应的 赋值运算符 - 注意:赋值运算符中间不能使用空格
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | 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中任何非0 和非空None的值都为True, 0 或者None就为False
if 语句的基本形式
if 判断条件:
if 执行语句.....
else:
执行语句......
result = 59
if result >= 60:
print('及格')
else:
print('不及格')
循环语句
一般编程语言都有循环语句,循环语句允许我们执行一个语句或语句组多次。
循环语句的一般形式如下:
Python 提供了 for 循环和 while 循环,当然还有一些控制循环的语句:
循环控制语句 | 描述 |
---|---|
break | 在语句块执行过程中终止循环,并且跳出整个循环 |
continue | 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环 |
pass | pass 是空语句,是为了保持程序结构的完整性 |
下面这样写同样成立
num = 20
if True:
print('ifT执行了')
chePiao = 1 # 1代表有车票, 0代表没车票
if chePiao == 1:
print('有车票了,可以上火车了')
print('终于可以见到他了,美滋滋~~~')
else:
print('没有车票,不可以上火车')
print('亲爱的,那就下次再见吧,一票难求啊~~~')
从键盘中输入刀子的长度,如果刀子的长度小于10cm,则允许上火车,否则,不允许
length = input('刀子的长度')
length = float(leigh)
if length < 10:
print('你可以上车了')
else:
print('滚下去')
if 语句多个判断的形式
很多编程语言使用swith去判断多个条件
python并没有提供switch语句,而是使用elif来代替
格式
if xxx1:
事件1
elif xxx2:
事件2
elif xxx3:
事件3
else:
以上都不满足的事情
score = float(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:
满足条件1执行的事情
说明
外层的if判断,亦可以是if else
内层的if判断,也可以是 if else
应用
chePiao = 1 # 1代表有车票, 0代表没车票
daolength = 20 #刀子的长度
if chePiao == 1:
print('有车票了,可以上火车了')
if daolength < 10:
print('通过安检')
print('终于可以见到他了,美滋滋~~~')
else:
print('没通过安检')
print('刀子超过规定长度,等待警察处理......')
else:
print('没有车票,不可以上火车')
print('亲爱的,那就下次再见吧,一票难求啊~~~')
课堂练习
猜拳游戏
键盘输入 剪刀(0),石头(1),布(2)
电脑随机生成一个数[0,2]
判断玩家和电脑猜拳的输赢的请哭啊,并且给予显
from random import randint
while True:
a = input('来来来')
b = randint(0, 3)
if a == '剪刀':
if b == 0:
print('again')
elif b == 1:
print('对石头,哭')
else :
print('对布,爽')
break
elif a == '石头':
if b == 0:
print('对剪刀,爽')
break
elif b == 1:
print('again')
else:
print('对布,哭')
elif a == '布':
if b == 0:
print('对剪刀,哭')
elif b == 1:
print('对石头,爽')
break
else:
print('again')
else:
print('请按套路出牌')
优化代码
from random import randint
i = 1
while i == True:
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 = False
elif player == computer:
print("平手")
else:
print("电脑胜利")
循环
break 用于跳出本层循环 continue 用于跳出本次循环,执行下一次循环
pass 是空语句,用于占位
while循环的格式
while 循环条件:
循环体
求 1 到 100 之间的累加和
# 定义一个于循环中自增长的变量
i = 1
# 定义一个存储累加和变量
sum_res = 0
while i <= 100:
print('当前执行的循环是{}'.format(i))
sum_res +=i
# 自增操作
i += 1
print(sum_res)
计算 1 - 100之间偶数的累加和
i = 1
sum_res = 0
while i <= 100:
print('当前执行的循环是{}'.format(i))
if i%2 == 0:
sum_res += i
#自增操作
i += 1
print(sum_res)
累加的和大于1000时输出sum_res
i = 1
sum_res = 0
while i <= 100:
print('当前执行的循环是{}'.format(i))
sum_res += i
if sum_res > 1000:
break
#自增操作
i += 1
print(sum_res)
计算 1 - 100之间奇数的累加和
i = 1
sum_res = 0
while i <= 100:
print('当前执行的循环是{}'.format(i))
if i%2 == 0:
i += 1
continue
else:
sum_res += i
#自增操作
i += 1
print(sum_res)
while 循环的嵌套
在控制台中输出下面图形
*
* *
* * *
* * * *
* * * * *
i = 1
while i <=5:
print('* '*i)
i += 1
# print(i)
优化代码
里层循环负责每一行的输出, 外层循环负责换行
i = 1
while i <= 5:
j = 1
while j <= i:
print('* ', end='')
j += 1
# 外层循环负责换行
print(end='\n')
i += 1
打印九九乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print(i, '*', j, '=',i*j, ' ', end='')
j += 1
# 外层循环负责换行
print(end='\n')
i += 1
优化代码
row = 1
while row <= 9:
col = 1
while col <= row:
print('%d*%d=%d'%(col, row, col*row), end='\t') # \t等同于 tab键
col += 1
print('\n')
row += 1
for 循环语句
for循环可以遍历任何序列的项目,如一个字符串
它的流程图基本如下:
for iterating_var in sequence:
statements(s)*
取出字符串
for zifuchuan in '任嘉俊韩雷吴楠':
print(zifuchuan, end='\t')
name = '任嘉俊韩雷吴楠'
name[0]
i =0
while i < len(name):
print(name[i])
i += 1
上面的循环无法进行计数
for 循环的计数
print(range(10))
print(list(range(10)))
for x in range(10):
print(x)
等价于
for x in [0,1,2,3,4,5,6,7,8,9]:
print(x)
九九乘法表改成for 循环
for row in range(1,10):
for col in range(1,10) :
if col <= row:
print('%d*%d=%d' % (col,row,col*row),end='\t') # \t等同于 tab键
print('\n')
猜数字游戏
1.范围数字(0,100)
2.电脑生成数字
3.猜这个数字,提示猜大了还是猜小了,直到猜对结束
from random import randint
b = randint(0,100)
while True:
a = int(input())
if a > b:
print('猜大了')
elif a < b:
print('猜小了')
else:
print('bingo')
break