python 3-2(2019-11-05 ) Python基础 (二)

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('不及格')

循环语句

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

循环语句的一般形式如下:

image

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循环可以遍历任何序列的项目,如一个字符串

它的流程图基本如下:

image

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

你可能感兴趣的:(python 3-2(2019-11-05 ) Python基础 (二))