Python基础

python

print()函数可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:

>>> print('The quick brown fox', 'jumps over', 'the lazy dog')

The quick brown fox jumps over the lazy dog

Python的语法比较简单,采用缩进方式;

# print absolute value of an integer:

a = 100

if a >= 0:

print(a)

else:

print(-a)

# 开头的是注释;其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。

缩进的坏处就是“复制-粘贴”功能失效了,这是最坑爹的地方。当你重构代码时,粘贴过去的代码必须重新检查缩进是否正确。

Python程序是大小写敏感的,如果写错了大小写,程序会报错。

数据类型和变量

整数、浮点数、字符串

如果 '  本身也是一个字符,那就可以用  ""  括起来,比如  "I'm OK" 包含的字符是I,',m,空格,O,K这6个字符。

字符串内部既包含'又包含" ---可以用转义字符\来标识

'I\'m \"OK\"!'

转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\

>>> print('I\'m ok.')

I'm ok.

>>> print('I\'m learning\nPython.')

I'm learning

Python.

>>> print('\\\n\\')

\

\

布尔值可以用andornot运算。

空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

a = 'ABC'

b = a

a = 'XYZ'

print(b)

最后一行打印出变量b的内容到底是'ABC'呢还是'XYZ'?如果从数学意义上理解,就会错误地得出ba相同,也应该是'XYZ',但实际上b的值是'ABC'。

执行a = 'ABC',解释器创建了字符串'ABC'和变量a,并把a指向'ABC'

执行b = a,解释器创建了变量b,并把b指向a指向的字符串'ABC'

执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:

所以,最后打印变量b的结果自然是'ABC'了。

在Python中,通常用全部大写的变量名表示常量。

在Python中,有两种除法:

一种除法是/

>>> 10 / 3

3.3333333333333335

/除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:

>>> 9 / 3

3.0

还有一种除法是//,称为地板除,两个整数的除法仍然是整数:

>>> 10 // 3

3

Python还提供一个余数运算,可以得到两个整数相除的余数:

>>> 10 % 3

1

 

字符串和编码

Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言

>>> print('包含中文的str')

包含中文的str

对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

>>> ord('A')

65

>>> ord('中')

20013

>>> chr(66)

'B'

>>> chr(25991)

'文'

计算str包含多少个字符,可以用len()函数:

>>> len('ABC')

3

>>> len('中文')

2

Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

使用list和tuple

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

>>> classmates = ['Michael', 'Bob', 'Tracy']

>>> classmates

['Michael', 'Bob', 'Tracy']

变量classmates就是一个list。用len()函数可以获得list元素的个数:

>>> len(classmates)

3

用索引来访问list中每一个位置的元素,记得索引是从0开始的,

>>> classmates[0]

'Michael'

>>> classmates[1]

'Bob'

>>> classmates[2]

'Tracy'

>>> classmates[3]

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

IndexError: list index out of range

最后一个元素的索引是len(classmates) - 1

如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素:

>>> classmates[-1]

'Tracy'

往list中追加元素到末尾:

>>> classmates.append('Adam')

>>> classmates

['Michael', 'Bob', 'Tracy', 'Adam']

也可以把元素插入到指定的位置,比如索引号为1的位置:

>>> classmates.insert(1, 'Jack')

>>> classmates

['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

删除list末尾的元素,用pop()方法:

>>> classmates.pop()

'Adam'

>>> classmates

['Michael', 'Jack', 'Bob', 'Tracy']

删除指定位置的元素,用pop(i)方法,其中i是索引位置:

>>> classmates.pop(1)

'Jack'

>>> classmates

['Michael', 'Bob', 'Tracy']

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:

>>> classmates = ('Michael', 'Bob', 'Tracy')

不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

只有1个元素的tuple定义时必须加一个逗号,,来消除歧义(括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义):

>>> t = (1,)

>>> t

(1,)

看一个“可变的”tuple:

>>> t = ('a', 'b', ['A', 'B'])

>>> t[2][0] = 'X'

>>> t[2][1] = 'Y'

>>> t

('a', 'b', ['X', 'Y'])

表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素(tuple的第三个元素是list)。

条件判断

在Python程序中,用if语句实现:

age = 20

if age >= 18:

print('your age is', age)

print('adult')

age = 3

if age >= 18:

print('your age is', age)

print('adult')

else:

print('your age is', age)

print('teenager')

注意不要少写了冒号   :

elifelse if的缩写,完全可以有多个elif,所以if语句的完整形式就是:

if <条件判断1>:

<执行1>

elif <条件判断2>:

<执行2>

elif <条件判断3>:

<执行3>

else:

<执行4>

if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elifelse,所以,下面的程序打印的是teenager

age = 20

if age >= 6:

print('teenager')

elif age >= 18:

print('adult')

else:

print('kid')

str字符串转为整数:使用 int() 函数

循环

Python的循环有两种,一种是  for...in 循环

names = ['Michael', 'Bob', 'Tracy']

for name in names:

print(name)

for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。

想计算1-10的整数之和,可以用一个sum变量做累加:

sum = 0

for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:

sum = sum + x

print(sum)

如果要计算1-100的整数之和,从1写到100有点困难,幸好Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数:

>>> list(range(5))

[0, 1, 2, 3, 4]

range(101)就可以生成0-100的整数序列

sum = 0

for x in range(101):

sum = sum + x

print(sum)

第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。

计算100以内所有奇数之和:

sum = 0

n = 99

while n > 0:

sum = sum + n

n = n - 2

print(sum)

在循环内部变量n不断自减,直到变为-1时,不再满足while条件,循环退出。

在循环中,break语句可以提前退出循环:

n = 1

while n <= 100:

if n > 10: # 当n = 11时,条件满足,执行break语句

break # break语句会结束当前循环

print(n)

n = n + 1

print('END')

打印出1~10后,紧接着打印END,程序结束。break的作用是提前结束循环。

在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。

打印1-10之间的奇数:

n = 0

while n < 10:

n = n + 1

if n % 2 == 0: # 如果n是偶数,执行continue语句

continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行

print(n)

打印的不再是1~10,而是1,3,5,7,9。

continue的作用是提前结束本轮循环,并直接开始下一轮循环。

使用dict和set

dict

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

>>> d['Michael']

95

要删除一个key,用pop(key)方法,对应的value也会从dict中删除:

>>> d.pop('Bob')

75

>>> d

{'Michael': 95, 'Tracy': 85}

set

set和dict类似,也是一组key的集合,但不存储value。

教程:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431658427513eef3d9dd9f7c48599116735806328e81000

以上是 Python基础 的全部内容, 来源链接: utcz.com/z/388202.html

回到顶部