(此文只讲与c语言不同的语法,相同之处没讲)
赋值
链式赋值
x=y=123,相当于x=123;y=123
系列解包赋值
a,b,c=4,,5,6相当于:a = 4;b = 5;c = 6
常量
Python不支持常量,所以只能规定常量的命名规则,以及程序的逻辑上不对常量的值做出修改。标
>>>MAX_SPEED = 120
>>>print(MAX_SPEED)
120
>>>MAX_SPEED = 140 #实际是可以改的。只能逻辑不做修改。
>>>print(MAX_SPEED)
140
基本内置运算符
与c语言不同的基本运算符:
/:浮点数除法 比如7/2=3.5
//:整数除法比如 7//2=3
**:幂 比如2**3=8
0不能做除数
divmod()函数同时得到商和余数
例如:
<<<divmod(13,3)
(4,1)
divmod()是一个函数,返回的是一个元祖。
整数_不同进制
Python中,除10进制外,还有其他三种进制:
0b或0B,二进制 0 1
0o或0O,八进制 0 1 2 3 4 5 6 7
0x或0X,十六进制 0,1,2,3,4,5,6,7,8,9,a,b,c,d,,e,f
整数可以有多大?
Python2中,int是32位,可以存储-2^31--2^31-1之间的数值。
long类型是64位,可以存储-2^63---2^63-1之间的数值。
Python3中,int可以存储任意大小的整数,long被取消。我们甚至可以存储下面的值:
>>>googol = 10**100
Python中可以做超大数的计算,而不会造成“整数溢出”,这也是Python特别适合科学运算的特点。
浮点数与科学计数法(此文只讲与c语言不同的语法,相同之处大部分没讲)
如3.14表示成314e-2或314E-2
round(value)可以返回四舍五入的值,
<<<round(3.54)
4
注:但不会改变原有值(对象),而是产生新的值(新的对象)
+=中间不能加空格
时间表示,unix时间点,毫秒微秒,time模块
计算机中时间的表示是从1970年1月1日00:00:00开始,以毫秒进行计算。我们也把1970年这个时刻称为“unix时间点”。
time.time(),返回的值是以秒为单位,带微秒(1/1000毫秒)精度的浮点值。
>>> import time
>>> time.time()
1586597484.9840028
>>> b = int (time.time())
>>> b
1586597544
>>> totalminutes = b/60
>>> totalminutes
26443292.4
>>> totalhour = totalminutes/60
>>> totalhour
440721.54
>>> year = totalhour/24/365
>>> year
50.31067808219178
多点坐标_汇出折线_计算两点距离
#导入海龟,math
import turtle
import math
#定义多个点的坐标
x1,y1 = 100,100
x2,y2 = 100,-100
x3,y3 = -100,-100
x4,y4 = -100,100
#绘制折线
turtle.penup()
turtle.goto(x1,y1)
turtle.pendown()
turtle.goto(x2,y2)
turtle.goto(x3,y3)
turtle.goto(x4,y4)
#计算起始点和终点的距离
distance = math.sqrt((x1-x4)**2 + (y1-y4)**2)
turtle.write(distance)
布尔值
python2没有布尔值,直接用0表示False,用数字1表示True.
Python3中,把True和False定义成了关键字,但他们的本质还是1和0,甚至可以和数字相加。
同一运算符
'is'比较的是地址,is效率更高(因为'=='是比较的方法)
'== '比较的是 值
整数缓存问题
[-5,256]
[-5,到任意整数]
总结
字符串
不支持单字符,单字符也是作为字符串使用
编码
Unicode可表示所有文字(包括汉字),2^16种
ord(),把字符转换成对应的Unicode
chr() ,把十进制转换成对应字符
ASCII(不能表示汉子) ,2^8种
引号创建字符串
创建单行字符串
连续三个单引号或是三个双引号,可以帮助我们创建多行字符。
len()函数
表示查字符串的长度
转义字符
不换行打印
end="任意字符串"
从控制台读取字符串
我们可以使用input()从控制台读取键盘输入的内容
>>>myname = input("请输入名字:")
请输入名字:gaoqi
>>>myname
'gaoqi'
str()实现数字转型字符串
使用【】提取字符
索引就是偏移量
replace()字符串替换
创建新的字符串对象,以前的不可变
字符串切片slice操作
切片slice操作可以让我们快速的提取子字符串,标准格式为:
[起始偏移量start:终止偏移量end:步长step]
包头不包尾
split()分割和join()合并
字符串驻留机制和字符串比较
驻留机制,即用之前的对象,不再建立新的对象。
is/not is
in/not in
常用查找方法

去除首尾信息
大小写转换
格式排版
其他方法
字符串格式化,format()基本用法,填充与对齐(转载的)
https://www.cnblogs.com/benric/p/4965224.html
python之字符串格式化(format)
用法:
它通过{}和:来代替传统%方式
1、使用位置参数
要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表
>>> li = ['hoho',18]
>>> 'my name is {} ,age {}'.format('hoho',18)
'my name is hoho ,age 18'
>>> 'my name is {1} ,age {0}'.format(10,'hoho')
'my name is hoho ,age 10'
>>> 'my name is {1} ,age {0} {1}'.format(10,'hoho')
'my name is hoho ,age 10 hoho'
>>> 'my name is {} ,age {}'.format(*li)
'my name is hoho ,age 18'
2、使用关键字参数
要点:关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可
>>> hash = {'name':'hoho','age':18}
>>> 'my name is {name},age is {age}'.format(name='hoho',age=19)
'my name is hoho,age is 19'
>>> 'my name is {name},age is {age}'.format(**hash)
'my name is hoho,age is 18'
3、填充与格式化
:[填充字符][对齐方式 <^>][宽度]
>>> '{0:*>10}'.format(10) ##右对齐
'********10'
>>> '{0:*<10}'.format(10) ##左对齐
'10********'
>>> '{0:*^10}'.format(10) ##居中对齐
'****10****'
4、精度与进制
>>> '{0:.2f}'.format(1/3)
'0.33'
>>> '{0:b}'.format(10) #二进制
'1010'
>>> '{0:o}'.format(10) #八进制
'12'
>>> '{0:x}'.format(10) #16进制
'a'
>>> '{:,}'.format(12369132698) #千分位格式化
'12,369,132,698'
5、使用索引
>>> li
['hoho', 18]
>>> 'name is {0[0]} age is {0[1]}'.format(li)
'name is hoho age is 18
数字格式化