二. Python基础(2)--语法
二. Python基础(2)--语法
'''# 形式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 |
2、Pycharm的基本使用步骤图示
2.1 创建项目、执行
2.2 实现通过鼠标放大、缩小字体
2.3 更换解释器
2.4 设置断点,进行单步执行
3、字符串格式化(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) |
4、数的进制和编码(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
※ 总结
※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(吉) 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;)。 ~U+7FFFFFFF(2^31=2147483648个),其中 U+00000000~U+0000FFFF和UCS-2是一样的。
※
※ UCS-2和UCS-4只规定了码位/码点集合和字符之间的对应关系,并没有规定代码点在计算机中如何存储。规定存储方式的称为UTF(Unicode Transformation Format),其中应用较多的就是UTF-16和UTF-8了。
到10FFFF的码位。
※ decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。 encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。
※ A universal character name(UCN, 统一字名) looks like \uFFFD or \U0010FFFD.
※
UTF-8、UTF-16、UTF-32→编码规则,实现Unicode的不同方案,可以想象为汉字的隶书、楷书、行书等。8, 16, 32表示的单位, 不是大小. 位为单位来标识文字, 每个字符需要1至4个字节。 位为单位来标识文字, 每个字符需要2个或者4个字节 位为单位来标识文字, 每个字符需要4个字节。
※ GBK和UTF-8可以"Unicode"为中介来实现编码的转换。
位二进制数表示,所以1个字节可以用2位16进制数表示。 |
在2.x中, 字符串分为str字符串(用'xxx'表示)以及unicode字符串(用u'xxx'表示) 在3.x中, 只有unicode字符串, 写u'xxx'和'xxx'是完全一样的,如果要表示Python 2.x中的'xxx'表示的str, 就必须写成b'xxx',以此表示"二进制字符串"。
2.x中, 文本用str和unicode这两种数据类型表示. unicode通过编码转换成str,str通过解码转转换成unicode。 3.x中, 文本用str和bytes这两种数据类型表示. str类型与2.x中unicode类似,bytes与2.x中的str类似。bytes通过解码转化成str,str通过编码转化成bytes。 |
4.2.3 UTF-8中的汉字占用多少字节
utf-8是一种"个字节的:〇 占3个字节的:基本等同于GBK,含21000多个汉字; 占4个字节的:中日韩超大字符集里面的汉字,有5万多个; |
一个utf8数字占1个字节。 一个utf8英文字母占1个字节。 |
5、运算符(operator)
※ python中常见的运算包括5种(算比逻成赋):
--算术(arithmetic)运算
--比较(comparison)运算
--赋值(assignment)运算
--逻辑(logic)运算
--成员(membership)运算
① 除法:注意 python2中需要引入:"from __future__ import division",才能实现和Python3一样的效果。
② +=, -=,//=等
③ 条件的真假:从左向右判断:
1 == 1 or ... (不用再向后看, 肯定为真)
1 !=1 and... (不用向后看, 肯定为假)
④ in,not in
※ 字符串、单引号&双引号的使用
注意:①若字符串内有双引号,可使用单引号将字符串括起来;若字符串内同时有单引号和双引号,可用三个双引号(或三个单引号)将字符串括起来。
②也可以用转义字符来打印上述的字符串:
二. Python基础(2)--语法的更多相关文章
- 一. Python基础(1)--语法
一. Python基础(1)--语法 1. 应用程序 1.1 什么是计算机(Computer)? 组成 ①运算器 arithmetic unit; ※ Arithmetic unit and cont ...
- 二十二. Python基础(22)--继承
二十二. Python基础(22)--继承 ● 知识框架 ● 继承关系中self的指向 当一个对象调用一个方法时,这个方法的self形参会指向这个对象 class A: def get(s ...
- 十二. Python基础(12)--生成器
十二. Python基础(12)--生成器 1 ● 可迭代对象(iterable) An object capable of returning its members one at a time. ...
- 六. Python基础(6)--语法
六. Python基础(6)--语法 1 ● Python3中, Unicode转字节的方法 print(bytes("李泉", encoding = 'utf-8')) prin ...
- 五. Python基础(5)--语法
五. Python基础(5)--语法 1 ● break结束的是它所在的循环体, continue是让它所在的循环体继续循环 # 打印: 1 10 2 10 3 10 4 10 5 10 6 10 7 ...
- 四. Python基础(4)--语法
四. Python基础(4)--语法 1 ● 比较几种实现循环的代码 i = 1 sum = 0 while i <= 10: # 循环10-1+1=10次 sum += i i ...
- 三. Python基础(3)--语法
三. Python基础(3)--语法 1. 字符串格式化的知识补充 tpl = "我是%s,年龄%d,学习进度100%" %('Arroz',18) print(tpl) # 会提 ...
- Python基础:语法基础(3)
本篇主要介绍Python中一些基础语法,其中包括:标识符.关键字.常量.变量.表达式.语句.注释.模块和包等内容. 1. 标识符和关键字 1.1 标识符 标识符是变量.常量.函数.属性.类.模块和包等 ...
- 二.Python基础语法和数据类型
Python第二节 基础语法和数据类型 Python编码 python3默认情况下源码文件以UTF-8编码, 字符串均为unicode字符串.同时也可以通过# -*- coding: cp-1252 ...
随机推荐
- sublime Text如何取消两栏窗口?
在菜单栏里的 View->LayOut->Single,也可以用快捷键 Alt+Shift+1.如图所示.(亲测可用) &lt;img src="https:// ...
- win下使用VM虚拟机安装Linux系统
自己电脑上还是有个自己的虚拟机比较方便,之前用的Ubuntu,发现卡得不行. 现在装了个轻量级的Lubuntu,速度提升了不少. 1.下载Lubuntu,安装. 2.进入,设置root密码,初始化ro ...
- English trip EM2-PE-6B Teacher:Taylor
课上内容(Lesson) 词汇(Key Word ) engage [ɪn'ɡedʒ] 订婚 miracle ['mɪrəkl] n. 奇迹,奇迹般的人或物:惊人的事例 personality 性 ...
- Alibaba Java诊断工具Arthas之快速安装和简单使用
Alibaba Java诊断工具Arthas简单介绍 : 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 1.这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception ...
- (Gorails) activeStore模块,把一堆属性放在一个hash对象内。gem 'activerecord-typedstore'增强了store模块,更好用了
https://api.rubyonrails.org/classes/ActiveRecord/Store.html https://gorails.com/episodes/preferences ...
- mysql半同步开启
开启半同步复制 #在有的高可用架构下,master和slave需同时启动,以便在切换后能继续使用半同步复制 /etc/my.cnf plugin-load = "rpl_semi_sync_ ...
- Hybrid APP架构设计思路
通讯 作为一种跨语言开发模式,通讯层是Hybrid架构首先应该考虑和设计的,往后所有的逻辑都是基于通讯层展开. Native(以Android为例)和H5通讯,基本原理: Android调用H5:通过 ...
- aboutme and my goal
active, diligent ,work hard now,I am a sophomore,I must workhard ,ecspacially my major ,so , pass CE ...
- springboot项目线程使用
下面是一个demo: public class TestThread { private static int nThreads =Runtime.getRuntime().availableProc ...
- SQL - 数据查询
数据查询是数据库的核心操作.SQL 提供了 select 语句进行数据查询,该语句的一般格式为: select [ ALL | distinct ] <目标列表达式> [ ,<目 ...