Python基础知识(一)

变量

name='monkeyfx'

变量定义的规则:

  • 变量名只能是 字母、数字或下划线的任意组合

  • 变量名的第一个字符不能是数字

  • 以下关键字不能声明为变量名:

    ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

字符编码

ascill

默认ascill 英文 1字符1字节8个比特位

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

GB2312(1980年)

7445个字符,包括6763个汉字和682个其它符号。

GBK(中文最常用的)

GB2312 支持的汉字太少。GBK 27484个汉字,手机、MP3一般只支持GB2312。

Unicode万国码

可以代表所有字符和符号的编码Unicode(统一码、万国码、单一码)所有的字符统一1字符2字节16个比特位 即:2 **16 = 65536

2.x版本报错:ascii码无法表示中文

 #-*- coding: utf-8 -*-

3.x版本默认Unicode

UTF-8

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存

注释

单行注视:

# 被注释内容

多行注释:

""" 被注释内容 """

用户输入

input/raw_input

#name = raw_input("What is your name?") #only on python 2.x
#input读入数据位str格式
name = input("What is your name?")

getpass(在pycharm中不好使)

#输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
import getpass
# 将用户输入的内容赋值给 name 变量
pwd = getpass.getpass("请输入密码:")

数据类型

数字

int(整型)

  在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647

  在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807

long(长整型)

  Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。

  注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。

Python3没有long的概念,统一为int

float(浮点型)

  浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

complex(复数)

  复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

注:Python中存在小数字池:-5 ~ 257

布尔值

True FALSE
非0 0
非空

字符串

列表

元祖

运算符

算数运算:

假设变量a=10和变量b=20

操作符 描述 例子
+ 加法 a + b = 30
- 减法 a - b = -10
* 乘法 a * b = 200
/ b / a = 2
% 模(取余) b % a = 0
** 指数 a**b = 10的20次幂
// 地板除(结果是将小数点后的位数被除去的商,取挣) 9//2 = 4 而 9.0//2.0 = 4.0

比较运算:

==|!=|<>|>|<|>=|<=

-|

赋值运算:

=|+=|-=|*=|/=|%=|**|//|

-|

位运算符:

位运算符作用于位和位操作执行位。假设,如果a =60;且b =13;现在以二进制格式它们将如下:

a = 0011 1100

b = 0000 1101


a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a = 1100 0011

操作符 描述 示例
& 按位与 (a & b) = 12 即 0000 1100
按位并 (a 丨b) = 61 即 0011 1101
^ 按位异或 (a ^ b) = 49 即 0011 0001
~ 按位翻转 (~a ) = -61 即 1100 0011以2的补码形式由于带符号二进制数。
<< 左移运算符 a << 2 = 240 即 1111 0000
>> 右移动运算符 a >> 2 = 15 即 0000 1111
	a = 60            # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0 c = a & b; # 12 = 0000 1100
print "Line 1 - Value of c is ", c c = a | b; # 61 = 0011 1101
print "Line 2 - Value of c is ", c c = a ^ b; # 49 = 0011 0001 #相同为0,不同为1
print "Line 3 - Value of c is ", c c = ~a; # -61 = 1100 0011
print "Line 4 - Value of c is ", c c = a << 2; # 240 = 1111 0000
print "Line 5 - Value of c is ", c c = a >> 2; # 15 = 0000 1111
print "Line 6 - Value of c is ", c

面试题

	1、判断一个数是否是2的N次方
  题目要求:用一个表达式,判断一个数X是否是2的N次方,即2,4,8,16……等,要求不可以用循环语句。
  解析:2,4,8,16这样的数转化成二进制是10,100,1000,10000。
  如果X减去1后(低一位并且二进制的每一位都是1),这个数与X做与运算,答案若是0,则X是2的N次方。 2、两个数的交换
  题目要求:将a,b两个数的值进行交换,并且不使用任何的中间变量。
解法1:
a = a+b;
b = a-b;
a = a-b;
解法2:采用异或位运算。
  异或运算:相同为0,相异为1。
a = a^b;//a变为一个相同为0,相异为1的结果
b = a^b;//该结果和b做运算,得到原来的a
a = a^b;//该结果和a做运算,得到原来的b

学习资料

http://python.jobbole.com/85168/

逻辑运算:

运算符|描述|示例

-|

and |与运算符。如果两个操作数都是真的,那么则条件成立。|(a and b) 为 true.

or |或运算符。如果有两个操作数都是非零然后再条件变为真。|(a or b) 为 true.

not |非运算符。用于反转操作数的逻辑状态。如果一个条件为真,则逻辑非运算符将返回false。|not(a and b) 为 false.

成员运算:

操作符|描述|示例

-|-

in|计算结果为true,如果它在指定找到变量的顺序,否则false。|x在y中,在这里产生一个1,如果x是序列y的成员。

not in|计算结果为true,如果它不找到在指定的变量顺序,否则为false。|x不在y中,这里产生结果不为1,如果x不是序列y的成员。

运算符优先级

运算符 描述
** 幂(提高到指数)
~ + - 补码,一元加号和减号(方法名的最后两个+@和 - @)
* / % // 乘,除,取模和地板除
+ - 加法和减法
>> << 左,右按位转移
& 位'AND'
^ 按位异'或'和定期或'
<= < > >= 比较运算符
<> == != 等式运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 标识运算符
in not in 成员运算符
not or and 逻辑运算符

流程控制

if-else

if-elif-elif-else

for循环

for i in range(10):
print(i )
a=[1,2,3,4]
for item in a:
print(item )

while 条件:

continue用于退出当前循环,继续下一次循环

break用于退出所有循环

三元运算

condition ? true_part : false_part

判定条件?为真时的结果:为假时的结果

	result=5>3?1:0
>>> 1 if True else 0
1
>>> 1 if False else 0
0
>>> "Fire" if True else "Water"
'Fire'
>>> "Fire" if False else "Water"
'Water'

lambda表达式

	m = lambda x,y,z: (x-y)*z
print m(3,1,2)
#结果是4 sum = lambda x, y: x + y
# def sum(x,y):
# return x + y sum = lambda x, y: x + y
# def sum(x,y):
# return x + y

杂记

  • 单双引号活用

      "I'm monkeyfx"
  • 模块一般放置在Python/2.7/site-packages目录下,所以自己写的模块调用记得加path,或放入上述目录

02ython基础知识(一)的更多相关文章

  1. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  2. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  3. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  4. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  5. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  6. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  7. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  8. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  9. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. UVA 10561 - Treblecross(博弈SG函数)

    UVA 10561 - Treblecross 题目链接 题意:给定一个串,上面有'X'和'.',能够在'.'的位置放X.谁先放出3个'X'就赢了,求先手必胜的策略 思路:SG函数,每一个串要是上面有 ...

  2. iOS8.1 编译ffmpeg和集成第三方实现直播(监控类)

    iOS8.1 编译ffmpeg和集成第三方实现直播(监控类) http://www.mamicode.com/info-detail-476094.html 一,下载并在终端中运行脚本编译ffmpeg ...

  3. 20171028洛谷NOIP模拟

    传送门 题目分析: A:对一个初始值全部为0的序列进行一系列的区间修改(加)和询问(某一区间中满足\(min \le a_i * i \% mod \le max\)的元素个数). 第一眼看第一题怎么 ...

  4. 一起学Python:字符串介绍

    字符串介绍 <1>python中字符串的格式 如下定义的变量a,存储的是数字类型的值 a = 100 如下定义的变量b,存储的是字符串类型的值 b = "hello itcast ...

  5. TensorFlow 实战(一)—— 交叉熵(cross entropy)的定义

    对多分类问题(multi-class),通常使用 cross-entropy 作为 loss function.cross entropy 最早是信息论(information theory)中的概念 ...

  6. 一个封装了的选项卡效果js

    转载自:http://www.cnblogs.com/skyblue/archive/2008/04/26/1171968.html <!DOCTYPE HTML PUBLIC "-/ ...

  7. windows 下 TensorFlow(GPU 版)的安装

    windows 10 64bit下安装Tensorflow+Keras+VS2015+CUDA8.0 GPU加速 0. 环境 OS:Windows 10,64 bit: 显卡:NVIDIA GeFor ...

  8. adb删除系统软件

    ZTE V970Android OS 4.1.2OS version: LeWa_13.04.03系统内存划分很小,才500M. 幸好开发者设置里面有一项:ROOT 授权管理adb root // 没 ...

  9. 显示dll里的QWidget

    1 新建库->C++库 2 命名(此处为mydll)并选择共享库--下一步--下一步 3 选择所需要的模块(有使用到的都选上)此处勾选前三项QtCore+QtGui+QtWidgets 4 完成 ...

  10. WPF Bind 绑定

    原文:WPF Bind 绑定 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/koloumi/article/details/74332515 用过W ...