【python零基础入门-持续更新】


本文参考书籍:Python编程从入门到实践

一)变量和简单数据类型

1.1变量的命名

  • 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打
    头。
  • 变量名不能包含空格,但可使用下划线来分隔其中的单词。
  • 不要将Python关键字和函数名用作变量名。
  • 变量名应既简短又具有描述性,name比n好。
  • 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。

就目前而言,应使用小写的Python变量名(文件名也用小写字母)。在变量名中使用大写字母虽然不会导致错误,
但避免使用大写字母是个不错的主意。

  • 首字母大写的名称指的是类。

程序无法成功地运行时, 解释器会提供一个traceback。traceback是一条记录,指出了解释器尝试运行代码时,在什么地方陷入了困境。

1.2字符串

  • 用引号括起的都是字符串,其中的引号可以是单引号, 也可以是双引号

  • 能够在字符串中包含引号和撇号。

  • title()以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写

  • 可以使用单引号或双引号来表示字符串。可以使用三引号 ‘’’ 或 “”" 来表示多行字符串。

  • title()方法,仅仅首字母大写,其他小写。

name="abb_ba"
print(name.title())#print是输出打印

输出:

Abb_Ba
  • upper()字符串改为全部大写
name="abb_ba"
print(name.upper())

输出:

ABB_BA
  • lower()字符串改为全部小写,存储数据时,方法lower()很有用。
name="ABB_ba"
print(name.lower())

输出:

abb_ba

字符串首位相连

name="abcdef"
print(name[0] + name[-1])

输出结果:

af

判断一个单词是否以s结尾

name="defs"
print(name.endswith('s'))

运行结果:

True

1.3合并(拼接)字符串

  • Python使用加号(+)来合并字符串。
  • " "是空字符串。

下面这种合并字符串的方法称为拼接(print是输出打印)

xing="张"
ming="华"
name=xing+ming
print(name)
print("zhang".title()+" "+"hua"+"!")

输出:

张华
Zhang hua!

1.4使用制表符或换行符来添加空白

  • 在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。
  • 制表符,可使用字符组合\t,代表着四个空格,也就是一个tab。
  • 制表符也属于“写法是两个字符的组合,但含义上只是一个字符”的情形。

制表符添加空白:

name="彰化"
print(name)
print("\t彰化")
print(name+"\t"+"你好")

输出结果:

彰化
	彰化
彰化	你好

\n是换行符:

name="彰化"
print(name+"\n"+"你好")

输出:

彰化
你好

1.5删除字符串中的空白,但都是暂时的

  • rstrip(),删除字符串中末尾多余的空白,但是暂时的,要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中。
  • lstrip():剔除字符串开头的空白。 strip():同时剔除字符串两端的空白。
name=" 彰化 "
print(name)
print(name.rstrip())
print(name.lstrip())
print(name.strip())
print(name)

输出:

彰化 
 彰化
彰化 
彰化
 彰化 

1.6 数字

1.6.1 整数

  • 整数、浮点数和复数都属于Python数字的范畴。在Python中,它们被定义为 int、float 和 complex类
  • 整数:数执行加(+)减(-)乘(*)除(/)运算。
  • Python使用两个乘号表示乘方运算。
  • 还支持运算次序,可以使用括号来修
    改运算次序,让Python按你指定的次序执行运算
a,b,c=1,2,3
h1=a+b
h2=b**b
h3=(a+b)*c
print(h1+h2+h3)

输出:16

1.6.2浮点数

  • 浮点数:带小数点的数字都称为浮点数,但需要注意的是,结果包含的小数位数可能是不确定的:
a=0.1
b=0.2
print(a+b)

输出:

0.30000000000000004
  • 用函数 str()避免类型错误
a=0.1
b=0.2
c=a+b
print("结果:"+c)

输出会报错: print(“结果:”+c)。TypeError: must be str, not float

a=0.1
b=0.2
c=a+b
print("结果:"+str(c))

输出结果:

结果:0.30000000000000004
  • Python 2 中的整数,在Python 2中,整数除法的结果只包含整数部分,小数部分被删除(请注意,计算整数结果时,采取的方式不是四舍五入,而是将小数部分直接删除)。若要避免这种情况,务必确保至少有一个操作数为浮点数,这样结果也将为浮点数。
  • Python 3中整数除法是正常的。
a=4
b=3
print(a/b)
print("结果:"+str(a/b))

输出如下:

1.3333333333333333
结果:1.3333333333333333

1.6.3 复数

# 复数以  x + yj 形式书写,其中x是实部,y是虚部
c=1+2j
print(c)

输出如下:

(1+2j)

1.6.4 注释

  • 单行注释用#来标识,多行注释使用三引号,‘’’ 或者 “”"。这些三引号通常用于多行字符串。但是它们也可以用作多行注释。
a=4 
b=3
print(a/b)#灰色的我就是注释,#后面的内容都是注释,这是单行注释
  """ 
  这是一个
  多行注释
  """

1.6.5 python之禅

要得到一些有关编写优秀Python代码的指导原则,需在解释器中执行命令import this。

import this
a=" nihao "
print(a)

二)python列表

  • 列表由一系列按特定顺序排列的元素组成

2.1 列表的定义

  • 用方括号[]来表示liebiao1变量是一个列表列表,列表中元素用逗号隔开。可以把整数、浮点数、字符串、列表等任何东西加入列表中。
# coding=utf-8
import this
liebiao2=[11,22,33]
liebiao3=["1",2,"3",'你好',liebiao2]
print(liebiao3)

输出如下:

['1', 2, '3', '你好', [11, 22, 33]]

2.2 列表的修改

2.2.1 访问(调用)列表元素

  • 访问列表元素,访问列表第n个元素:列表名[n-1],[]里面的数字是列表元素的索引,列表根据索引找到元素的位置。索引是从0开始排列。第一个元素的索引是0。
import this
liebiao1=[]#空列表
liebiao2=[11,22,33]
liebiao3=["1",2,"3",'你好',liebiao2]
print(liebiao3[0])#访问列表第一个元素,索引是从0开始

输出:

1#列表只返回元素本身,不返回[]或者引号
  • 索引为-1,则是python列表最后一个元素。这是python自身的特殊语法。仅当列表为空时,这种访问最后一个元素的方式才会导致错误
  • 索引-2返回倒数第二个列表元素,索引-3返回倒数第三个列表元素,以此类推。

2.2.2 修改、添加、删除列表元素

  • 把列表中第3个元素修改成1
import this
liebiao2=[11,22,33]
liebiao3=["1",2,"3",'你好',liebiao2]
liebiao3[2]=1#把列表中第3个元素修改成1
print(liebiao3)

输出如下:

['1', 2, 1, '你好', [11, 22, 33]]
  • 用方法append(),在列表末尾添加一个字符串元素nihao
import this
liebiao2=[11,22,33]
liebiao3=["1",2,"3",'你好',liebiao2]
liebiao3.append("nihao")
print(liebiao3)

输出如下:

['1', 2, '3', '你好', [11, 22, 33], 'nihao']
  • 用方法insert()可在列表的任何位置添加新元素。需要指定新元素的索引和值。
liebiao2=[11,22,33,"nihao"]
liebiao2.insert(0,"1")
print(liebiao2)

输出如下:

['1', 11, 22, 33, 'nihao']
  • 用del语句删除列表元素,需要知道你要删除的元素的位置,也就是索引。
liebiao2=[11,22,33,"nihao"]
del liebiao2[0]#删除第一个元素
print(liebiao2)

输出如下:

[22, 33, 'nihao']
  • 用pop语句删除列表元素,方法pop()可删除列表末尾的元素,并让你能够接着使用它。
  • 可以使用pop()来删除列表中任何位置的元素,只需在括号中指定要删除的元素的索引即可。
# coding=utf-8
liebiao2=[11,22,33,"nihao"]
a=liebiao2.pop()#删除最后一个元素
print(a)#使用删除的元素
print(liebiao2)
liebiao2.pop(0)#删除列表第一个元素
print(liebiao2)

输出如下:

nihao
[11, 22, 33]
[22, 33]
  • 如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续使用它,就使用方法pop()。

  • 根据值删除列表元素用方法remove():可以确定值为22的元素的位置并删除列表值为22的元素。remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。

# coding=utf-8
liebiao2=[11,22,33,"nihao"]
liebiao2.remove(22)#删除列表中值为22的元素。
print(liebiao2)

输出如下:

[11, 33, 'nihao']
  • list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list=[1,2,3,4]
list1=[5,6,7,8,9]
list.extend(list1[:2])
print(list)

输出:

[1, 2, 3, 4, 5, 6]
  • 清空列表:list.clear()
list=[1,2,3,4]
list.clear()
print(list)

输出:

[]
  • 复制列表:list.copy()
list=[1,2,3,4]
list1=list.copy()
print(list1)

输出:

[1, 2, 3, 4]

2.2.3 列表排列

  • sort()方法对列表进行永久性排序,按字母顺序或倒序。
# coding=utf-8
liebiao2=["abn","bac","cbd"]
liebiao2.sort()#按首字母的顺序排序
print(liebiao2)
liebiao2.sort(reverse=True)#按首字母逆序排序
print(liebiao2)

输出如下:

['abn', 'bac', 'cbd']
['cbd', 'bac', 'abn']
  • sorted()函数对列表进行临时的排序,临时的
# coding=utf-8
liebiao2=["bcc","abb","ccc"]
print(sorted(liebiao2))#按字母顺序正序排序,临时
print(sorted(liebiao2,reverse=True))#按字母顺序逆序排序,临时
print(liebiao2)

输出如下:

['abb', 'bcc', 'ccc']
['ccc', 'bcc', 'abb']
['bcc', 'abb', 'ccc']
  • 列表倒序排序reverse()函数,永久性的。
# coding=utf-8
liebiao2=["你好","步步","身高"]
liebiao2.reverse()
print(liebiao2)

输出如下:

['身高', '步步', '你好']
  • 列表长度用函数len()
# coding=utf-8
liebiao2=["你好","步步","身高"]
a=len(liebiao2)
print(a)

输出如下:

3

2.3 列表的高级操作

2.3.1 遍历整个列表用for

  • Python根据缩进来判断代码行与前一个代码行的关系,for语句末尾的冒号告诉Python,下一行缩进的代码是循环体的第一行。
# coding=utf-8
liebiao2=["你好","步步","身高"]
for a in liebiao2 :#这行之后,每个缩进的代码行都是这行循环的一部分。
    print(a)
print("结束了")

输出如下:

你好
步步
身高
结束了

2.3.2 range函数和List函数

  • 函数range(a,b)左闭右开。
  • list()函数把range函数转换成列表
# coding=utf-8
liebiao2=list(range(1,6))
print(liebiao2)
liebiao3=list(range(1,10,2))#从1开始,每次加2,不能超过10
print(liebiao3)

输出如下:

[1, 2, 3, 4, 5]
[1, 3, 5, 7, 9]

2.3.3 列表的最大最小值以及求和

# coding=utf-8
liebiao2=list(range(1,6))
print(min(liebiao2))#最小值
print(max(liebiao2))#最大值
print(sum(liebiao2))#总和

输出如下:

1
5
15

2.3.4 列表解析

# coding=utf-8
liebiao1=[ a**2 for a in range(1,4)]#a**2代表a的2平方
print(liebiao1)

输出如下:

[1, 4, 9]

2.3.5 切片

  • 使用列表的一部分,称之为切片。
  • 使用索引进行切片 列表名[a:b],从索引为a的元素到索引为b的元素,左闭右开区间哦。
  • 若不写a直接[:b],表示列表从头开始一直到索引为b的元素,左闭右开区间哦
  • 若不写b直接[a:],表示列表从索引为a的元素一直到列表最后一个元素。
# coding=utf-8
liebiao1=[1,2,3,4,5,6,7,8,9]
print(liebiao1[2:5])
print(liebiao1[:3])
print(liebiao1[-3:])#输出后三名
liebiao2=liebiao1[:]#通过切片复制列表1

输出如下:

[3, 4, 5]
[1, 2, 3]
[7, 8, 9]

2.4 元组

  • 不可变的列表被称为元组,用()定义元组。
yuanzu=(1,2,3,4,5,6)
print(yuanzu[0])#打印元组索引为0的元素。

输出如下:

1

修改元组会报错:

yuanzu[0]=10
print(yuanzu)#会报错,提示yuanzu[0]=10错误,元组不能被修改

输出如下(报错信息):

Traceback (most recent call last):
  File "E:\PycharmProjects\pythonProject\lianxi.py", line 4, in <module>
    yuanzu[0]=10
TypeError: 'tuple' object does not support item assignment
  • 遍历元组跟遍历列表是一样的
  • 虽然不能修改元组的元素,但可以给存储元组的变量赋值,也就是可以从新定义整个元组。
# coding=utf-8
yuanzu=(1,2,3,4,5,6)
yuanzu=(10,20,30)#重新定义元组
print(yuanzu)

输出如下:

(10, 20, 30)

2.5 设置代码格式

  • 建议每级缩进都使用4个空格,不要用Tab键。
  • 处理文档用制表符而不是用空格来缩进。不要混合使用制表符和空格。
  • 代码每行不超过80个字符,注释不超过72个字符

三)循环语句

3.1 if基本语句

  • 一个等号是赋值,两个等号是比较值是否相等,考虑大小写。
  • 函数lower()不会修改存储在变量中的值,因此进行这样的比较时不会影响原来的变量
# coding=utf-8
yuanzu=("A","B","C")
for a in yuanzu:
    if a.lower()=="b":
        print("成功")
    else:
        print("失败")

输出如下:

失败
成功
失败

3.2 条件测试

  • 检查是否不相等用!=
# coding=utf-8
a=1
print(a!=2)

输出如下:

True
  • 条件语句还可以进行各种数字的比较,大于等于小于…
  • 用and 检查多个条件,and前后都为True,结果才True
  • 用or检查多个条件,只要有一个为True,结果就为True
  • 检查特定值是否包含在列表中,用in
# coding=utf-8
a=[1,2,3]
print(2 in a)

输出如下:

True
  • 布尔表达式,只有True和False

3.3 不同的if语句

3.3.1 简单if语句

# coding=utf-8
name1=18
if name1>=18:
    print("我已经成年啦")

输出如下:

我已经成年啦

3.3.2 if-else语句

# coding=utf-8
name1=17
if name1>=18:
    print("我已经成年啦")
else:
    print("你还是小屁孩")

输出如下:

你还是小屁孩

3.3.3 if-elif-else语句

  • elif可以有多个
# coding=utf-8
name1=17
if name1>=18:
    print("我已经成年啦")
elif 10<name1<18:
    print("你是青年")
else:
    print("小屁孩")

输出如下:

你是青年

3.4 while循环

# coding=utf-8
#求模运算符(%)是一个很有用的工具,它将两个数相除并返回余数
#break结束循环,continue结束本轮循环,返回到循环开头开始下一轮循环
while 1:
    num = int(input("请输入一个数判断是否是偶数:"))
    if (num%2)!=0:
        print("奇数")
    else:
        print("偶数")
        break

四)字典

4.1 字典的定义

  • 定义字典用{key:value },字典可存储的信息几乎无限。字典是键值对的方式,用逗号隔开。
# coding=utf-8
zidian1={"nane":"张山","age":18}
  • 调用字典中的数据
# coding=utf-8
zidian1={"nane":"张山","age":18}
print(zidian1["nane"])
print(zidian1["age"])

输出如下:

张山
18

4.2 字典的使用

4.2.1 添加键-值对

# coding=utf-8
zidian1={"nane":"张山","age":18}
zidian1['性别']="女"
print(zidian1)

输出如下:

{'nane': '张山', 'age': 18, '性别': '女'}

4.2.2 修改字典

# coding=utf-8
zidian1={"name":"张山","age":18}
zidian1["name"]="妮妮"
print(zidian1)

输出如下:

{'name': '妮妮', 'age': 18}

4.2.3 删除字典中的键值对

# coding=utf-8
zidian1={"name":"张山","age":18}
del zidian1["name"]
print(zidian1)

输出如下:

{'age': 18}

4.2.4 由类似对象组成的字典

# coding=utf-8
zidian1={
    "name":"张山",
    "age":18,
    "xingbie":"女"
    }
print(zidian1)

4.2.5 遍历字典键值对

# coding=utf-8
zidian1={
    "name":"张山",
    "age":18,
    "xingbie":"女"
    }
for key,value in zidian1.items():
    print(key+"\t"+str(value))

输出如下:

name	张山
age	18
xingbie	女

4.2.6 遍历字典的键key和值

# coding=utf-8
zidian1={
    "name":"张山",
    "age":18,
    "xingbie":"女"
    }
for key in zidian1.keys():
    print(key)#键
    print(zidian1[key])#键对应的值

输出如下:

name
张山
age
18
xingbie
女

4.2.7 判断某个字是否在键值对中

# coding=utf-8
zidian1={
    "name":"张山",
    "age":18,
    "xingbie":"女"
    }
if "name" in zidian1.keys():#name是否在键中
    print("1")#是则打印1
if 18 in zidian1.values():#18是否在值中
    print("1")#是则打印1

输出:

1
1

4.2.8 遍历键,值

# coding=utf-8
zidian1={
    "name":"张山",
    "name1":"张山",
    "xingbie":"女"
    }
for key in sorted(zidian1.keys()): #按特定的顺序遍历键
    print(key+"这是键值对中的键")
for value in zidian1.values():
    print(value+"这是值,包含重复元素")
for value in set(zidian1.values()):
    print(value+"这是值,set方法是不包含重复元素")

输出如下:

name这是键值对中的键
name1这是键值对中的键
xingbie这是键值对中的键
张山这是值,包含重复元素
张山这是值,包含重复元素
女这是值,包含重复元素
女这是值,set方法是不包含重复元素
张山这是值,set方法是不包含重复元素

4.3 字典的嵌套

# coding=utf-8
alien_0={"color":"green","points":5}
alien_1={"color":"yellow","points":10}
alien_2={"color":"red","points":15}
aliens=[alien_0,alien_1,alien_2]#字典的嵌套

for alien in range(30):
    new_alien={"color":"green","points":5,"spend":"slow"} #字典嵌套
    aliens.append(new_alien)#把新生成的字典存入已经定义的列表中。
    
for alien in aliens[:5]:#修改列表中字典的数据
    if alien["color"]=="green":
        alien["color"]="yellow"
        alien["speed"]="medium"
        alien["points"]=10
    print(alien)
print("数据总条数:"+str(len(aliens)))

输出如下:

{'color': 'yellow', 'points': 10, 'speed': 'medium'}
{'color': 'yellow', 'points': 10}
{'color': 'red', 'points': 15}
{'color': 'yellow', 'points': 10, 'spend': 'slow', 'speed': 'medium'}
{'color': 'yellow', 'points': 10, 'spend': 'slow', 'speed': 'medium'}
数据总条数:33

4.4 在字典中存储列表

# coding=utf-8
love_languages={
    "王一":["java","c","python"],
    "王二":["html"],
    "王三":["python","java"]
}
for name,languages in love_languages.items():
    if len(languages)>1:
        print(name+"最喜欢的语言是:")
        for language in languages:
            print(language)
    else:
        for language in languages:
          print(name+"最喜欢的语言是:"+language)

输出如下:

王一最喜欢的语言是:
java
c
python
王二最喜欢的语言是:html
王三最喜欢的语言是:
python
java

4.5 在字典中存储字典

# coding=utf-8
users={
    "user1":{
    "name":"王一",
    "age":18
    },
    "user2": {
        "name": "王二",
        "age": 20
    }
}
for key,values in users.items():
    print(key+"的信息如下:")
    for name,age in values.items():
        print(name+str(age))

输出如下:

user1的信息如下:
name王一
age18
user2的信息如下:
name王二
age20

五)文件

  • import os
1、os.getcwd()函数:查看当前的工作目录,获取当前工作路径。os.chdir()函数:修改当前的工作目录
print(os.getcwd())
os.chdir("C:\\")#修改当前的工作目录
print(os.getcwd())

输出:

E:\CS\python\pythoncodes\lianxi01
C:\
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值