Python入门教程[1]–基础语法

王 茂南 2018年2月3日19:46:21
评论
2 2859字阅读9分31秒
摘要这是python入门的第二篇,这一篇主要会讲python中的基础语法,如基础的数据类型,控制结构,运算符和异常处理。

简介

这一篇会介绍关于Python的基础语法. 包括常见的数据类型, 运算符, 逻辑控制, 异常处理等. 关于更多入门教程, 可以通过下面的链接查看.

 

数据类型

  • int 整形
  • float 浮点型
  • complex 复数
  • None 空值,与0不同

使用type来查看数据类型

数据类型的转换

  • int(x) 将x转换为整形
  • float()

例子

#下面代码在ipython中进行测试
a = 1
type(a)
>> int
a = float(a)
type(a)
>> float

 

python查看内存地址

我们使用id来查看python中变量的地址. 例如下面的例子, 我们查看递归的过程中, 函数的参数和函数的地址.

  1. def tt(n, memo={}):
  2.     # 终止条件
  3.     if n == 1:
  4.         memo[n] = 1
  5.         return
  6.     # 调用递归
  7.     print('调用递归前:{}, address:{}, f address:{}'.format(memo, id(memo), id(tt)))
  8.     tt(n=n-1)
  9.     # 处理数据
  10.     memo[n] = n
  11.     print('=>调用递归后:{}, address:{}, f address:{}'.format(memo, id(memo), id(tt)))
  12. if __name__ == "__main__":
  13.     tt(n=3)

输出的值如下所示. 可以看到递归的时候使用的函数是一个, memo变量也是一样的.

  1. 调用递归前:{}, memo address:1687013455840, n address:140713978278800, f address:1687130753088
  2. 调用递归前:{}, memo address:1687013455840, n address:140713978278768, f address:1687130753088
  3. 调用递归后:{1: 1, 2: 2}, memo address:1687013455840, n address:140713978278768, f address:1687130753088
  4. 调用递归后:{1: 1, 2: 2, 3: 3}, memo address:1687013455840, n address:140713978278800, f address:1687130753088

 

python字符串的使用

\的使用

  • \作为python中的转义符

如果字符串中出现引号,则使用\来进行转义

a = '\'hello world\''
print(a)
>> 'hello world'
  • 字符串末尾\来进行换行

可能用来保持代码整洁性,不让字符串拖太长。

str1 = 'it is a string\
        .it is a string.'
print(str1)

字符串的连接

  • 使用+来连接字符串
a = 1
b = str(a)+'+'+str(a)+'=2' #这里思考为什么要用`str(a)`
print(b)
>> 1+1=2

字符串切片

字符串可以有数字索引的

a = '1234567'
a[0]
>> '1'
a[-1]
>> '7'

#返回字符串长度
len(a)

字符串切割

我们可以使用split来进行字符串的切割

a = 'hello:world'
a.split(':')
>> ['hello','world']

 

运算符

数学运算符

python3中的数学运算符与数学中的运算符基本类似, 这里介绍一下几个不熟悉的.

首先是整除取余数. 例如9=2*4+1, 我们获取9除4的倍数和余数.

  1. 9//4
  2. >> 2
  3. 9%4
  4. >> 1
Python入门教程[1]–基础语法

接着是幂运算. 例如要计算2^3.

  1. 2**3
  2. >> 8

 

逻辑运算符

True and False
True or False

控制结构

选择控制

a = 10
if a>15:
    print('a>5')
elif a>10:
    print('15>a>10')
else:
    print('a<10')

>> 'a<10'

循环控制

for循环

for循环主要是依次取出列表中的一个项目,对列表进行遍历处理

for i in '1234567':#思考为什么这里可以这么写
    print(i)

for i in range(7):
    print(i)

while循环

a = 10
while a>5:
    print(a)
    a = a-1

break和continue

break--停止当前循环 continue--跳过当前循环中的一轮

for a in range(10):
    if a==5:
        break
    print(a)#这里输出到4时停止

for a in range(10):
    if a==5:
        continue
    print(a)#这里输出里没有5

异常处理

使用raise

当程序出现错误的时候, 或是运行和我们预想的不一样的时候, 我们可以通过raise显示地引发异常. 一旦使用了raise, raise后面的内容就不会再执行。(例如我们自定义了一些不合法的输入,就可以使用 raise 来抛出异常了

我们可以定义一个显示错误的函数, 在里面详细说明报错的原因.

  1. def ThorwErr():
  2.     raise Exception("抛出一个异常")
  3. ThorwErr()

之后可以得到以下的报错内容.

  1. Traceback (most recent call last):
  2.   File ".\ra.py", line 4, in <module>
  3.     ThorwErr()
  4.   File ".\ra.py", line 2, in ThorwErr
  5.     raise Exception("抛出一个异常")
  6. Exception: 抛出一个异常

参考资料python中异常处理--raise的使用

使用try与except

我们在这里使用try,except进行简单的异常处理

try:
    pass#这里可以输入其他一些代码
except:
    print('Error')

注释

python中,注释需要以#开头

使用'''来进行多行注释

例子

#下面是注释的例子
print(1+1) #打印1+1的结果

#下面是多行注释
'''
print(1+1)
'''

练习

输入数字,返回1-10乘该数字的结果

python3 test.py 7
>> 1*7=7
2*7=14
3*7=21
4*7=28
5*7=35
6*7=42
7*7=49
8*7=56
9*7=63

python3 test.py a
>> 请输入数字

参考答案

import sys

try:
    num = int(sys.argv[1])
except:
    print('请输入数字')
    exit()

for i in range(1,10):
    print(str(i)+'*'+str(num)+'='+str(num*i))

~~ by WMN

  • 微信公众号
  • 关注微信公众号
  • weinxin
  • QQ群
  • 我们的QQ群号
  • weinxin
王 茂南
  • 本文由 发表于 2018年2月3日19:46:21
  • 转载请务必保留本文链接:https://mathpretty.com/8938.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: