一、实现一个简单的登录系统

'''# 形式1

n = 1

while n < 4:

       name = input("请输入姓名\n")

       if name == "Arroz":

              print("Welcome!")

              exit()

       else:

              print("Wrong name!")

              n += 1'''

 

# 形式2

n = 1

while True:

       name = input("请输入姓名\n")

       if name == "Arroz":

              print("Welcome!")

              exit()

       else:

              print("Wrong Name!")

              n += 1 # 打印"Wrong Name"以后要根据n的值才判断是否允许进一步输入

              if n >3:

                     break

 

二、Pycharm的基本使用步骤图示

2.1 创建项目、执行

 

 

 

 

 

2.2 实现通过鼠标放大、缩小字体

 

 

 

 

 

2.3 更换解释器

 

 

 

2.4 设置断点,进行单步执行

 

 

 

三、字符串格式化(String Formatting)

目的:将数字和字符串相结合

 %s,%d→(代替缺失部分的)占位符(placeholder)

“s”代表“string”,“d”代表“decimal”

msg_1 =  "我叫%s"%("Arroz"# 括号可以省略
msg_2 = "我叫%s,年龄%d,爱好%s"%("Arroz", 18, "和平") # 括号不可以省略
name = input("Your name:")

age = input("Your age:")
hobby = input("Your hobby:")
msg_3 = "我叫%s,年龄%s,爱好%s"%(name,age, hobby)
print(msg_1)
print(msg_2)
print(msg_3)

 

四、数的进制和编码(Number Bases and Encoding)

4.1 数的进制(Number Bases)

● base-n system N 进制

● binary (number) system 二进制

● N进制的计数法,就是“逢N进一”(仔细体会, 为什么二进制的11加1后变成了100)

进制类型

types of number bases

数码 digit

举例 example

十进制数  decimal

0~9

100、-8、0

二进制 binary

0, 1

1000, 10000

八进制数octal

0~7,以数字0开头

010、-024

十六进制数hexadecimal

0~9,A~F或a~f,以0x或0X开头

0x8a、-0X1F

● "three" in base two / base-ten "two" →(210)二进制的3

the second, third, fourth, etc power of x (= x2, x3, x4, etc) →x的二次﹑ 三次﹑ 四次等幂(= x2﹑ x3﹑ x4等)

● conversion between different number system

4.1.1 二进制、八进制、十六进制转换成(convert into)十进制:

按权相加:

准确来说, 应该是按位权(power, 权重, 比重)相加,只不过这里少说了一个字.例如十进制第2位的位权为10,第3位的位权为100;而二进制第2位的位权为2,第3位的位权为4,对于 N进制数,整数部分第 i位的位权为N^(i-1),而小数部分第j位的位权为N^-j. 

l.十进制数的特点是逢十进一.例如:

(1010)10 =1× 10^3+0× 10^2+1× 10^1+0× 10^0

2.二进制数的特点是逢二进一.例如:

(1010)2 =l× 2^3+0 × 2^2+l× 2^1+0 × 2^0=(10)10

3.八进制数的特点是逢八进一.例如:

(1010)8 =l× 8^3+0 × 8^2+l× 8^1+0 × 8^0=(520)10

4.十六进制数的特点是逢十六进一.例如:

(BAD)16 =11× 16^2+10×l6^1+13×16^0=(2989)10

 

4.1.2 二进制、八进制转换

二进制与八进制之间的转换

二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制

八进制转换成二进制:用3位二进制数代替每一位八进制数

000 ~ 0

001 ~ 1

010 ~ 2

011 ~ 3

100 ~ 4

101 ~ 5

110 ~ 6

111 ~ 7

例:(1101001)2=(001,101,001)2=(151)8

(246)8=(010,100,110)2=(10100110)2

 

4.1.3二进制、十六进制转换

二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制

十六进制转换成二进制:用4位二进制数代替每一位十六进制数

0000 ~ 0

0001 ~ 1

0010 ~ 2

0011 ~ 3

0100 ~ 4

0101 ~ 5

0110 ~ 6

0111 ~ 7

1000 ~ 8

1001 ~ 9

1010 ~ A

1011 ~ B

1100 ~ C

1101 ~ D

1110 ~ E

1111 ~ F

例: (11010101111101)2=(0011,0101,0111,1101)2=(357D)16

(4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2

 

4.1.4 十进制、二进制转换

① 十进制转换二进制

十进制整数转换为二进制:方法是除以2取余,逆序排列,以(89)10为例,如下:

89 ÷ 2   余1

44 ÷ 2   余0

22 ÷ 2   余0

11 ÷ 2   余1

5  ÷ 2 余1

2  ÷ 2 余0

1     余1

例如:

(89)10 = (1011001)2

(5)10 = (101)2

(2)10 = (10)2

再如: Convert 35710 to the corresponding binary number.

 

※ R refers to “remainder (余数)”

 

十进制小数的转换为二进制:方法是乘以2取整,顺序排列,以(0.625)10为例,如下:

0.625 * 2 = 1.25  取整1

0.25 * 2 = 0.5      取整0

0.5 * 2 = 1    取整1

(0.625)10 = (0.101)2

(0.25)10 = (0.01)2

(0.5)10 = (0.1)2

 

※ 总结

十进制

八进制

二进制

十六进制

0

0

0

0

1

1

1

1

2

2

10

2

3

3

11

3

4

4

100

4

5

5

101

5

6

6

110

6

7

7

111

7

8

10

1000

8

9

11

1001

9

10

12

1010

a

11

13

1011

b

12

14

1100

c

13

15

1101

d

14

16

1110

e

15

17

1111

f

16

20

10000

10

 

※word size/word length (字长): The number of bits in a word. 一个字中的二进制位的数目。

Modern processors, including embedded systems, usually have a word size of 8, 16, 24, 32, or 64 bits, while modern general purpose computers usually use 32 or 64 bits.

 

※信息存储单位 unit of storage

位(比特:bit,b,小写):度量数据的最小单位.

字节(Byte,B,大写):最常用的基本单位,1字节=8位

 

K (千)字节(Kilobyte)                  1K / 1KB / 1kB = 1024 Byte

M(兆)字节(Megabyte)        1M = 1024 K

G(吉) 字节(Gigabyte)         1G = 1024 M

T(太)字节(Terabyte)            1T = 1024 G

 

 

 

4.2 编码

4.2.1 常见编码

①ASCII编码(American Standard Code for Information Interchange)

②UTF-8、UTF-16、UTF-32编码

③GBK(汉字内码扩展规范)→中国大陆

④BIG5(大五码)→中国香港、中国台湾

 

4.2.2 Unicode、utf-8、utf-16的关系

Unicode→字符集,它为每一个字符分配一个码位/码点(Code Point)。例如:“知”的码位是30693,记作 U+77E5(30693 的十六进制为 0x77E5)。码位/码点不会在内存和网络传输中使用。

UTF-8UTF-16UTF-32→编码规则,实现Unicode的不同方案,可以想象为汉字的隶书、楷书、行书等。

例如:用UTF-8编码的“知”用16进制字节表示为:\xE7\x9F\xA5;UTF-16下的每个字符需要2个或者4个字节;UTF-32下的每个字符需要4个字节。

※ GBK和UTF-8可以“Unicode”为中介来实现编码的转换。

※ 16进制数的每一位可由4位二进制表示,所以1个字节可以用2位16进制数表示。

 

4.2.3 UTF-8中的汉字占用多少字节

utf-8是一种“宽度可变的编码(variable-width encoding)”,那么utf-8中的汉字占用多少字节?

占2个字节的:〇

占3个字节的:基本等同于GBK,含21000多个汉字;

占4个字节的:中日韩超大字符集里面的汉字,有5万多个;

一个utf8数字占1个字节。

一个utf8英文字母占1个字节。

 

五、运算符(operator)

※ python中常见的运算包括5种:

--算术(arithmetic)运算

--比较(comparison)运算

--赋值(assignment)运算

--逻辑(logic)运算

--成员(membership)运算

① 除法:注意 python2中需要引入:“from __future__ import division”,才能实现和Python3一样的效果。

 
 

 

② +=, -=,//=等

 

③ 条件的真假:从左向右判断:

1 == 1 or ... (不用再向后看, 肯定为真)
1 !=1 and... (不用向后看, 肯定为假)
 
④ in,not in
 
※ 字符串、单引号&双引号的使用
注意:①若字符串内有双引号,可使用单引号将字符串括起来;若字符串内同时有单引号和双引号,可用三个双引号(或三个单引号)将字符串括起来。


②也可以用转义字符来打印上述的字符串:

 
 posted on 2017-08-17 23:34  Arroz  阅读(4)  评论(0编辑  收藏  举报