python基础

Python基础

1.数据类型和变量

整数(二进制前缀Oo,八进制前缀Ob,十六进制前缀Ox)

浮点数(即小数,另外,0.000012用科学计数法表示是:1.2e-5

字符串(是用单引号'或双引号"括起来的任意文本)

输出多行字符串时,在.py文件中可以 :print('''nihao

nihao

nihao

nihao''')#记得是三个单引号

布尔值(一个布尔值只有两种值,即True或False,与布尔代数表示一致)

空值(用None表示,切记None与0不同)

变量(变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头)

2.字符串和编码

ASCII编码:是1个字节

Unicode编码:通常是2个字节

python的字符串

ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

对字符串进行格式化:

#%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。

print('hi,%s,you have $%d.'%('Michael',10000000))

# %还可以用作转义符号

print('hello %s,today is %s %%'%('张三','星期三'))

还可以用format()方法

3.list和tuple

list:是python内置的一种列表,其中的元素可以随意地增减(通过下标索引获取元素)

eg: classmate=['class1','class2','class3']

相关的函数:len()获取list元素个数

pop(),删除末尾元素(pop(i)删除指定下标的元素)

append(),在list末尾追加元素

insert(i,'data'),在指定位置插入元素

tuple:序列表——元组,注意,tuple一旦初始化就不能修改

eg:tuples=('abs','adc')

但是,如果tuple中含有list,则list中的元素可以修改

eg:TUPLES=('abs','adc',['asd','zxc'])#这种情况下的'asd'和'zxc'元素是可以被修改的

3.条件判断

if...else...语句

倘如需要进行多种判断,则可以使用if...elif........elif...else语句

eg:

age=18

if(age>12):

    print("sorry")

elif(age>=18):

    print("yes")

else:

    print("more again")

注意: 该语句的执行特点是:从上往下判断,所以结果是打印"sorry"

4.循环

一种是for...in循环

另一种是while循环

注:continue语句是结束当前循环,然后进入下一轮循环,break是跳出总循环

另外,pass的作用有:空语句(什么都不做),保证格式完整,保证语义完整(即当函数

体或者循环体的内容尚未补充时,可以用pass来替代占个位置)。

5.使用dict和set

dict(全称dictionary),使用键值存储,具有极快的查找速度

d={'Michle':95,'joh':96,'Mandy':95}

print(d['Mandy'])#打印结果是:95

set和dict类似,不过set不存储value,而且key不能重复,有重复的会自动过滤

s=set([1,1,2,3,4])

print(s)#打印结果是:{1,2,3,4}

日期转换

1.先导入库:import datetime

2.获取当前日期和时间:now_time = datetime.datetime.now()

3.格式化成我们想要的日期:strftime()

比如:“2022-07-05”:datetime.datetime.now().strftime('%Y-%m-%d')


#将字符串转换成日期
string = '2022-07-05 12:30:30'
time1 = datetime.datetime.strptime(string,'%Y-%m-%d %H:%M:%S')
print(time1)

#datetime转字符串
time2=datetime.datetime.strptime(time1,'%Y-%m-%d %H:%M:%S')
print(time2)

函数

1.函数的调用

要调用一个函数,需要知道函数的名称和参数,例如:

#求绝对值的函数abs()

print(abs(-100)) #结果打印100

数据类型转换函数:int();float();bool();str()

2.定义函数

定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

eg:#定义my_abs()函

函数的参数

def power(x):#其中的x就是位置参数
​
return x*x

默认参数:

def power(x,n=2):#其中n=2是默认值
​
    s=1
​
    while n>0:
​
        n=n-1
​
    s=s*x
​
    return s
​
print(power(2,3))#其中3这个参数如果不传入,那么就会默认为2

这里需要注意的是,默认参数必须放在必选参数(例如本函数的x)的后面;而且,默认参数必须指向不变对象!!

可变参数:

由于参数个数不确定,我们首先想到可以把a,b,c……作为一个list或tuple传进来,这样,函数可以定义如下:

def calc(a):#将参数用list或者tuple传进来
​
    sum=0
​
    for n in a:
​
        sum=sum+n*n
​
    return sum
​
print(calc([1,2,3]))#结果是打印:14

当然,我们也可以不传入list或者tuple,此时只需要在参数前面加一个*号,这是参数就可以传入一个或者多个。例如:

def calc_1(*c):
​
    sum=0
​
    for m in c:
​
        sum=sum+m*m
​
    return sum
​
print(calc_1(1,2,3))#结果是打印:14

此时参数不能再传入list或者tuple,但是可以在list或者tuple前面加一个*,将其元素变成可变参数

关键字参数:

#关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。例如:

def person(name,age,**kw):

    print('nmae:',name,'age:',age,'other:',kw)

datas={'city':'beijin','jod':'student'}

person('John',18,**datas)

表示定义关键字参数,在dict前加表示将这个dict的元素变成关键字参数传入

命名参数:

命名关键字参数需要一个特殊分隔符后面的参数被视为命名关键字参数。

def person_1(name,age,*,city,job):

    print(name,age,city,job)

person_1('jack',24,city='beijing',job='student')#除了city和job,其他的都无法被传入

命名参数传入时必须带上参数名,否则会报错

参数组合

在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

递归函数 递归函数即函数内部调用本身。例如

def fact(n):#计算阶乘n!

if n==1:
​
    return 1
​
return n*fact(n-1)#在此处调用本身
print(fact(10))

模块

为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。

模块的好处:

最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。

文件读取

读和写文件

open() 将会返回一个 file 对象,基本语法格式如下:

open(filename, mode)

        filename:包含了你要访问的文件名称的字符串值。

        mode:决定了打开文件的模式

文件对象方法

①f.read()

为了读取一个文件的内容,调用 f.read(size), 这将读取一定数目的数据, 然后作为字符串或字节对象返回。size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回。

②f.readline()

f.readline() 会从文件中读取单独的一行。换行符为 '\n'。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。

③f.readlines()

f.readlines() 将返回该文件中包含的所有行。

如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。

④f.write()

f.write(string) 将 string 写入到文件中, 然后返回写入的字符数。

⑤f.tell()

f.tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。

⑥f.close()

在文本文件中 (那些打开文件的模式下没有 b 的), 只会相对于文件起始位置进行定位。

当你处理完一个文件后, 调用 f.close() 来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。

错误和异常

异常以不同的类型出现,这些类型都作为信息的一部分打印出来: 例子中的类型有 ZeroDivisionError,NameError 和 TypeError。错误信息的前面部分显示了异常发生的上下文,并以调用栈的形式显示具体信息。

异常处理

我们通常用try...except....对异常进行捕获,系统会执行try中的语句,当系统检测到异常之后,就会和except后面的异常类型进行匹配,如果相同,就会执行except中的语句;如果没有检测到异常,就不会之执行except中的语句。当然一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。处理程序将只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组。

eg:

except (RuntimeError, TypeError, NameError):
    ......

另外,还可以使用try...except...else语句,当try中的语句没有发生异常时,else中的代码就会被执行。还可以再else后面加上finally,finally中的语句,不管try中有没有发生有异常都会执行。

eg:

try:
    x=int(input())
    y=int(input())
except ValueError:
    print("您输入的不是整数")
else:
    print("输入正确")
    print(x+y)
finally:
    print("测试完成")

抛出异常

Python 使用 raise 语句抛出一个指定的异常。

raise语法格式如下:raise [Exception [, args [, traceback]]]

eg:

r1=4
r2=1
if r2<=4:
    raise Exception('r2的值小于r1,r1的值是{},r2的值是{}'.format(r1,r2))

自定义异常

可以通过创建一个新的异常类来拥有自己的异常。异常类继承自 Exception 类,可以直接继承,或者间接继承

class MyError(Exception):
        def __init__(self, value):
            self.value = value

        def __str__(self):
            return repr(self.value)


try:
    num = input("请输入数字:")
    if not num.isdigit():  # 判断输入的是否是数字
        raise MyError(num)  # 输入的如果不是数字,手动指定抛出异常
except MyError as e:
    print("MyError:请输入数字。您输入的是:", e.value)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值