python 4
用于字符串的序列函数
len(s) 返回序列的长度
max(s) 返回序列的最大值元素
min(s) 返回序列的最小值元素 # 字符串比的都是unicode 值大小
例:
s = 'abc123'
print(len(s)) # 6
print(max(s)) # c
字符串编码的转换函数:
ord(str) 返回一个字符的unicode 值 # 只能显示单个字符的值
chr(i) 返回一个unicode 值对应的字符
整数转为字符串函数:
hex(i) 将整数转换为十六进制的字符串
oct(i) 将整数转换为八进制的字符串
bin(i) 将整数转换为二进制的字符串
字符串构造函数:
str(obj='') 将对象转换为字符串
str(0x64) # '100'
计算机默认转成十进制字符串
练习1:
写一个程序,输入一个字符串,如果字符串不为空,则把第一个字符的编码打印出来
练习2:
写一个程序,输入一个整数值(0-65535),打印出这个数值所对应的字符
python3 中常用的字符串方法(method):
字符串的方法调用语法:
对象.方法名(方法传参)
示例:
'abc'.isalpha() #语法是对的
123.isalpha() #语法是错的
假设字符串变量名为S
常用字符串的方法,如下:
S.isdigit() 判断字符串是否为全数字
S.isalpha() 判断字符串是否全为英文字符
S.islower() 判断字符串是否为小字英文字符
S.isupper() 判断字符串是否为大字英文字符
S.isspace() 判断字符串是否全为空白字符
S.center(width[,fill]) s.center(4,"-")
将字符串居中,左右默认填充空格
S.count(sub[,start[,end]]) s.count("to") s.count('o',2)
获取字符串中的子串个数
S.find(sub[,start[end]])
获取字符串中子串sub的索引,失败返回-1
S.strip() 返回去掉左右空白字符的字符串
S.lstrip() 返回去掉左侧空白字符的字符串
S.rstrip() 返回去掉右侧空白字符的字符串
S.title() 生成每个英文单词首字母大写的字符串
S.upper() 生成将英文转换为大写的字符串
S.lower() 生成将英文转换为小写的字符串
S.replace(old,new[,count]) 将字符串old用代替生成新的字符串
空白字符指的是空格,水平制表符(\t),换行符(\n)等不可见字符
练习:
输入一个字符串,判断这个字符串中有几个空格
字符串格式化表达式:
作用:
生成一定格式的字符串
运算符:
%
语法:
格式字符串%参数值
或
格式字符串%(参数值1,参数值2,....)
说明:
格式化字符串中以%开头为占位符,占位符的位置将用参数值替换
例:
fmt = 'name: %s, age: %d'
name = 'jinchen'
age = 35
print(fmt % (name,age))
格式化字符串中的占位符:
%s 字符串
%r 字符串(使用repr而不是str)
%c 整数转为单个字符
%d 十进制整数
%o 八进制整数
%x 十六进制整数(字符a-f小写)
%X 十六进制整数(字符A-F大写)
%e ,%E 指数表求得浮点数
%f ,%F 浮点小数
%g ,%G 十进制形式的浮点数或指数浮点数自动转换
%% 等同于一个字符'%'
占位符% 和类型码之间的格式语法
- 左对齐
+ 右对齐
0 补零
width 宽度(整数)
pricision 精度(整数)
“%10d" % 123 # ' 123'
%和d之间加一个十进制,表示宽度为10的字符
“%010d" % 123 # '0000000123'
%和d之前加一个0,表示宽度为10的字符前边用0 补全
“%-10d" % 123 # '123 '
%和d之前加一个-,表示宽度为10的字符左对齐
“%+10d" % 123 # ' 123'
%和d之前加一个+,表示宽度为10的字符右对齐
对于整型数可以补零,字符串不可以如%10s 就是空格补齐而不是零
"%7.3f" % 3.141594654215321
这个精度就是,整个字符为7位,取小数点后第3位
循环语句:
while 语句
for in 语句
while 语句:
作用:
根据一定的条件,重复的执行一个语句或多条语句
语法:
while 真值表达式:
语句1
...
else:
语句2
...
说明:
1.先执行真值表达式,测试布尔值为True还是False
2.如果真值表达式值为True则执行语句1,然后再回到第一步,重复进行测试
3.如果真值表达式为False则执行语句2,然后结束此while语句执行,如果没有else,子句则直接结束此while语句的执行
4.else子句部分可以省略
示例:
# 打印1-20的整数
n = 1
while n <= 20:
print(n)
n = n + 1
else:
print('end')
练习:
用while语句控制打印hello world 的行数
输入一个数n,打印n行
2. 输入一行字符串,将字符串中编码值最大的一个打印出来
while 语句嵌套
嵌套示意:
while 真值表达式:
...
while 真值表达式2:
...
else:
...
...
else:
...
例:
i = 1
while 1 < 5:
j = 1
while j < 3:
print('%d + %d = %d' % (i, j, i + j))
j += 1
i += 1
print('程序结束')
练习:
输入一个整数用变量n绑定,求1+2+3+4+5+n的和
验证:如果n = 1 结果为5050
s = int(input("请输入一个整数:"))
a = 0 # 让一个变量置空
i = 1
while i <= s:
a = a + i #将以前的值和当前的值累加放回原处
# print(i)
i = i + 1
print('1+2+3+4+...+%d = %d' % (s, a))
break 语句:
作用:
用于循环语句中(while,for语句中),用来终止当前循环语句的执行
语法:
break
说明:
通常和if语句组合使用,当break语句执行后,此循环语句break之后的语句将不再执行
break语终止循环,循环语句的else子句将不会被执行
break语句只能终止当前循环语句的执行,如果有循环嵌套时,不会跳出嵌套的外重循环
n = int(input('请输入一个整数:'))
while n <100:
print(n)
if n == 5:
break
n += 1
else:
print('while语句有误,结束')
死循环:
死循环是指条件一直成立的循环
死循环通常用break来终止
死循环的else不会执行
练习:
1.打印1-20的整数,在一行显示,每个数字之间用一个空格分隔
1 2 3 4 5 6 ... 20
2.打印1-20的整数,每行五个数字,打印四行
1 2 3 4 5
6 7 8 9 10
...
提示:可以用print(n,sep='',end=' ')
3.输入一个正整数用变量n 绑定
已知 0 + 1 + 2 + ... + x < n
求x 的最大数
4.用程序生成如下字符串:
'ABCD......XTZ'
和
'AaBbCc....YyZz'
name = 'jinchen'
password = '123456'
while True:
n = input('请输入用户名:')
p = input('请输入密码:')
if name == n and password == p:
break
else:
print('输入有误,请从新输入')
print('登陆成功')
a = 1
while a <= 20:
print(a,end=' ')
a += 1
a = 1
while a <= 20:
if a % 5 ==0:
print(a)
else:
print(a,sep='',end=' ')
a += 1
n = int(input('请输入一个正整数:'))
x = 0
a = 0
while x < n:
x += 1
a += x
if a >= n:
break
b = x
print(b)
x = 65
while x <= 90:
b = chr(x)
x += 1
print(b,end='\0')
x = 65
q = 97
while x <= 90 and q <= 122:
b = chr(x)
c = chr(q)
x += 1
q += 1
d = b + c
print(d,end="\0")