Python基本语法

五种基本对象类型

字符串(string)
使用’’或” ”括起来
整数(integer)
十进制:123, 八进制:025, 十六进制0x15
浮点数(float)
2.13, 2., .21, 2.1E1
布尔数(boolean)
True, False
复数(complex)
1+2j
通过type()可查看对象类型。

>>> type(2)
<type 'int'>
>>> type('2')
<type 'str'>
>>> 1+2 #整数相加
3
>>> '1'+'2' #字符串相接
'12'

类型的强制转换

int(‘123’) #将字符串强制转换为整数
int(123.9) #将浮点数强制转换为整数,结果为123
str(123) #将整数强制转换为字符串
float(‘123’) #将字符换强制转换为浮点数
float(123) #将整数强制转换为浮点数
bool(123) #将整数强制转换为布尔数
bool(0) #将整数强制转换为布尔数

关系运算符

== 等于
!=, <> 不等于

大于
< 小于
= 大于等于
<= 小于等于

算术运算符


  • / 除
    % 求余
    ** 指数

注意:
在Python2中,/表示向下取整。
两个整数相除,结果为整数,舍去小数。
若有一个浮点数,则结果为浮点数
若参与运算的两个对象的类型相同,则结果类型不变。
若参与运算的两个对象的类型不同,则结果按照以下规则进行自动类型转换
boolintfloatcomplex

>>> import math #引入math模块
>>> dir(math) #查看模块内容
['__doc__','__name__','__package__','acos','acosh','asin','asinh','atan','atan2','atanh','ceil','copysign','cos','cosh','degrees','e','erf','erfc','exp','expm1','fabs','factorial','floor','fmod','frexp','fsum','gamma','hypot','isinf','isnan','ldexp','lgamma','log','log10','log1p','modf','pi','pow','radians','sin','sinh','sqrt','tan','tanh','trunc']
>>> math.pi
3.141592653589793
>>> math.sqrt(4)
2.0
>>> help(math.exp) #查看帮助内容
Help on built-in function exp in module math:

exp(...)
    exp(x)

    Return e raised to the power of x.

逻辑运算符

and 与
or 或
not 非

判断闰年:
若年份能被4整除,但不能被100整除,则是闰年。若能被400整除,也是闰年。

>>> 2000 % 4 == 0 and 2000 % 100 != 0 or 2000 % 400 == 0
True

运算符优先级

括号:()
一元运算:+, -
幂运算:**
算数运算:*, /, %, //
算数运算:+, -
比较运算:==, !=, <> <= >=
逻辑非:not
逻辑与:and
逻辑或:or
赋值运算:=, *=, /=, +=, -=, %=, //=

规则1:自上而下,括号最高,逻辑最低。
规则2:一元优先,自右向左。
规则3:自左向右,依次结合。

增量运算符

+=, -=, =, /=, %=, //=, *=

标识符

标识符是变量、函数、模块的名字
命名规则:
首字符必须为字母或者下划线。标识符包含数字、字母和下划线。区分大小写。标识符可以任意长。标识符不能是关键字。

Python2中的关键字:

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

输入输出

raw_input
功能:读取键盘输入,将所有输入视为字符串。
语法:raw_input([prompt])
举例:radius = float(raw_input(‘Radius:’))
pi = 3.14
radius = float(raw_input(‘Radius:’))
area = pi*radius**2
print area

input
功能:读取键盘输入,可输入数字
语法:raw_input([prompt])
举例:
radius = float(raw_input(‘Radius:’))
radius = input(‘Radius:’)

print
功能:输出
输出变量:
print a
print(a)
输出字符串:
print’abcd’
print”abcd”
print(’abcd’)
print(“abcd”)

将多个对象输出到一行:

pi = 3.14
radius = float(raw_input('Radius:'))
area = pi*radius**2
print 'when radius =', radius, 'the area is', area

转义字符:

\n 回车
\t 制表符
\ 一个\
\a 响铃
\’ 单引号
\” 双引号

if选择结构

elif相当于else:if,但和第一个if条件并列。
if-elif-else语句中有else条件时,else条件放在最后。

【eg.1:】

if c<10:
    print("c<10")
elif c>50:
    print("c>50")
else:
    print("10<c<50")

while循环结构:

【eg.2:】

num = 1
total_num = 3
count = 0
while num <= total_num:
    grade = input("input No."+str(num)+"student's grade:")
    if grade >= 60:
        count += 1
    else:
        pass       # do nothing
    num += 1
print "passed student number is ", count

【eg.3:】根据泰勒定理计算e的值

n = 1
ee = 1
factor = 1
infactor = 1
while infactor > 1e-6:
    e1 = ee + infactor
    n += 1
    factor = factor*n
    infactor = 1.0/factor
    ee = e1
print "e = ",ee
print "e = %.5f"%ee #小数点后保留5位数字
print("e = %.5f")%ee #小数点后保留5位数字

for循环结构:

for i in range(a,b)
range(a,b)范围a,a+1,…,b-1

for i in range(b)
range(b)等价于range(0,b)

for i in range(a,b,k)
range(a,b,k)范围a,a+k,…,b-x

从while循环到for循环的转变:
i = initialValue
while i < endValue:
……
i += 1
以上代码可用for代替:
for i in range(initialValue, endValue):
……
【eg.4:】
for i in range(1,10):
print(i)
for i in range(1,10):
print(“Item {0},{1}”.format(i,”hello python”))

【eg.5:】eg.2的改写:

count = 0
for i in range(1,4):
#注意这里输入的是字符串
#grade = raw_input("input No."+str(i)+" student's grade:")    grade = input("input No."+str(i)+" student's grade:")
    print(grade)
    if grade >= 60:
        count += 1
    else:
        pass
print "passed student number is ", count

break和continue
和C、MATLAB中一样,在Python中:
break 强制终止当前循环体
continue 强制终止当次循环

编程练习——求一元二次方程的解

#coding=utf-8  
#为了显示中文,需要在头部加上#coding=utf-8
import math
a, b, c = input("Enter three coefficients:")
tag = b*b-4*a*c
if tag < 0:
    print "方程无实根"
elif tag == 0:
    sqrtTag = math.sqrt(b*b-4*a*c)
    r = (-b+sqrtTag)/(2*a)
    print "the only root is", r
else:
    sqrtTag = math.sqrt(b*b-4*a*c)
    r1 = (-b+sqrtTag)/(2*a)
    r2 = (-b-sqrtTag)/(2*a)
    print "two distinct roots are", r1, r2

函数

自定义函数–无传递参数

def SayHello():
    print("Hello World")
SayHello()

自定义函数–有传递参数

def max(a,b):
    if a>b:
        return a
    else:
        return b
print(max(1,3))

局部变量和全局变量

函数外部定义的变量为全局变量
函数内部定义的变量为局部变量
如果希望函数内部的变量为全局变量,则需要在函数内部对变量用global声明。

x = 1
def add():
    global x
    x += 1
    print x

add()
print x

递归:求12的阶乘

def p(i):
    if i == 1 or i == 0:
        return 1
    else:
        return i*p(i-1)
print p(12)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值