Day3:数据类型和编码

1.编码

1.ASCII:最早的计算机编码ASCII。美国人创建的。包含了英文字母(大写字母,小写字母)。数字,标点等特殊字符
	128个码位,2**7,一个字节
2.GBK:国标码占用两个字节,16位,2个字节.对应ASCII码.弊端只能中国用,日本不能用,万用国码Unicode提出.Unicode开始设计每个字符两个字节,中国汉字仍然无法进行编码,扩充成32位.Unicode可以表示40多亿,优点:编码任何国家的文字,缺点:浪费空间.
3.Unicode:万国码 usc-2 16位 2字节 ucs-4 32位 4个字节
4.UTF-8:写程序固定死要存储的编码格式
**举例**
ascii:01100001
gbk:00000000 01100001
unicode:00000000 00000000 00000000 101100001
utf-8:01100001 英文 8bit 1个字节
	  欧洲文字 16bit 2个字节
	  中文 24bit 3个字节

换算:

8bit => 1 byte
1024byte =>1kb
1024kb =>1M
1024M => 1G
1024GB =>1TB
1024TB =>1PB

2.bit_length().计算二进制长度

a=3 #11
print(a.bit_length())

3.bool

取值只有True False,bool没有操作
转换问题:
bool转换成数字:True=1 False=0
数字转换成bool:0=False !0=True
## While 1:
print(‘a’) ##结果是a循环,1的效率比True高

字符转换成bool:空为False,非空为True
s='你好'
if s:
    print('哈哈')
else:
    print('呵呵')
#结果是哈哈

s=''
if s:
    print('哈哈')
else:
    print('呵呵')   
#结果是呵呵

m=None
if m:
    print('a')
else:
    print('b')
##结果b,None表示空

4.字符串(str)

4.1索引和切片

    1.索引:下标从0开始
    s='五十六个民族'
    print(s[3]) ##个
    print(s[12]) ##string index out of range
    print(s[-3]) ##个 s[-0]=s[0]
    ##通过索引获取的内容还是字符串
    
    **2.切片**
    ##语法 s[起始位置:结束位置]
    #实际s[起始位置,结束位置)
    s='五十六个民族'
    print(s[4:])#[4:]默认到结尾,同理[:4]从头开始
    s2=s[0:3]+s[4:]
    print(s2)#五十六民族
    
    print(s[-2:])#民族
    
    **#步长**
    #语法:s[起始位置:结束位置:步长]
    s='五十六个民族,五十六支花'
    s1=s[1:5:2] #从1开始,到5结束,每两个取一个 #十个
    s2=s[6:2:-1]#表示反着来 #,族民个
    s3=s[7::-2]#五族个十
    s4=s[-1:-6:-2]#花六五

4.2字符串的相关操作方法

字符串是不可变的对象,任何操作对源字符串是不会有任何影响的
   
    1.大小转换
    s.capitalize()#首字母大写
    s.lower()#全部转换成小写
    s.upper()#全部转换成大写********重要********
    
    #应用:校验用户驶入的验证码是否合法
    verify_code ='abDe'
    user_verify_code=input('请输入验证码:')
    if verify_code.upper() == user_verify_code.upper():
        print('success')
    else:
        print('false')
    
    s.swapcase()#大小写相互转换
    s.casefold()#转换成小写,对所有字符都有效(包括东欧)
    s.title()#被特殊字符分隔开的首字母大写
    
    **2.切片**
    #延长
    s.center(int)#加[数字]空白空格,原值在中间,拉长成int字符
    s='abc'
    print(s.center(10,'*'))
    
    #去空格
    s.strip()#去空格#首尾的!!
    s.strip('abc')##左右两端的内容,中间的不管''中每个字符独立
    s.lstrip()#左边
    s.rstrip()#右边
    
    #替换
    s.replace('a','b',2,count=int)#将a换成b,替换两个,如果不写数字默认全部替换
    #用于去掉字符串中间的空格
    s='with the repid development of ecnomy'
    s1=s.replace(' ','')
    print(s1)
    
    #切割
    s='a_b_c_d_e'
    s1=s.split("_")
    print(s1)#['a', 'b', 'c', 'd', 'e'],列表,字符串.贴边切空字符
    
    **3.格式化输出**
    s1="My name is %s,i'm %d years old,i love %s" % ('Mary',18,'Biber')
    s1="My name is {},i'm {} years old,i love {}".format('Mary',18,'Biber')
    s1="My name is {0},i'm {2} years old,i love {1}".format('Mary','Biber',18)
    s1="My name is {name},i'm {age} years old,i love {singer}".format(name='Mary',age=18,singer='Biber')
    
   
    **4.查找**
    s='我叫sylar,我喜欢Python,java,c等编程语言'
    ret1=s.startswith('sylar')#判断是否以sylar开头
    ret2=s.startswith('我叫sylar')
    print(ret1,ret2)
    
    ret3=s.endswith('语言')
    ret4=s.endswith('语言.')
    print(ret3,ret4)
    
    ret5=s.count('a')#查找a出现的次数
    ret6=s.find('sylar')#查找''出现的位置
    
    ret7=s.find('tory')#如果没有返回-1
    
    ret8=s.index()#index内容不存在报错:substring not found
    
    5.条件判断
    s1='123.16'
    s2='abc'
    s3='_abc!@'
    s.isalnum()#判断是否字母组成
    s.isalpha()
    s.isdigit()#数字组成,不包括小数点
    s.isdecimal()#
    s.isnumeric()#汉字也可以识别,繁体也可以
    
    6.计算字符串长度
    s='abcdefg'
    i=len(s)
    print(i)
    1=s.__len__()#len函数执行的时候执行的是它
    
    #把字符串从头到尾进行遍历
    s= 'abcdefg'
    #1.用while循环进行遍历
    
    i=0
    while i<=s.len():
        print(s[i])
        continue
    
    #2.用for遍历字符串,优势简单,劣势没有索引
    for c in s:#把s中的每一个字符交给前面的c
        print(c)
        
    语法:
    for bianliang in 可迭代对象:
        循环体

课后 作业:

1.有变量name='aleX leNb'
1)移除空格:
s='  aleX leNb  '
print(s.strip())
2)
s='aleX leNb'
print(s.lstrip('al'))
3)
s='aleX leNb'
print(s.rstrip('Nb'))
4)
s='aleX leNb'
s1=s.lstrip('a')
s2=s1.rstrip('b')
print(s2)
5)
s='aleX leNb'
print(s.startswith('al'))
6)
s='aleX leNb'
print(s.endswith('Nb'))
7)
s='aleX leNb'
print(s.replace('l','p'))
8)
print(s.replace('l','p',1))
9)
print(s.split('l'))
10)
print(s.split('l',1))
11)
print(s.upper())
12)
print(s.lower())
13)
print(s.capitalize('a'))
14)
print(s.count('l'))
15)
print(s.count('l',4))
16)
print(s.index('N'))
17)
print(s.find('N'))
18)
print(s.find('X le'))
19)
print(s[1])
20)
print(s[:4])
21)
print(s[-2:])
22)
count=0
while count<len(s):
    if s[count] == 'e':
        print(count)
    count=count+1
    
2.s='123a4b5c'
1)s1=s[:3]
2)s2=s[3:6]
3)s3=s[::2]
4)s4=s[1:6:2]
5)s5=s[-1]
6)s6=s[5::-2]

3.
s='asdfer'
count=0
while count<len(s):
    print(s[count])
    count=count+1

for c in s:
    print(c)

4.
for c in s:
    print(s)
5.
for c in s:
    print(c,'sb')

6.
s='321'
for c in s:
    print('倒计时%s秒' %c)
print('出发!')

7&8
content=input('请输入内容:')
content1=content.replace(' ','')
num=content1.split('+')
count=0
sum=0
while count<len(num):
    sum=sum+int(s[count])
    count=count+1
print(sum)  

9.
content=input('请输入内容:')
count=0
num=0
while count<len(content):
    if content[count].isdigit():
        num=num+1
    count=count+1
print(num)

10.
while 1:
    s=input('请输入A或B或C:')
    alpha=s.upper()
    if alpha=='A':
        a1=input('选择公交车还是步行?')
        if a1 =='公交车':
            print('10分钟到家')
            break
        else:
            print('20分钟到家')
            break
    elif alpha == 'B':
        print('走小路回家')
        break
    elif alpha== 'C' : 
        c1=input('选择游戏厅还是网吧?')
        if c1 == '游戏厅':
            print('一个半小时到家,爸爸在家')
            continue
        else:
            print('两个小时到家,妈妈已经做好战斗准备')
            continue

11.太难了明天写


12:
s='上海自来水来自海上'
s1=s[::-1]
if s==s1:
    print('是回文')
else:
    print('不是回文')

13.
s=input('请输入内容:')
count=0
num_lower=0
num_upper=0
num_digit=0
num_symbol=0
while count<len(s):
    if s[count].islower():
        num_lower=num_lower+1
    elif s[count].isupper():
        num_upper=num_upper+1
    elif s[count].isdigit():
        num_digit=num_digit+1
    else:
        num_symbol=num_symbol+1
    count=count+1
print('小写字母的个数%d' %num_lower)
print('大写字母的个数%d' %num_upper)
print('数字的个数%d' %num_digit)
print('符号的个数%d' %num_symbol)

14.
name=input('姓名:')
place=input('地点')
hobby=input('爱好:')
print('敬爱可亲的{0},喜欢在{1}地方干{2}'.format(name,place,hobby))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值