2018.7.5
day03回顾:
字符串 str
''
""
''''''
""""""
'''first line
second line'''
字符串内的转义字符 '\'
\n
\r
\t
\'
\"
\\
\xXX
\uXXXX
\UXXXXXXXX
ascii (记录128个英文字符对应的编码)
Unicode (记录65536个文字(包含英文的128个ASCII))
ASCII与UNICODE的区别:
ASCII 用8个位表示文字,最高位一定为0,低7位表示数值
UNICODE16是由16个位组成的(0~65535)0x0000~0xFFFF
原始字符串
r''
r""
r''''''
r""""""
'\n' != r'\n'
字符串的运算
< <= > >= == !=
+ * += *=
in, not in
索引, 切片
函数:
len(x)
max(x) 求最大值的字符
min(x)
ord(单个字符)
chr(整数)
hex(i)
oct(i)
bin(i) 转为字符串
str(obj) #将对象转为字符串
常用的字符串
S.count
S.strip()
S.center()
S.replace()
S.startswith()
S.endswith()
....
查看字符串的方法:
>>> help(str) # str是字符串的类型
day04笔记
字符串的格式化表达式
作用:
生成一定格式的字符串
语法格式:
格式字符串 % 参数值
格式字符串 % (参数值1, 参数值2, ...)
说明:
格式化字符串中以%开头的为占位符,占位符的位置将用参数值替换
示例:
fmt="name:%s, age: %d"
name = "tarena"
age = 15
s = fmt % (name, age) # s = 'name:tarena, age: 15'
print()
格式化字符串中的占位符和类型码:
%s 字符串,使用str(obj)转为字符串
%r 字符串,使用repr(obj) 转为字符串
%c 整数转为字符串,使用chr(i) 函数
%d 十进制整数
%o 八进制整数
%x 十六进制整数(字符a-f小写)
%X 十六进制整数(字符A-F大写)
%e 指数型浮点数(e小写) 如 2.9e+10
%E 指数型浮点数(E大写) 如 2.9E+10
%f,%F 浮点十进制形式
%g,%G 进制进形式浮点或指数浮点自动转换
%% 等同于一个%字符
占位符和类型码之间的格式语法:
% [- + 0 宽度.精度] 类型码
- 左对齐(默认是右对齐)
+ 显示正号
0 左侧空白位置补零
宽度: 整个数据输出的宽度
精度: 保留小数点后多少位,默认6位
示例:
"%10d" % 123 # ' 123'
"%+10d" % 123 # ' +123'
"%-10d" % 123 # '123 '
"%10s" % "ABC" # ' ABC'
"%05d" % 123 # '00123'
"%f" % 3.1416926535897932 # '3.141593'
"%7.2f" % 3.1416926535897932 # ' 3.14'
练习:
输入三行文字,让这三行文字依次以20个字符的宽度右对齐输出
如:
请输入第1行: hello world
请输入第2行: aaa
请输入第3行: ABCDEFG
输出结果如下:
hello world
aaa
ABCDEFG
做完上面的题后思考:
能否以最长的字符串的长度进行右对齐显示(左侧填充空格)
循环语句:
while 语句
for 语句
问题:
输入一个整数n, 写程序打印如下:
这是第 1 行
这是第 2 行
这是第 3 行
...
这是第 n 行
问题:
如何让一条语句重复执行多次?
用:
print("这是第", i, '行')
能否实现
while 语句
作用:
根据一定条件,重复的执行一条语句或多条语句
语法:
while 真值表达式:
语句块1
else:
语句块2
说明:
1. 先执行真值表达式,测试布尔值是否为True或False
2. 如果真值表达式测试值为True,则执行语句块1,然后再返回到第1步,重重进行测试
3. 如果真值表达式测式值为False, 则执行else子句中的语句块2,然后结束此while语句,如果没有else子句,则直接结束此while语句的执行
注:
else 子句部分可以省略(同 if语句类似)
示例见:
while.py
练习:
1. 输入一行字符串,将字符串中Unicode编码值最大的一个字符打印出来(不允许用max函数)
(提示: while语句内可以嵌入 if 语句进行判断)
2. 打印 从零开始的浮点数,每个数增加 0.5, 打印出10以内的这样的数:
0.0
0.5
1.0
1.5
...
9.5
练习:
1. 打印 1 ~ 20的整数
2. 打印从10开始 到 0(不包含0)之间的整数
3. 打印 1 ~ 20的整数,打印在一行内
4. 打印 1 ~ 20的整数,每行打印5个,打印四行如:
1 2 3 4 5
6 7 8 9 10
11 12 .....
.....
提示: while中可以嵌入if语句来换行
5. 输入一个整数n, 打印出一个长方形
n 代表长方形的宽度的字符数和高的行数
例如:
请输入:4
打印:
####
# #
# #
####
请输入:6
打印:
######
# #
# #
# #
# #
######
while 语句的注意事项:
要控制循环真值表达式的值来防止'死循环'
通常用真值表达式内的循环变量来控制循环条件
通常在循环语句块内改变循环变量来控制循环次数和变量走向
while 语句的嵌套
while 语句本身是语句,和其它语句一样,可以嵌套放入任何复合语句中
示意:
while 真值表达式:
...
while 真值表达式2:
...
else:
...
else:
...
示例:
打印1~20之间的整数,打印在一行
1 2 3 4 5 6 ......... 20
打印以上的十行
sublime text 3 快捷键:
ctrl + shift + 上下 # 交换行
ctrl + ] # 向右缩进
ctrl + [ # 向左缩进
练习:
输入一个数,打印指定宽度的正方形
如:
输入: 5
打印如下正方形:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
如:
输入: 3
打印如下正方形:
1 2 3
1 2 3
1 2 3
练习:
1. 写程序,计算:
1 + 2 + 3 + 4 + ..... + 99 + 100的和
2. 写程序,任意输入一个数n,计算:
1 + 2 + 3 + 4 + ..... + (n-1) + n的和
break 语句
问题:
如果在循环过程中不想再继续此循环语句的执行了,怎么办?
作用:
用于循环语句(while, for)中,用来终止当前循环语句的执行
说明:
1. 当break语句执行后,此循环语句break之后的语句将不再执行
2. break 语句通常和 if 语句组合使用
3. break语句终止循环时,循环语句else子句的语句将不会执行
4. break 语句只能终止当前循环语句的执行,如果有循环嵌套时,不会跳出嵌套的外重循环
5. break 语句只能在循环语句(while或for语句)内部使用
示例见:
break.py
死循环
死循环是指循环条件一直成立的循环
死循环通常用break语句来终止循环
死循环的else子句永远不会执行
示例:
i = 1
while True:
n = int(input("请输入一个数: "))
if n == i:
print("跳出循环")
break
print(i, n)
i += 1
练习:
1. 任意输入一些数,当输入负数时结束输入
当输入完成后,打印您输入的这些数的和是多少?
2. 写程序求:
Sn = 1 + 1/2 + 1/4 + 1/8 + .... + 1/(2**n)
求当n等同于100时,sn的值是多少?
3. 用while语句实现打印三角形,输入一个整数,表示三角形的宽度和高度,打印出相应的直角三角形:
如:
请输入三角形的宽度: 4
1) 打印如下:
*
**
***
****
2) 打印如下:
*
**
***
****
3) 打印如下:
****
***
**
*
4) 打印如下:
****
***
**
*