Python基础语法

语法细节+标识符+数据类型+运算符+语句

一、语法细节
1.编码
python2默认使用iso8859-1,python3模式使用utf-8。如果python文件本身的编码和以上编码不一致会出现乱码问题。

2.语句
Python通常一行为一条语句不需要分号标识,如果将多条语句写在一行内,则需要使用分号分割防止产生歧义。

print(“hello python”)
print(“hello China”);print(“你好,中国”)

3.缩进
python中没有使用大括号作为作用域的标识,而是采用制表符来标识作用范围。

if 3>2:
print(“a”)
if 3<4:
print(“b”)
print(“c”)
print(“d”)

由于python使用制表符作为作用范围的标识,所以制表符不可以随意的使用,之前通过制表符来调整代码结构的习惯需要改变。

4.注释
#作为单行注释

#我是单行注释

使用三个单引号 或 三个双引号作为多行注释

'''
我是多行注释
我是多行注释
'''

"""
我是另一种多行注释
我是另一种多行注释
"""

python也常使用注释采用特定结构作为文档的特性声明,例如向解释器声明当前页面的编码。

5.引用及常量变量
Java中,String str = “abc”:其中:“abc”是真正的对象,str就是引用,String就是引用的类型。“abc”的值可变,所以str是变量,给前面加上final就是常量。
python没有声明引用的关键字,直接写引用的名称就可以声明引用。

str=”abc”

python的引用没有数据类型,可以先后被指向不同类型的数据。

str=”abc”
str=123

注意:这里str只是指向string类型的字符串和int类型的整数。
python中小写的引用表示一个变量, 大写的引用表示一个常量。注意,此处常量只是一种约定,要求未来使用者不要进行修改,但是python并没有从语义上限制修改大写的引用,所以此处常量本质上还是变量,如果真的修改也是可以修改的。

二、标识符
在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头(和Java中一样)。
Python 中的标识符是区分大小写的。
在Python中下划线_是有特殊意义的:
(1)以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入(类似于Java中protect修饰的类);
(2)以双下划线开头的 __foo 代表类的私有成员
(3)以双下划线开头和结尾的 foo 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。

三、数据类型
python中的引用没有数据类型,但是数据本身是有类型的区别的。
1.字符串类型
可以用单引号、双引号或三引号来声明一个字符串直接量。单引号和双引号声明字符串没有差别,而三引号方式声明的字符串中的内容可以包含任意字符,会原样作为字符串内容,而不需要转义。

#字符串
str = 'abc'
str = "def"
str = '''ghi'''
str = """jkl"""

str=’abc\r\nde\tfghi’
str="abc\r\nde\tfghi"
str=’’’abc\r\nde\tfghi’’

这几种样式都可以。
但是

str=’’’abc
de		fghi’’’

这种格式单引号和双引号则不行。
python中可以使用r或R在字符串直接量前进行修饰,表明当前字符串忽略转义直接使用原值或者直接用\转义。

str1=r"a\r\nde\tf"
str2="a\\r\\nde\\tf"

输出都是:a\r\nde\tf
python字符串提供了大量的操作方法:

#+拼接字符串
str =  "abc" + "def"
print(str)
#*重复字符串
str = "abc"
print(str*3)
#[]索引字符串
str = "abcdef"
print(str[2])
print(str[2:4])
print(str[:4])
print(str[2:])
print(str[-2])
#in not..in 判断是否包含
str = "abcdef"
print("xyz" in str)
print("xyz" not in str)
#格式化字符串
str = "My name is %s ,my age is %d,my city is %s"  % ("park",18,"bj")
print(str)

2.布尔类型
布尔类型的直接量只有两个值:True False
可以通过逻辑运算符操作布尔类型的数据:and or not

flag1 = True
flag2 = False
flag3 = True and False 
flag4 = True or False
flag5 = not False

3.数值类型
python中代表数据的类型,可以有如下四种直接量的值:
(1)整型
通常被称为是整型或整数,是正或负整数,不带小数点。
(2)长整型
无限大小的整数,整数最后是一个大写或小写的L。
(3)浮点型
浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
(4)复数
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
数值类型提供了大量的操作方法:
类型转换:

  int(x [,base ])           将x转换为一个整数  
    long(x [,base ])        将x转换为一个长整数  
    float(x )               将x转换到一个浮点数  
    complex(real [,imag ])  创建一个复数  
    str(x )                 将对象 x 转换为字符串  
    repr(x )                将对象 x 转换为表达式字符串  
    eval(str )              用来计算在字符串中的有效Python表达式,并返回一个对象  
    tuple(s )               将序列 s 转换为一个元组  
    list(s )                将序列 s 转换为一个列表  
    chr(x )                 将一个整数转换为一个字符  
    unichr(x )              将一个整数转换为Unicode字符  
    ord(x )                 将一个字符转换为它的整数值  
    hex(x )                 将一个整数转换为一个十六进制字符串  
    oct(x )                 将一个整数转换为一个八进制字符串  

数学函数:

   abs(x)        返回数字的绝对值,如abs(-10) 返回 10
    ceil(x)      返回数字的上入整数,如math.ceil(4.1) 返回 5
    cmp(x, y)    如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1
    exp(x)       返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
    fabs(x)      返回数字的绝对值,如math.fabs(-10) 返回10.0
    floor(x)     返回数字的下舍整数,如math.floor(4.9)返回 4
    log(x)       如math.log(math.e)返回1.0,math.log(100,10)返回2.0
    log10(x)     返回以10为基数的x的对数,如math.log10(100)返回 2.0
    max(x1, x2,...)    返回给定参数的最大值,参数可以为序列。
    min(x1, x2,...)    返回给定参数的最小值,参数可以为序列。
    modf(x)      返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
    pow(x, y)    x**y 运算后的值。
    round(x [,n])      返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
    sqrt(x)      返回数字x的平方根,数字可以为负数,返回类型为实数,如math.sqrt(4)返回 2+0j

随机数函数

choice(seq)      从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
randrange ([start,] stop [,step])从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
random()         随机生成下一个实数,它在[0,1)范围内。
seed([x])        改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
shuffle(lst)     将序列的所有元素随机排序
uniform(x, y)    随机生成下一个实数,它在[x,y]范围内。

数学常量

        pi        数学常量 pi(圆周率,一般以π来表示)
        e         数学常量 e,e即自然常数(自然常数)

4.空值类型
类似于java中的null,表示没有值,只有一个直接量None

        x=None

四、运算符
1.算数运算符

+        加 - 两个对象相加    
-        减 - 得到负数或是一个数减去另一个数     
*        乘 - 两个数相乘或是返回一个被重复若干次的字符串       
/        除 - x除以y      
%        取模 - 返回除法的余数      
**       幂 - 返回x的y次幂      
//       取整除 - 返回商的整数部分      
		例如:3//2 输出结果 1 , 3//2 输出结果1,3.0/2输出结果1.5,3.0//2输出结果1.0

2.赋值运算符

=         简单的赋值运算符        c = a + b 将 a + b 的运算结果赋值为 c
+=        加法赋值运算符        c += a 等效于 c = c + a
-=        减法赋值运算符        c -= a 等效于 c = c - a
*=        乘法赋值运算符        c *= a 等效于 c = c * a
/=        除法赋值运算符        c /= a 等效于 c = c / a
%=        取模赋值运算符        c %= a 等效于 c = c % a
**=       幂赋值运算符        c **= a 等效于 c = c ** a
//=       取整除赋值运算符        c //= a 等效于 c = c // a

3.位运算符

&        按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0       
|        按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。      
~        按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1    
^        按位异或运算符:当两对应的二进位相异时,结果为1       
<<       左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。   
>>       右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数       

4.比较(关系)运算符

==        等于 - 比较对象是否相等   
!=        不等于 - 比较两个对象是否不相等       
<>        不等于 - 比较两个对象是否不相等       
>         大于 - 返回x是否大于y       
<         小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。     
>=        大于等于 - 返回x是否大于等于y。     
<=        小于等于 - 返回x是否小于等于y。        

5.逻辑运算符

and       x and y       布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
or        x or y        布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。    
not       not x         布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 

6.成员运算符

in        如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in    如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

7.身份运算符

is        is是判断两个标识符是不是引用自一个对象        x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not    is not是判断两个标识符是不是引用自不同对象    x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1

8.运算符的优先级

** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,aa取模和取整除+ - 加法减法
>> << 右移,左移运算符
& 位 ‘AND’
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符

五、语句
1.条件语句 if

if 判断条件:
执行语句……
else:
执行语句……

if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……

#if 条件判断
n = 11
if n<10:
    print("haha")
elif n<100:
    print("hehe")
else:
print("xixi")

2.循环语句 while
while 判断条件:
执行语句……

while 判断条件:
执行语句……
else:
循环条件为false时执行else语句块

**支持continue、break、pass

#while 循环
n = 0
sum = 0
while n<=10:
    sum += n
    n += 1   #不支持++
else:
    print("循环条件不成立时执行else,之后退出循环")
print(sum)

3.循环语句 for
(1)增强for循环:

l1 = [1,2,3,4,5]
for x in l1:
print(x)
else:
print(“for循环结束”)

(2)普通for循环:
for index in range(n):
执行语句……

for  x in range(10):
print(“aaa”)

你可能感兴趣的:(计算机,Python)