python——编码、用户输入和while循环,break、continue、in、not以及基本数据类型相关
1.ascii、unicode、utf-8、gbk 的关系
首先ASCII是美国人发明的,最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,支持语言:英文
大小:1字节
unicode:万国码,解决全世界所有语言的编码乱码问题,但是缺点:浪费空间,
支持语言:全球
大小:2个字节(生僻字4个)
utf-8:也是其出现是由于Unicode的资源浪费,utf-8也是全球通用,用尽量少的位数表示
支持语言:全部
大小:1-6个字节,英文字母1个字节,汉字3个字节,生僻字4-6个字节
gbk:表示中文的使用用两个字节表示(如果程序中只有中文,则建议使用该编码)
【有个文件用gbk保存,使用utf-8打开,则不能打开或者会乱码,反之则行——编码字节不一样】
utf-8和Unicode,gbk和Unicode之间能够相互转换,但是utf-8和gbk则不能相互转换,只用通过Unicode间接转换。
【原文链接:http://www.liujiangblog.com/course/python/21
字符编码
计算机只能处理数字01,如果要处理文本,就必须先把文本转换为数字01,这种转换方式就称为字符编码。
对于我们而言,你只需要简单记住下面几种编码就好:
-
ASCII编码:早期专门为英语语系编码,只有255个字符,每个字符需要8位也就是1个字节。不兼容汉字。
-
Unicode编码:又称万国码,国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。用2个字节来表示汉字。
-
UTF-8编码:为了节省字节数,在Unicode的基础上进行优化的编码。用1个字节表示英文字符,3个字符表示汉字。天生兼容ASCII编码,所以最为流行。
-
GB2312:我国早期自己制定的中文编码,世界范围内不通用。
-
GBK: 全称《汉字内码扩展规范》,向下与GB2312兼容,向上支持ISO10646.1国际标准,是前者向后者过渡过程中的一个承上启下的产物。windows中文版的汉字编码用的就是GBK。也非世界范围通用的编码
-
其它编码:非以上类型者的统称。属于能不用就不要碰的编码。
最后再强调一次,Python3在运行时全部使用Unicode编码!
另外有这么几条规则,你要记住:
-
操作系统运行时,在内存中,统一使用的都是Unicode编码,当需要将数据保存到硬盘或者网络传输的时候,就转换为UTF-8编码,进行保存和传输。
-
用文本编辑器的时候,从文件系统或者说硬盘上读取的UTF-8编码字符被转换为Unicode字符到内存里,供程序或者操作系统使用。编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。
-
浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8传输到客户的浏览器。
这就是为什么我们一会说Unicode,一会又用utf-8的原因。
另外,一定要区分代码自己本身的编码和程序要处理的数据的编码!没有特殊要求的情况,请使用utf-8编码。确保文本编辑器使用的是UTF-8 without BOM编码。
】
2.break和continue
break:某次循环遇到break,则就终止所有的循环;
break只能用于循环体内。其效果是直接结束并退出当前循环,剩下的未循环的工作全部被忽略和取消。注意当前两个字,Python的break只能退出一层循环,对于多层嵌套循环,不能全部退出。
index=1
while index<10:
if index==5:break
else:
print(index)
index=index+1
#结果是:1 2 3 4
但是如果有多层循环嵌套的时候,想要一次性退出所有的循环,可以设置flag
flag=False # 用于控制外层循环的标志 for i in range(10): if flag: # 当flag被内层循环设置为True的时候,跳出外层循环 break for j in range(5): if j==5: flag=True break print(i,j)
continue:终止当前循环,开始下一个循环;
与break不同,continue语句用于跳过当前循环的剩余部分代码,直接开始下一轮循环。它不会退出和终止循环,只是提前结束当前轮次的循环。同样的,continue语句只能用在循环内。
index=1
while index<10:
if index==5:
print(">>>>>>>>>>")
index=index+1
continue
else:
print(index)
index=index+1
3.input()——————程序等待用户的输入,然后按回车键后继续执行后续代码。
input函数的返回值是一个字符串类型;
name=input("请输入您的名字:")
if name=='admin':
print(name+",欢迎您登陆该系统")
else:
print("请重新输入您的名字!")
##############################
请输入您的名字:qw
请重新输入您的名字
(1)使用int()来获取数值输入
age=input("请输入您的年龄:")
print(age)
print(type(age))
age=int(age)
print(type(age))
####################
请输入您的年龄:45
45
<class 'str'>
<class 'int'>
(2)将字符串转成整数
age=input('请输入年龄:')
if age.isdigit():# 使用isdigit函数判断输入是否全是数字格式
age=int(age) # 将字符串转化为整数
print('您的年龄是:{}'.format(age))
else:
print('您的输入不合法')
4.while循环:
while 条件判断式:#逻辑 成员 比较空数据 布尔值
#代码块
执行规律:首先判断while后面的条件表达式是否成立
如果是True,那就执行代码块,执行完毕之后,继续判断,如果还为True,那就继续执行代码块;
直到条件判断为False,就不进入代码块的执行;
防止代码进入死循环:加一个变量来控制循环次数;
while循环还可以增加一个else从句。当while循环正常执行完毕,会执行else语句。但如果是被break等机制强制提前终止的循环,不会执行else语句。注意else与while平级的缩进方式!
# s='hellopytlllhon'
# # print(s[-1:-12:-1])
# # print(s[::-1])
# # print(s[:])
# print(s.split('l',2))
# l=[1,34,55,34,6]
# count=0
# for item in l:
# count+=item
# print(count)
# sum=0
# for i in range(1,101):
# sum+=i
# print(sum)
# l=[["monica","生生","小猪猪","asd"],["rt","彭猪","弟弟","for循环"]]
# for i in l:
# for item in i :
# print(item)
# 直角三角形
# for i in range(1,6):
# print("*"*i)
# num=int(input("请输入一个数字:"))
# for i in range(1,num):
# for j in range(1,i+1):
# print("*",end="")
# print("")
# 等边三角形
# num=int(input("请输入一个数字:"))
# for i in range(1,num):
# for k in range(1,num-i):
# print(" ",end="")
# for j in range(1,i+1):
# print("* ",end="")
# print(" ")
# num=input("请输入一个四位数:")
# new_num=""
# for item in num:
# new_num+=str((int(item)+5)%10)
# last_num=new_num[::-1]
# print(last_num)
# j_sum=0
# o_sum=0
# for item in range(1,101):
# if item%2==0:
# o_sum+=item
# else:
# j_sum+=item
# print("奇数和:{0}".format(j_sum))
# print("偶数和:{0}".format(o_sum))
# j_sum=0
# o_sum=0
# for ite in range(1,101,2):
# j_sum+=ite
# for item in range(0,101,2):
# o_sum+=item
#
# print("奇数和:{0}".format(j_sum))
# print("偶数和:{0}".format(o_sum))
# 奇数和:2500
# 偶数和:2550
# for i in range(1,10):
# for j in range(1,i+1):
# print("{0}*{1}={2}".format(i,j,i*j),end=" ")
# print(" ")
# import os
# print(os.getcwd())
# print(os.name)
# print(os.environ)
# print(os.getlogin())
# print(os.getpid())
# print(os.getppid())
# os.system("cmd")

浙公网安备 33010602011771号