menu ChaYedan
Python基础知识(一)
458 浏览 | 2020-01-07 | 阅读时间: 约 6 分钟 | 分类: Python | 标签: Python
请注意,本文编写于 996 天前,最后修改于 831 天前,其中某些信息可能已经过时。

注释

  • 单行注释:#号
  • 多行注释:3对双引号或者单引号(‘’‘’‘’)(""" """)
  • 快捷键为ctrl+/

变量

  • 通过type(变量或数据)可以获得数据的类型,返回的是变量的类
result=type(100)

变量名的规范

由字母,下划线和数字组成,且不能由数字开头在Python中区分大小写不能使用关键字

关键字:Python中预留的单词

  1. 导入python解释器提供的工具包:import keyword
  2. 调用工具包中的功能得到关键字列表:keyword.kwlist

有软性规则(书写规范)

  • 驼峰命名法
  • 每个单词都小写,单词之间用下划线隔开

输出

print()函数:会在后面自动加一个换行

格式化输出

格式符号转换
%c字符
%s字符串
%d有符号十进制整数
%u无符号十进制整数
%o八进制整数
%x十六进制整数(小写字母0x)
%X十六进制整数(大写字母0X)
%f浮点数
%e科学计数法(小写'e')
%E科学计数法(大写“E”)
%g%f和%e 的简写
%G%f和%E的简写

例如:

  • print("我的年龄是%d岁"%age)
  • print("我的姓名是%s,我的年龄是%d岁"%(user_name,age))

输入

input()函数:从键盘中录入的数据是字符串数据

input("请录入一个信息")

算数运算符

  • +

加法

  • -

减法

  • *

乘法

  • /

除法

  • %

取模,就是取余数

  • //

整除,取整

  • **

幂指数

  • 字符串与整数运算

字符串*n:将字符串重复n次

字符串+字符串:将两个字符串连接起来

赋值运算符

  • +=
  • -=
  • *=
  • /=
  • %=
  • **=
  • //=

关系运算符

  • 大于>
  • 小于<
  • 等于==
  • 大于等于>=
  • 小于等于<=
  • 不等于!=

运算出来时是一个布尔类型的值

数据类型转换

函数说明
int(x [,base ])将x转换为一个整数
float(x )将x转换为一个浮点数
complex(real [,imag ])创建一个复数,real为实部,imag为虚部
str(x )将对象 x 转换为字符串
repr(x )将对象 x 转换为表达式字符串
eval(str )用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s )将序列 s 转换为一个元组
list(s )将序列 s 转换为一个列表
chr(x )将一个整数转换为一个Unicode字符
ord(x )将一个字符转换为它的ASCII整数值
hex(x )将一个整数转换为一个十六进制字符串
oct(x )将一个整数转换为一个八进制字符串
bin(x )将一个整数转换为一个二进制字符串

条件判断语句

  • if 关系表达式

以缩进为其他语言的大括号

if age>=18:
    print("已经成年")
  • if...else...
if age >= 18:
    print("已经成年")
else:
    print("未成年")
  • if...elif...else

    if age >= 18:
        print("已成年")
    elif age >=16 :
        print("已青年")
    else :
        print("未成年")
  • 三目运算符

逻辑运算符

  • and
  • or
  • not

True 非0的数字,但在Python中最好不要这么用

随机数

随机一个1到10的整型随机数

import random

num = random.randint(1, 10)

循环语句

  • while

    while num < 5:
        print(num)
  • for

in后面可以是表达式,也可以是容器

for n in range(1, 10):  # range是左闭右开区间[1,10)
    print(n)
  • break

跳出当前循环

  • continue

开始下一次循环

  • for...else

当for循环中的代码不是通过break结束的,将执行else中的代码

字符串

用一对单引号或者双引号,或者3对单引号引住的任何内容都是字符串。

普通输出:print("name")

Python 3.6以后可用f-string写法,大括号里面可以写表达式

f_string = f"姓名是{name}, 年龄是{age}"
print(f_string)

字符串下标(索引):跟C语言的字符数组一样

字符串切片:截取字符串,复制字符串中的一部分得到一个新的字符串。

格式:

​ 字符串名[开始索引:结束索引:步长]

备注:

  • 步长默认为1
  • 如果是截取到最后一个字符,可以不写结束索引
  • 如果是从第一个字符截取,可以不写开始索引
  • 索引可以为负数。倒数第一个元素的索引是-1
s="hello python"
str = s[2:5]

得到的结果为llo,即不包含结尾索引的元素

常用方法

  • find(查找的字符串,开始位置,结束位置)

检测 str 是否包含在 mystr中,如果找到则返回开始的索引值,否则返回-1

mystr.find(str, start=0, end=len(mystr))
  • index

跟find()方法一样,只不过如果str不在 mystr中会报一个异常.

mystr.index(str, start=0, end=len(mystr)) 
  • count

返回 str在start和end之间 在 mystr里面出现的次数

mystr.count(str, start=0, end=len(mystr))
  • split

以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串。返回的结果是列表

mystr.split(str=" ", 2)    
  • partition

把mystr以str分割成三部分,str前,str和str后。返回的结果是元组

mystr.partition(str)
  • isalpha

如果 mystr 所有字符都是字母 则返回 True,否则返回 False

mystr.isalpha()  
  • isdigit

如果 mystr 只包含数字则返回 True 否则返回 False.

mystr.isdigit() 
  • isalnum

如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False

mystr.isalnum()  
  • isspace

如果 mystr 中只包含空格,则返回 True,否则返回 False.

mystr.isspace()   
  • isupper

判断字符串中的字母是否都是大写,中间有空格和数字都无所谓。结果返回true或者false

mystr.isupper()
  • islower

跟isupper一样,判断是否小写

  • startswith

检查字符串是否是以 hello 开头, 是则返回 True,否则返回 False

mystr.startswith(hello)
  • endswith

跟startwith一样

  • replace

把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.

mystr.replace(str1, str2,  mystr.count(str1))
  • upper()

将小写字母转换为大写字母

  • lower()

将大写字母转换为小写字母

  • strip()

默认去掉左右的空格

  • just(字符数)

字符串对齐。ljust为左对齐,rjust为右对齐,center()为中心对齐

  • join

mystr 中每个元素后面插入str,构造出一个新的字符串,返回为字符串类型

mystr.join(str)

列表(list)

跟C语言的数组一样,但与数组不同的是,列表可以存储任意类型的数据。

定义格式

用中括号括住的数据

namesList = ['xiaoWang','xiaoZhang','xiaoHua']

每个元素都有自己的索引。可以根据索引进行增删改查

相关函数

统计:

  • len(列表名):得到列表的长度
  • count(数据):统计在列表中数据出现了几次

增:

  • append(数据):在列表的最后添加元素
  • insert(index, object):在指定位置index前插入元素object
  • extend(列表名):通过extend可以将另一个集合中的元素逐一添加到列表中

查:

  • in(存在),如果存在那么结果为true,否则为false
  • not in(不存在),如果不存在那么结果为true,否则false
  • index(数据,区间)
#待查找的列表
    nameList = ['xiaoWang','xiaoZhang','xiaoHua']

    #获取用户要查找的名字
    findName = input('请输入要查找的姓名:')

    #查找是否存在
    if findName in nameList:
        print('在字典中找到了相同的名字')
    else:
        print('没有找到')
>>> a = ['a', 'b', 'c', 'a', 'b']
>>> a.index('a', 1, 3) # 注意是左闭右开区间
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 'a' is not in list
>>> a.index('a', 1, 4)
3

改:

  • 通过索引直接进行修改

删:

  • del:根据下标进行删除
  • pop:删除最后一个元素
  • remove:根据元素的值进行删除
  • clear:全部一次性清空

排序:

  • sort
  • reverse

sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小

>>> a = [1, 4, 2, 3]
>>> a
[1, 4, 2, 3]
>>> a.reverse()
>>> a
[3, 2, 4, 1]
>>> a.sort()
>>> a
[1, 2, 3, 4]
>>> a.sort(reverse=True)
>>> a
[4, 3, 2, 1]

遍历:

循环遍历,跟字符串一样

列表推导式

每次循环得到一个数字x,然后将x添加到列表中

list1 = [x for x in range(1, 5) if x % 2 == 0]

其中for前的x可以为表达式

元组

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

注意

如果一个元组中只有一个元素,需要打在元素的后面加一个逗号

字典(dict)

info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}
  • 字典和列表一样,也能够存储多个数据
  • 列表中找某个元素时,是根据下标进行的
  • 字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'id'、'sex')
  • 字典的每个元素由2部分组成,键:值。例如 'name':'班长' ,'name'为键,'班长'为值

定义格式

字典名 = {key1: value1, key2: value2}

相关函数

增:

字典名[新的key] = 值

修改:

只能修改value,不能修改key

字典名[已存在的key] = 新的值

删:

通过key删除

  • pop

语法:

pop(key[,default])

用法:

>>> x = {'a':1,'b':2}
>>> x.pop('a')
1
>>> x
{'b': 2}
  • popitem

不需要传参数,删除最后一个键值对

  • del

    #!/usr/bin/python
    
    # -*- coding: UTF-8 -*-
    
    dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
    
    del dict['Name']  # 删除键是'Name'的条目
    
    del dict          # 删除字典
  • clear

用来清除字典中的所有数据,因为是原地操作,所以返回None

>>> f = {'key':'value'}
>>> a = f
>>> a
{'key': 'value'}
>>> f.clear()
>>> f
{}
>>> a
{}

当原字典被引用时,想清空原字典中的元素,用clear()方法,a字典中的元素也同时被清除了。

查:

  • 通过key查找
  • 用get方法

    info = {'name':'吴彦祖','age':18}
    
     print(info['age']) # 获取年龄
    
     # print(info['sex']) # 获取不存在的key,会发生异常
    
     print(info.get('sex')) # 获取不存在的key,获取到空的内容,不会出现异常

遍历:

  • 调用key方法得到key组成的列表,再用for循环遍历字典
  • 调用items方法得到所有键值对组成的列表,返回的结果是键值对元组组成的列表

字典的无序是指数据存进字典的顺序跟取出字典的顺序不一致

有序字典:OrderedDict

python3.5 字典是无序的

python3.6 只有显示出来的是有序的 但实际上 也是无序的

python3.7之后 字典就是有序的

有序字典应该先 导入

from collections import OrderedDict
OrderedDict就是一个类 需要需用 先进行 实例化
od = OrderedDict()
然后和字典的用法是一样的
from collections import OrderedDict
#创建字典对象
od = OrderedDict()
od['k1'] = 'v1'
od['k2'] = 'v2'
od['k3'] = 'v3'
for k, v in od.items():
 print('k={},v={}'.format(k, v))

显示的结果就是

k=k1,v=v1
k=k2,v=v2
k=k3,v=v3
这就是有序字典了  有序字典就是按照插入数据的顺序输出的
知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

发表评论

email
web

全部评论 (暂无评论)

info 还没有任何评论,快来留言吧!