Python基础二

Posted 熊猫的黑白照

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础二相关的知识,希望对你有一定的参考价值。

一、格式化输出:占位符

编写代码,输出以下内容:会发现,用字符拼接的方式还难实现这种格式的输出,需要把要打印的格式先准备好

由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系

example= \'\'\'
-  -  -  -  -  -  - THE Author is %s -  -  -  -  -
NAME :   %s
Age  :   %d
Sex  :   %s
Hobby:   %s
-  -  -  -  -  -  THE  END-  -  -  -  -  -  -  -  -  -
\'\'\'%(\'jerd\',\'Jockfi\',int(\'20\'),\'gentleman\',\'basketball\')
print(example)

#这里的每个%s就是一个占位符,代表后面括号里的jerd %s就是代表字符串占位符 还有%d,是数字占位符
第二种方法,利用字典的格式

#第一种写法:
name = input(\'请输入你的名字:\')
age = int(input(\'请输入你的年龄:\'))
score = int(input(\'请输入你的成绩:\'))
msg = \'我叫%s,今年%d岁,成绩为%d分\'%(name,age,score)
print(msg)

#第二种写法:利用字典的格式
name1 = input(\'请输入你的名字:\')
age1 = input(\'请输入你的年龄:\')
score1 = input(\'请输入你的成绩:\')

msg = \'我叫%(name)s,今年%(age)s岁,成绩为%(score)s分\'\\
   %{\'age\':age1,\'name\':name1,\'score\':score1}
 print(msg)
View Code

问题:现在有这么行代码

msg = "我是%s,年龄%d,目前学习进度为80%"%(\'金鑫\',18)
print(msg)

这样会报错的,因为在格式化输出里,你出现%默认为就是占位符的%,但是我想在上面一条语句中最后的80%就是表示80%而不是占位符,怎么办?
%%代表一个"%"符号

msg=\'我是%s,我的年龄是:%d,目前学习进度为80%%\'%(\'jerd\',20)
print(msg)
msg=\'我是%s,我的年龄是:%d,目前学习进度为%d%%\'%(\'jerd\',20,80)
print(msg)

二、类型转换和查看数据类型

把字符型变为整型 int(str) 整型变字符型 str(int)

number=\'12\'
count=1
str(count)
print(number,type(number),type(int(number)))
print(count,type(count),type(str(count)))
整型,字符型-->bool型
a=-2
b=bool(a)
print(b,bool(1),bool(0),bool(""),bool(" "))
#字符型,bool值 -->int型
a=int(\'1\')  #必须为数字
b=int(3>2)
print(a,b)
#bool值,int型-->str型
b=str(3>2)
a=str(1)
print(a,type(a),b,type(b))

三、编码:

1.计算机:

储存文件,或者是传输文件,实际上是010101010
计算机创建初期,美国,二进制,
密码本:
ascii
00000001
01000001 01000010 01000011 ABC

2.ASCII码的历史

ASCII是英文大小写字母,数字,标点符号的参照表。由8位字节表示一个字符。ASCII最左边的一位是始终是0,
不会改变。这一位是设计者预留的。
为什么预留:英文的字母,数字,标点符号,用7位字节就能全部表示出来,设计者为了ASCII码以后的发展,就预留了一位

3.unicode

因为全球语言很多,ascii不足以存储这么多对应关系,创建了一个超级密码本:万国码unicode
8 位 == 1个字节.
hello h一个字符,e一个字符,he就不是一个字符.
中国:中是一个字符,国是一个字符.


1.unicode :
创建之初,16位,2个字节,表示一个字符.
英文: a b c 六个字节 一个英文2个字节
中文 中国 四个字节 一个中文用2个字节
改成 32位,4个字节,表示一个字符.
a 01000001 01000010 01000011 00000001
b 01000001 01000010 01100011 00000001
中 01001001 01000010 01100011 00000001
浪费资源.


2.对Unicode进行升级: utf-8
utf-8 用最少用8位数,去表示一个字符.
英文: 8位,1个字节表示.
欧洲文字: 16位,两个字节表示一个字符.
中文,亚洲文字: 24位,三个字节表示.
utf-16 用最少用16位数.

3.gbk:
国标,只能中国人自己用, 一个中文用16位,两个字节表示.

以上是关于Python基础二的主要内容,如果未能解决你的问题,请参考以下文章

Python特点语法结构编码知识

为什么二代测序的原始数据中会出现Read重复现象?

二代身份证号码编码规则

染色体基因芯片分析和第二代测序应用的区别

python之基础篇——模块与包

Python流程控制