Python基础

\n表示换行 \t表示制表符 \表示\

>>> print('I\'m \"ok\"!')
I'm "ok"!
>>> print('I\'m learning\nPython!')
I'm learning
Python!
>>> print('\\\n\\')
\
\
>>> print('\\\t\\')
\       \
>>> print(r'\\\t\\')
\\\t\\   #r''表示''内部的字符串默认不转义

'''...'''可表示多行内容,避免使用多个换行符
在交互式命令行内输入

>>> print('''line1
... line2
... line3''')
line1
line2
line3

在文本编辑器内输入

print('''line1
line2
line3''')

r'''...'''表示'''...'''内部字符串默认不转义

>>> print(r'''hello,\n
... world''')
hello,\n
world

r'''...'''表示'''...'''内部字符串默认不转义

>>> print(r'''hello,\n
... world''')
hello,\n
world
  • 布尔运算符and or not
  • 空值
    用None表示,不能理解为0
  • 变量
    变量名必须是大小写英文字母、数字、下划线的组合,且不能以数字开头
    变量可以是整数、字符串、布尔运算符等
  • 常量
    Python中习惯用全部大写的变量名表示常量
    Python中有两种除法,一种是/,结果为浮点数;另一种是//,结果只取整数部分
  • 输出格式化字符串
>>> 'Hello,%s'%'world'
'Hello,world'
>>> 'Hi,%s,you have $%d.'%('Cloris',1000)
'Hi,Cloris,you have $1000.'

格式化整数和浮点数还可以指定是否补0和整数与小数的位数

>>> print('%2d-%02d' % (3, 1))
 3-01
>>> print('%.2f' % 3.1415926)
3.14
占位符 替换内容
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
  • 使用list

1)如用list表示班级每一位同学,注意list是用方括号表示的

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

2)用len()来获得list中元素的个数

>>> len(classmates)
3

3)访问list中的元素,注意索引是从0开始的,当索引超出了范围时,Python会报一个IndexError错误

>>> classmates[0]
'Michael'
>>> classmates[2]
'Tracy'
>>> classmates[3]
Traceback (most recent call last):
  File "", line 1, in 
IndexError: list index out of range

4)若要访问最后一个元素

>>> classmates[-1]
'Tracy'

5)往list后面追加元素到末尾

>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']

6)把元素插入到指定位置

>>> classmates.insert(1,'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

7)删除list末尾的元素

>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']

8)删除指定位置的元素

>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']

9)替换list中某个元素

>>> classmates[1]='Cloris'
>>> classmates
['Michael', 'Cloris', 'Tracy']

注:list中元素的数据类型可以不同,如

L=['Cloris',999,TRUE]

list中的元素也可以是另外一个list

 s=['Python','Java',['asp','php'],'scheme']

10)访问元素php

>>> s[2][1]
'php'

11)创建一个空list

>>> L=[]
>>> len(L)
0
  • 使用tuple

tuple也是一种有序列表,一旦初始化后就不可更改,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的

>>> classmates=('Michael','Bob','Tracy')
>>> classmates[0]
'Michael'
>>> classmates[-1]
'Tracy'

因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
1)定义一个空的tuple

>>> t=()
>>> t
()

只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

>>> t=(1,)
>>> t
(1,)

2)一个可变的tuple
注:tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

>>> t=('c','d',['A','B'])
>>> t[0]
'c'
>>> t[2][0]
'A'
>>> t[0]='a'
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'tuple' object does not support item assignment
>>> t[2][0]='X'
>>> t[2][0]
'X'
  • 条件判断结构
    注意记得加冒号:
if <条件判断1>:
    <执行1>
elif <条件判断2>:
    <执行2>
elif <条件判断3>:
    <执行3>
else:
    <执行4>
  • input读取用户输入
    一个有问题的条件判断
birth=input('birth:')
if birth<2000:
    print('00前')
else:
    print('00后')

问题出在哪里?
由于input()返回的数据类型是str,str不能直接和整数比较,因此需要将str转化为int型数据
正确的输入

birth=input('birth:')
birth=int(birth)
if birth<2000:
    print('00前')
else:
    print('00后')
  • 循环结构
  1. for...in循环 (记得加冒号:)
    依次把list或tuple中的每个元素迭代出来
    例1:计算1到10所有整数之和
sum=0
for x in [1,2,3,4,5,6,7,8,9,10]:
    sum=sum+x
print(sum)

range(5)可以生成从0开始小于5的整数
list()函数可以生成一个list

>>> list(range(5))
[0, 1, 2, 3, 4]

例2:计算1到100所有整数之和

sum=0
for x in range(101):
    sum=sum+x
print(sum)
  1. while循环(记得加冒号:)

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

sum=0
n=99
while n>0:
    sum=sum+n
    n=n-2
print(sum)
  1. break语句
    提前结束循环
    例4:从1输入到10,并在结尾加End
n=1
while n<100:
    if n>10:
        break
    print(n)
    n=n+1
print('End')
  1. continue语句
    提前结束本轮循环,开始下一轮循环
    例5:输出10以内的所有奇数
n=0
while n<10:
    n=n+1
    if n%2==0:
        continue
    print(n)
print('End')

有些时候,如果代码写得有问题,会让程序陷入“死循环”,也就是永远循环下去。这时可以用Ctrl+C退出程序,或者强制结束Python进程。

  • 使用dict查找
    dict使用键-值(key-value)存储,具有极快的查找速度。
    用Python写一个dict:
>>> d={'Michael':95,'Bob':75,'Tracy':85}
>>> d['Bob']
75

dict的查找原理是根据key的值查找value的值

把数据放入dict的方法:

  1. 初始化时指定
  2. 通过key放入
>>> d['Cloris']=100
>>> d
{'Michael': 95, 'Bob': 75, 'Tracy': 85, 'Cloris': 100}

注:
多次对一个key放入value,后面的值会把前面的值冲掉

>>> d['Tracy']
65
>>> d['Tracy']=70
>>> d['Tracy']
70

如果key不存在,dict就会报错

判断key是否存在的方法:

  1. 通过in判断key是否存在
>>> 'Thomas'in d
False
  1. 通过dict提供的get()方法,如果key不存在,可以返回None(在Python的交互环境下什么也不返回),或者自己指定的value
>>> d.get('Thomas')
>>> d.get('Thomas',-1)
-1

用pop()删除一个key

>>> d.pop('Cloris')
100
>>> d
{'Michael': 95, 'Bob': 75, 'Tracy': 70}

正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象
这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。
要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key

  • 使用set
    set和dict类似,也是一组key的集合,但不存储value
    要创建一个set,需要提供一个list作为输入集合:
>>> s=set([1,2,3])
>>> s
{1, 2, 3}

添加元素到set

>>> s.add(4)
>>> s
{1, 2, 3, 4}

从set中删除元素

>>> s.remove(4)
>>> s
{1, 2, 3}

两个set可以做数学意义上的并集,交集

>>> s1=set([1,2,3])
>>> s2=set([2,3,4])
>>> s1&s2
{2, 3}
>>> s1|s2
{1, 2, 3, 4}

注:str是不可变对象,list是可变对象

>>> a='abc'
>>> a.replace('a','A')
'Abc'
>>> a
'abc'
  • python内置的常用函数
    求绝对值的函数abs(),求最大值的函数max(),数据类型转换函数int()float()bool()
    可以把一个内置函数名赋值给一个变量,该变量拥有同该函数相同的功能
>>> a=bool
>>> a(2)
True

你可能感兴趣的:(Python基础)