一、拾遗主题
1、变量
理解变量在计算机内存中的表示
>>> a = "ABC"
Python解释器干了两件事情:
在内存中创建了一个'ABC'的字符串;
在内存中创建了一个名为a的变量,并把它指向'ABC'
可以把一个变量name1赋值给另一个变量name2,这个操作实际上是把变量name2指向变量name1所指向的数据,例如下面的代码:
>>> name1 = "Jonathan"
>>> name2 = name1
>>> name1 = "Alex"
>>> print(name2)
Jonathan
代码在内存中存储示意图如下
2、格式化输出
符号
描述
%s
格式化字符串
%d
格式化整数
%f
格式化浮点数字,可指定小数点后的精度
%r
raw string,输出原生字符串
实例如下
>>> msg = "My name is%s, %d years old, and today I ran %f kms to change %r" % ("Jonathan", 28, 8.88, "\nsomething")
>>> print(msg)
My name is Jonathan, and today I ran 8.880000 kms to change '\nsomething'
>>> msg
My name is Jonathan, and today I ran 8.880000 kms to change '\\nsomething'
3、位运算
4、密文显示
输入密码时,如果想要不可见,需要利用getpass模块中getpass方法
#! /usr/bin/ env python3
# -*- coding:utf-8 -*-
import getpass
# 将输入的内容赋值给变量 pwd
pwd = getpass.getpass("请输入密码")
# 打印输入内容
print(pwd)
二、流程控制
1、条件判断
计算机之所以做很多自动化任务,因为可以做条件判断。可以通过下图来简单了解条件语句的执行过程:
比如根据不同的用户年龄,输出不同的信息
age = 53
if age >= 18:
print("adult")
elifage>=6:
print("teenager")
else:
print("kid")
1) 每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块
2) 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块
3) 注意if、elif、else逻辑空间划分
4) 注意整个if...else模块与其他代码联系,善用flag标志
5) if...else根据实际应用场景,可以嵌套
6) if语句执行特点,从上往下判断,某个判断上时True,把该判断对应的语句执行后,就忽略掉剩下的elif和else
7) 操作运算符包括>, >=,
8) 只要判断语句是非零数值、非空字符串、非空list等,就判断为True,否则为False
9) 在Python中没有switch - case语句
2、循环
为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。
1) 同样需要注意冒号和缩进
2) 在Python中没有do..while循环
3) Ctrl+C 可退出无限循环
Python的循环有两种,一种是for...in循环,依次把range()、string、list或tuple中的每个元素迭代出来
names = ["Jonathan", "Alex","Rain"]
for name in names:
print(name)
执行代码,会依次打印names中的每一个元素
Jonathan
Alex
Rain
所以,for name in ...循环就是把每个元素代入变量 name,然后执行缩进块的语句
第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环
如计算100以内所有正整数之和
sum = 0
n = 99
while n > 0:
sum += n
n -= 1
print("100以内所有正整数之和: ", sum)
小结:
1) for循环有固定循环次数;while循环体中需变量增减控制
2) break跳出当前while或for循环;continue跳出本次循环,执行下次循环
3) pass是空语句,是为了保持程序结构的完整性,不做任何事情,一般用做占位语句
4) Python提供一个range()函数,可以生成一个整数序列,可通过list()函数可以转换为列表
5) 不滥用break和continue语句,break和continue会造成代码执行逻辑分叉过多,容易出错