python0.3---注释,print/input函数,变量,运算符,表达式,数据类型,标识符,优先级
注释:
①注释一行 使用#
②注释多行 使用三个单引号'''(推荐使用这个)
'''
注释的内容
注释的内容
注释的内容
'''
③:注释多行 使用三个双引号"""(理论上这是个字符串,不推荐使用)
"""
要注释的内容
要注释的内容
"""
print 函数:
print为python的输出函数,输出""内的内容
例如:print("hello") 输出"hello"字符串
print可以接受多个字符串,用逗号分隔,print遇到作为分隔的逗号会打印空格
例如:print("fds",”dfas","sadfsd")
print 可输出数字,也可以运算后输出 ,最好在字符串里面加空格,用来进行分隔作用
例如:print(“ 10 + 8 =”, 18)
input函数:
功能:从外部获取变量的值,等待输入(阻塞)
例如:age=input(“提示的内容”)
age保存内容属于字符串类型
等价于:
print(“提示的内容”)
age=input()
Python数据类型
Nummber数字:
整数
浮点数
复数
String字符串
Boolean布尔值
None空值类型
list列表
dict字典
tuple元组
set集合
布尔值:
一个布尔值只有True ,False两种值(布尔类型也是不可变)
我们在用if,while判断语句时,得到的结果会隐式转换为布尔值
空值:
是python里面一个特殊的值,用None表示(不能用0表示),相当于c语言的Null(能用0表示)。
None不是0,因为0是有意思的,而None是一个特殊值。
None的用处:在对象引用时,若没用特定的目标,可暂时令该引用为None
Nummber数字类型详解:
python可以处理任何大小的数据
整数:~~~
浮点数:浮点型由整数和小数组成,浮点数运算可能会有四舍五入的误差例如1.1+2.2=3.3000000000000003
复数:由实数部分和叙述部分组成,用a+bj表示
注意:数字类型是不可变的类型。例如整数10存在内存的数字常量区域,该区域不可修改,假设它的地址是0x100,令a=10,变量a存的是地址0x100。若b=10,则b的地址为0x100。若令a=20,此时在内存区域开辟了新空间,该空间的内容为20,假设数字20的地址是0x200,那么变量a此时保存的内容是0x200。
数字类型转换:
整数-》浮点数 float(1)
浮点数-》整数 int(1.9) 直接省略掉小数部分
字符串-》整数 int('123')
字符串-》浮点数 float('1.23')
注意:①字符串只有是引号里面为纯数字(可包含小数点)才能够进行类型转换,若有其他类型的字符,一律报错
②字符串的开头为+ 号 或者 -号 也可以转换,表示正数和负数
数学函数:
abs(value) 取value的绝对值并返回
max(value1,value2,...............) 取value1,value2,value3,............里最大的值并返回
min(value1,value2,...............) 取value1,value2,value3,............里最小的值并返回
pow(value,value2) 取value1的value2次方,并返回
round(value) 四舍五入value的值并返回
round(value1[,value2]) 若想保留value2位小数,则用该方法返回value1四舍五入的值
import 库 :引入外部库( 库:封装的一些功能)
库.方法 :表示调用库的方法
import math
math.ceil(value) 向上取整
math.floor(value)向下取整
math.modf(value) 返回一个元组,元组的第一个元素为小数value的小数,第二个元素为value的整数
math.sqrt(value)返回value的开方的值
import random
random.choice([1,2,3,4,5,6]) 返回列表[1,2,3,4,5,6]里的随机一个数
random.choice(range(5)) range(5)=[0,1,2,3,4]
random.choice(“iloveyou”) “iloveyou”=[‘i’,’l’,’o’,’v’,’e’,’y’,’o’,’u’]
random.choice(range(1,11)) 从1到10里面随机取一个数:
random.randrange([start=0,]stop[,step=1]), 在[start,stop)间按指定的基数(step)递增抽取随机数,然后将其返回。
random.random():随机生成[0,1)之间的浮点数。
random.randint(start,stop):在[start,stop]中生成一个随机的整数
random.shuffle(list):将序列的所有元素随机排序,并不返回值,只是改变了list而已
random.uniform(value1,value2):在[value1,value2]范围内随机生成一个实数(可能是小数,也可能是浮点数)。
标识符:
什么是标识符: 是一串字符串
规则:
①只能由数字,字母,下划线组成
②开头不能是数字
③不能是关键字
关键字是具有特殊意义标志符,用户不能随意使用
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
import keyword
print(keyword.kwlist)
④不能是保留字
保留字是python管理者所预留的标识符,不能由用户随便使用
⑤区分大小写
⑥遵循驼峰原则
首字母正常,其他单词的首字母为大写,例如:MyFavoritePlayerIsStephenCurry
⑦见名知意
作用:
给函数,变量命名
变量和常量:
变量概述:
程序可操作的存储空间的名称
程序运行期间可改变的数据
每个变量够有特定的数据类型
作用:
将不同类型的数据存储到内存
定义变量:
变量名=初始值(为了确定变量的类型)
数据的存储:
变量名=数据值
变量在使用之前,一定要定义
删除变量:
del 变量名
删除后不能再次使用
常量:
程序运行期间不可改变的数据
连续定义多个变量:num1=num2=num3=num4=1
交互式赋值定义变量:num5,num6=5,6等价于num4=5,num6=6
id(变量) : 查看变量的内存地址
type(变量) : 查看变量的类型
表达式:由变量,常量,运算符组成的式子
阅读表达式要通过两个方面阅读:一:功能 二:值
运算符:
算数运算符:+ - * / % ** //
加 减 乘 除 取模 求幂 取整
算数运算表达式:由变量,常量和算数运算符组成的式子
功能:进行相关符号的数学运算
值:相关的数学运算的结果
赋值运算符和赋值运算表达式:
赋值运算符:=
赋值运算表达式:
格式:变量=表达式
功能:计算了等号右侧表达式的值,并赋值给左侧变量
值:赋值结束后变量的值
复合运算符:
+=
-=
*=
/=
%=
**=
//=
位运算符:
把数字看成二进制数进行计算
& 按位与运算符,相应的位数都为1时,则该位为1,否则为0
5&7-----》101&111=101=5
| 按位或运算符,相应的位数都为0时,则该位为0,否则为1
5|7----》101|111=111=7
^ 按位异或运算符,相应的位数不同时,则该位为1,否则为0
5^7----》101^111=010=2
~ 按位取反运算符:每一个二进制数据位都取反,1变0,0变1
~5=~00000000000000000000000000000101=1111111111111111111111111111010(补码)
反码:1000000000000000000000000000101
补码:1000000000000000000000000000110
~5的补码是-6,因此对5按位取反后的值也是-6
因为内存里面存储的是补码,按位取反也是针对补码而言的,因此,想知道5按位取反得到的真正的十进制的数是什么,就要将该补码转换成原码
补码A1变成原码A3:
一个简单的方法:可以将补码A1可以看成原码,先求原码A1的反码A2,再求反码A2的补码A3,该补码A3就是期望的到的原码A3。
<< 左移动运算符:<<右侧的数据决定左移的位数,高位丢弃,符号为不会变,低位自动补零
-5<<2=-10
>> 右移动运算符:>>右侧的数字决定移动的位数,低位丢弃,高位自动补零,符号位不变
-5>>2=-3
记住:位运算符操作读的对象都是数字的二进制的补码,因此我们在进行运算的时候,要将十进制数字转换成补码进行移位或取反,再将移位或取反后的补码转换成原码
关系运算符和关系运算表达式:
关系运算符: == != > < >= <=
关系运算表达式:
格式: 表达式1 关系运算符 表达式2
功能: 计算表达式1和表达式2的值。如果关系成立,则整个关系运算表达式的值为真,否则为假。
逻辑运算符:
逻辑与运算符: and:
逻辑与运算表达式: 表达式1 and 表达式2
值 :若表达式1和表达式2的值都为真,则值就是真的。有一个表达式为假,值就是假的。
逻辑或运算符:or
逻辑或运算表达式:
格式: 表达式1 or 表达式2
值 :若有一个以上的表达式为真,值就为真,若表达式全为假,则值为假。
逻辑非运算符:not
逻辑非运算表达式:
格式:not 表达式
值:若表达式为假,则值为真。若表达式为真,则值为假。
短路原则:
表达式1 and 表达式2 and 表达式3 and ....... and 表达式n
若表达式1为假,则后面所有的表达式不会计算
表达式1 or 表达式2 or 表达式3 or ......表达式n
若表达式1为真,则后面所有的表达式不用计算
成员运算符:
in :如果在指定的序列中找到值,则返回True,否则返回False
not in :如果在指定的序列中没有找到值,则返回True,否则返回False
身份运算符:
is :判断两个标识符是不是引用同一个对象,是True否False。
is not : 判断两个标识符是不是引用不同的对象,是True否False。
运算符的优先级(从上到下优先级由高到低):
**(幂)
~(按位取反) + (正号) -(负号)
* / % //
+(加) -(减)
>> <<
&
^ |
<= > < >=
== !=
= %= += -= //=
is is not
in not in
not or and
总结:
内存,变量,数据类型,标识符,运算符,运算符,表达式的关系
例如:a=1
它是一个赋值表达式,包含赋值运算符=,a是一个变量,a的名字是一个标识符,遵循了标识符起名的诸多原则,当把1赋值给a时,在内存里面开辟了一块内存大小为4Byte的空间,a为该内存空间的名称,同时也确定了该内存空间存储的数据整数类型