编码
1. 最早的计算机编码是ASCII. 美国人创建的. 包含了英文字母(大写字母, 小写字母). 数字, 标点等特殊字符!@#$%
128个码位 2**7 在此基础上加了一位 2**8
8位. 1个字节(byte)
2. GBK 国标码 16位. 2个字节(双字节字符)
3. unicode 万国码 32位, 4个字节
4. utf-8: 英文 8 bit 1个字节
欧洲文字 16bit 2个字节
中文 24bit 3个字节
8bit => 1 byte
1024 byte = > 1kb
1024 kb => 1mb
1024mb => 1gb
1024gb = > 1tb
基本数据类型的概述:
int: 整数
bit_length() 求二进制长度
str: 字符串,存储少量的数据
1.str索引和切片:
索引:起始下标是0(从左到右),(-1)是从右到左 ,通过索引获取的内容还是字符串
a[0]/a[-0]:第一个
切片: s[起始位置:结束位置:步长] #顾头不顾尾
2.字符串的常用操作:(所有的操作,原字符串不变)
换来换去
1.capitalize() :字符串首字母大写
2.lower() :字符串全部转换为小写
3.upper() :字符串全部转换为大写
在程序需要判断不区分大小写的时候使用lower/upper
4.swapcase() :大小写互换
5.casefold() :转换为小写。不常用。部分欧洲文字不能使用lower的时候
6.title() :每个被特殊字符隔开的单词首字母大写
切来切去
1.center() 居中
2.expandtabs() 没有意义 把\t 的长度拉长
3.strip() 去掉空格 /或者指定的内容 ,去掉的是左右两端的内容,中间不管
4.lstrip()
5.rstrip()
6.replace() 替换指定的内容
7.split() 切割,切完之后的内容是列表,列表中的是字符串,如果切到左右两端, 那么会产生空字符
8.format() 格式化输出
查找
1. startswitch() #判断字符串是否以XXX开头
2.endswitch() #判断字符串是否以XXX开头
3.count() #判断字符串XX出现的次数
4.find() #查找XXX字符串在原字符串中出现的位置,XXX为几位,就要按几位来算。
5.index() #与find用法相似,但是若index中的内容不存在,直接报错
条件判断
1.isalnum() 是否由字母和数字组成
2.isalpha() 是否由字母组成
以下都是:是否由数字组成,不包括小数点
3.isdigit()
4.isdecimal():可以判断小数
5.isnumeric():可以识别中文数值一二三四
6.isdigit()
字符串长度:
len() :len()是python的内置函数,实际执行__len__()函数
bool: 布尔,True / False
类型转换问题:
想转换成什么类型,就用类型把目标包裹起来:bool(int) int(bool)
""空字符串表示False ,非空字符串表示True ==>"" 和" "(空格)是两回事。
list: 列表 ['bonnie', 'seven]
tuple: 元组 , 只读列表,不能改 ()
dict: 字典,一对一对的存储数据。key:value {k1:v1, k2:v2}
set: 集合, 存储不重复的内容
迭代:用for,优势:简单,劣势:没有索引
for 变量 in 可迭代对象:
循环体
else:
循环结束后执行
Homework:
1.有变量name = "aleX leNb " 完成如下操作:
name = "aleX leNb "
(1)移除 name 变量对应的值两边的空格,并输出处理结果
print(name)
print(name.strip())
(2)判断 name 变量是否以 “al” 开头,并输出结果(用切片)
if name[0:2] == 'al':
print('True')
else:
print('False')
(3)判断name变量是否以"Nb"结尾,并输出结果(用切片)
if name.strip()[-2:] == 'Nb':
print('True')
else:
print('False')
(4)将 name 变量对应的值中的 所有的"l" 替换为 “p”,并输出结果
print(name.replace('l','p'))
(5)将name变量对应的值中的第一个"l"替换成"p",并输出结果
print(name.replace('l','p',1))
(6)将 name 变量对应的值根据 所有的"l" 分割,并输出结果
print(name.split('l'))
(7)将name变量对应的值根据第一个"l"分割,并输出结果
print(name.split('l',1))
(8)将 name 变量对应的值变大写,并输出结果
print(name.upper())
(9)将 name 变量对应的值变小写,并输出结果
print(name.lower())
(10)请输出 name 变量对应的值的第 2 个字符?
print(name[1])
(11)请输出 name 变量对应的值的前 3 个字符?
print(name[:3])
(12)请输出 name 变量对应的值的后 2 个字符?
print(name[-2:])
2.有字符串s = “123a4b5c”
s = "123a4b5c"
(1)通过对s切片形成新的字符串 “123”
print(s[:3])
(2)通过对s切片形成新的字符串 “a4b”
print(s[3:6])
(3)通过对s切片形成字符串s5,s5 = “c”
print(s[-1:])
(4)通过对s切片形成字符串s6,s6 = “ba2”
print(s[-3::-2])
3.使用while循环字符串 s=“asdfer” 中每个元素。
s = "asdfer"
i = 0
while i < len(s):
print(s[i])
i += 1
4.使用while循环对s="321"进行循环,打印的内容依次是:“倒计时3秒”,“倒计时2秒”,“倒计时1秒”,“出发!”。
s = "321"
count = 0
while count < len(s):
print('倒计时{0}秒'.format(3 - count))
count += 1
else:
print('Go!')
5.实现一个整数加法计算器(两个数相加):
如:content = input(“请输入内容:”) 用户输入:5+9或5+ 9或5 + 9(含空白),然后进行分割转换最终进行整数的计算得到结果。
content = input('请输入加法:')
num = content.split('+')
sum = int(num[0].strip()) + int(num[1].strip())
print(sum)
6.计算用户输入的内容中有几个 h 字符?
如:content = input(“请输入内容:”) # 如fhdal234slfh98769fjdla
content = input('请输入内容:')
print(content.count('h'))
7.计算用户输入的内容中有几个 h 或 H 字符?
如:content = input(“请输入内容:”) # 如fhdal234slfH9H769fjdla
content = input('请输入内容:')
print(content.upper().count('H'))
8.使用while循环分别正向和反向对字符串 message = “伤情最是晚凉天,憔悴厮人不堪言。” 进行打印。
message = '伤情最是晚凉天,憔悴厮人不堪言。'
count = 0
while count < len(message):
print(message[count])
count += 1
message = message[-1::-1]
while count < len(message):
print(message[count])
count += 1
9.获取用户输入的内容中 前4个字符中 有几个 A ?
如:content = input(“请输入内容:”) # 如fAdal234slfH9H769fjdla
content = input('请输入内容:')
print(content[:4].count('A'))
10.获取用户输入的内容,并计算前四位"l"出现几次,并输出结果。
print(content[:4].count('l'))
11.获取用户两次输入的内容,并将所有的数据获取并进行相加,如:
"""
要求:
将num1中的的所有数字找到并拼接起来:1232312
将num1中的的所有数字找到并拼接起来:1218323
然后将两个数字进行相加。
"""
num1 = input("请输入:") # asdfd123sf2312
num2 = input("请输入:") # a12dfd183sf23
# 请补充代码
num1 = input("请输入:") # asdfd123sf2312
num2 = input("请输入:") # asdfd123sf2312
s1 = ''
s2 = ''
for n1 in num1:
if n1.isdigit():
s1 = s1 + str(n1)
print(s1)
for n2 in num2:
if n2.isdigit():
s2 = s2 + str(n2)
print(s2)
print(int(s1)+int(s2))