@Python自学Python3第一天
关键词:输入输出 变量命名 赋值 数据类型 运算 函数 包 模块
python使用print函数输出
print(变量)print(字符串)以下为jupyter运行代码
#!/usr/bin/env python coding: utf-8
##输出变量
import numpy as np import matplotlib.pyplot as plt t=np.arange(0,4,0.1) plt.plot(t,t,t,t+2,t,t**2) print(t) #输出变量t#增加缩进表示语句块的开始
#用相同的缩进表示同级别语句块
#减少缩进表示语句块的退出
变量名:引用对象;标识对象. 使用时需要给变量起一个名字,叫做变量名
避免使用 首字符是下划线 的变量名,_xxx 一般是私有变量名(内置)
避免用 汉语拼音 做变量名
尽量做到 见名识义
多个英文单词做变量名:1、驼峰式,(第一个单词小写,后面的单词首字母大写)如stuName;2、下划线式:单词之间用下划线连接,如stu_name
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
用 运算符 连接各种类型数据的式子 就是表达式 算数运算符:乘方** 正负号± 乘除*/ 整除// 取余% 加减±位运算符:取反~ 与& 或| 异或^ 左移<< 右移>> 比较运算符:小于< 大于> 小于等于<= 大于等于>= 等于== 不等于!=逻辑运算符:非not 与and 或or 1、运算符有优先顺序:如 乘除 高于 加减
2、表达式必须有运算结果
#expression PI=3.14159 r=2 c_circ=2*PI*r # 2*PI*r是表达式。运算结果赋值给c_circ print("The circle's circum is",c_circ)变量第一次赋值,同时获得类型和“值”
1、Python是动态的强类型语言
2、不需要显式声明,根据“值”确定类型
3、以“引用”的方式实现赋值
x=3.5 y=x y is x z=3.5 #z is x #变量x 和 z 引用了两个不同的3.5,即指向了不同的3.5,两个3.5虽然值相同,但它们有各自的内存空间。可通过id()函数查看 id(x) id(z) id(y) p=3 q=3 p is q p=256 q=256 p is q p=257 q=257 p is q⚠️ python中 相同的若干个小整数,默认范围是[-5,256]的部分仅包含数字字母和下划线的字面常量字符串 会被驻留 即分配同以内存空间。这些对象比较常用,这种高效的存储方式可以优化程序的运行速度。
增量赋值操作符 += -= *= /= %= **= <<= >>= &= ^= |=
#assignment m=18 m %= 5 #即m=m%5 m m**=2 m等号左右两边都以元组的方式出现
#assignment x=1 y=2 x,y #逗号是Python中用来创建一种特殊的数据结构 成为元组 。元组 用 圆括号 括起来 x,y=y,x x,y #assignment PI,r=3.14159,3 PI r (PI,r)=(3.14159,3) #same as no round brackets#完整执行一个任务的一行逻辑代码
1、赋值语句完成了赋值 2、print输出语句完成了输出
语句:完成一个任务;表达式:任务中的一个具体组成部分
(长)整型 浮点型 复数型 布尔型 字符串 列表 元组 字典
1、整型 和 长整型 不严格区分
2、Python2支持整型值后加“L”即为长整型
#interger type(3)整型不会出现溢出的错误
1、整型的子类
2、仅有两个值:Ture、False。本质上使用整型的1、0分别存储的
#boolean x=True int(x) y=False int(y)1、即数学中的实数
2、可以类似科学计数法表示
#float 3.22 9.8e3 -4.78e-2 type(-7.8e-2)1、实数+虚数 就是复数
2、虚数部分必须有j
#complex 2.4+5.6j type(2.3+5.6j) 3j #可以没有实部 type(3j) 5+0j #虚部可以为0 type(5+0j)复数可以分离实数部分和虚数部分
-复数.real #实部
-复数.imag #虚部
复数的共轭 -复数.conjugate()
#complex x=2.4+5.6j x.imag x.real x.conjugate()1、字符串:单引号、双引号、三引号内的都是字符串。不可变类型
2、列表:强大的类型,用方括号[]界别。可变类型
3、元组:与列表相似,用小括号()界别。不可变类型
1、用大括号{}界别
2、类似于哈希表的建值对。它的成员都是键key和值value(键值对称为项item)
#dictionary d={'sine':'sin','cosine':'cos','PI':3.14159} d['sine']算数运算符的优先级:乘方** 、正负号± 、乘除*/ 、整除// 、取余% 、加减± 。 乘除 高于 加减。运算对象两边的运算符优先级相同时,要考虑结合方向,是从左往右 还是 从右往左结合。
#arithmetic pi=3.14159 r=3 circum=2*pi*r #圆的周长 x=1 y=2 z=3 result1=x=3/y-z%2 result2=(x+y**z*4)//5 print(circum,result1,result2) 3+4 3*4 3**2 8%5 1/2 1//2 (-3)**21、数值比较:按值比大小
2、字符串的闭阿娇:按ASCII码值大小
#compare 3<4<7 #same as 3<4 and 4<7。4的两边各有一个小于运算符,相同的,优先级一样;小于运算符的结合性,是从左往右 4>3==3 #same as 4>3 and 3==3 。 ==是比较等于,或逻辑等于。和赋值等于一个等于号是不一样的 4<3<5!=2<7 #compare 2==2 2.46<=8.33 'abc'=='xyz' #a和x比较,b和y比较,c和z比较 'abc'>'xyz' 'abc'<'xyz'逻辑运算符优先级:not and or
#logical x,y=3.14159,-1024 x<5.0 not x<5.0 #取反 x<5.0 or y>2.718 x<5.0 and y>2.718 not x is y 3<4<7 #same as 3<4 and 4<71、原始字符串操作符(r/R):用于一些不希望转义字符起作用的地方
2、所有的字符串都是Unicode字符串:Python2.x中需要转换成Unicode字符串
#u in Python 2.x print u'Hello\nWorld' #r f=open('c:\python\test.py','w') #open函数可以打开一个文件,文件的路径就是它的第一个参数,w是写文件。在c盘这个目录下新建一个test.py的文件。这样写会报错 f=open(r'c:\python\test.py','w') #前面带一个r 就不报错。都按字面意思解释 f=open('c:\\python\\test.py','w') #不加r,要用转移字符,用\\表示\按位运算符是把数字看作二进制来进行计算的。
a=60 #二进制 a=0011 1100 b=13 #二进制 b=0000 1101 a&b #按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0。(a & b) 输出结果 12 ,二进制解释: 0000 1100 a|b #按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a | b) 输出结果 61 ,二进制解释: 0011 1101 a^b #按位异或运算符:当两对应的二进位相异时,结果为1。(a ^ b) 输出结果 49 ,二进制解释: 0011 0001 ~a #按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1。(~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。 a<<2 #左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。a << 2 输出结果 240 ,二进制解释: 1111 0000 a>>2 #右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数.a >> 2 输出结果 15 ,二进制解释: 0000 1111算数运算符、位运算符、比较运算符、逻辑运算符
#mix 3<2 and 2<1 or 5>4 x+3/y-z%2>2 3-2<<1 #左移 3-2<<1<3从键盘输入两个整数,求两个整数的和、差、积、商(尝试用一般除法和整除两种方式)并输出。
x=2 y=4 z1=x+y z2=x-y z3=x*y z4=x/y z5=x//y print(x,y,z1,z2,z3,z4,z5) # 参考答案 x=int(input("Input x:")) y=int(input("Input y:")) print("x+y=",x+y) print("x-y=",x-y) print("x*y=",x*y) print("x/y=",x/y) print("x//y=",x//y)1、类似与数学中的函数,完成一个特定功能的一段代码
-绝对值函数abs(x)
-类型函数type(x)
-四舍五入函数round(x)
-str()和type()等适用于所有标准类型
数值型内建函数:abs() bool() oct() round() int() hex() divmod() ord() pow() float() chr() complex()
实用函数:dir() input() help() open() len() range()
dir(__builtins__) #可以看到python中的异常名和属性名,和从abs开始到zip结束的一些内建函数名 help(zip) ⚠️ #四舍五入函数:四舍五入,逢五看奇偶,奇进偶不进 round(3.5) round(2.5) round(3.1) round(3.4) round(3.9)非内建函数如何使用? 首先把模块import(导入)进来
模块:一个完整的Python文件即是一个模块
-文件:物理上的组织方式 math.py
-模块:逻辑上的组织方式 math
Python通常用“import 模块“的方式将现成模块中的函数、类等 重用到其他代码块中
-math.pi的值可以直接使用,不需要自行定义
#round-off floor import math math.floor(-35.4) math.floor(-35.5) math.floor(-35.8) floor(-35.3) #module import math math.pi导入多个模块:用逗号分隔
import ModuleName1,ModuleName2,… #导入多有函数或类
在模块里导入指定的模块属性,from 模块名 import 模块属性
from Module1 import ModuleElement #导入其中部分函数或类
一个有层次的文件目录结构。定义了一个由模块和子包组成的Python应用程序执行环境
AAA/ #最顶层的包 __init__.py bbb.py #它的模块 CCC/ #它的子包 __init__.py c1.py #它的模块 c2.py #它的模块 DDD/ #它的子包 __init__.py d1.py #它的模块 EEE/ #它的子包 ...#调用模块c1中的func1函数
#方法一 import AAA.CCC.c1 #包名.子包名.模块 AAA.CCC.c1.func1(123) #调用模块c1中的func1函数
#方法二 from AAA.CCC.c1 import func1 func1(123) #
库是一组具有相关功能的模块的集合。
有强大的标准库、第三方库、自定义模块
简单的输入输出:编程实现输入姓、名的提示语 并 接受用户输入,并单独显示姓、名和全名,执行效果如下所示: Input your surname:ZHANG Input your firstname:Dazhuang Your surname is:Zhang Your firstname is:Dazhuang Your full name is:Zhang Dazhuang
surname=input("Input your surname:") firstname=input("Input your firstname:") print("Your surname is:",surname) print("Your firstname is:",firstname) print("Your full name is:",surname+' '+firstname) print("Your full name is:",surname,firstname)