Python基础知识

'''

   第一部分:基础知识点巩固

        在编程之中,应保持注释的书写习惯,方便自己,方便他人
        选择简单的方法,使得代码更易维护,否则必须书写帮助理解的注释
        在学习的过程之中,应时常对基础知识进行巩固,直到可以随心使用这些知识
        将代码间隔开来,使用一个或多个空行进行操作,易于区分

'''


# 基础知识
print("Hello Python World!!!")  #直接输出--print()语句
message = 'Hello Python World!!!'  #使用变量,对变量进行复制,间接输出
print(message)
message = 'Hello World!!!'  #直接更改变量值,输出更改之后的值,覆盖之前的值
print(message)
message = "Hello World!!!"  #双引号和单引号都可表示为字符串
print(message)
#下面操作可以对单词需求进行更改
name = 'li hua'
print(name.title())  #变量名.title()  单词第一个字母实现变大写的作用
print(name.upper())  #变量名.upper()  单词全大写的作用
print(name.lower())  #变量名.lower()  单词全小写作用
first_name = 'li'
last_name = 'hua'
full_name = first_name + " " + last_name  #使用 + 实现对变量值的合并
print(full_name.title())
#制表符可以同时叠加使用
print('\tpython')  # \t 使用制表符 在前添加空格
print('\npython')  # \n 进行换行操作,\n在前为先换行在输出,\n在后为先输出再换行
message = ' li hua  '
print(message.rstrip().title())  #使用 rstrip()对字符串的末尾进行删除空格的操作
print(message.lstrip().title())  #使用 lstrip()对字符串的开头进行删除空格的操作
print(message.strip().title())  #使用 strip()对字符串的开头和末尾进行删除空格的操作
print(message)  #但这种操作是暂时的,如果需要永久更改,需要将这个值赋值到变量中去
print('"孔子曰:知之为知之,不知为不知,是知也"')  #双引号和单引号应交叉使用 外部用双内部就用单
name = '孔子'
message = '知之为知之,不知为不知,是知也'
print(name+"曰:"+message)  #合并进行输出,掌握合并的方法
num1 = 5
num2 = 3
#下列操作依次为 加减乘除 次方 地板除 优先级运算 操作
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)
print(num1 % num2)  #取余操作
print(num1 ** num2)
print(num1 // num1)
print((num1 + num2) * num2)
num3 = 0.5
num4 = 0.3
print(num3 + num4)  #浮点数运算,与整数相同
#不同类型不可同时进行相同操作,需转换为相同类型
age = 19
happy = "Happy "+str(age)+"rd birthday"  #19为整型,需准换成字符型
print(happy)


# 列表
# 用 [] 表示列表
name = ['jack', 'lisa', 'tom', 'lucy']  #访问列表操作,索引从0开始而不是1,这里的意思就是0代表第一个
print(name[0].title())
print(name[-1].title())  #若要从后往前访问元素,从-1开始索引
print('Hello ' + name[2].title() + ', Nice to meet you')  #列表也可进行合并操作
name[2] = 'tim'  #对列表元素进行修改,直接对想修改的元素索引赋值即可
print(name)
name.append('jony')  #使用 append() 在列表末尾添加元素
print(name)
name.insert(2, 'jeny')  #使用 insert() 在列表指定位置添加元素
print(name)
del name[3]  #使用 del 对列表指定元素进行删除
print(name)
name_poped = name.pop(3)  #使用 pop() 对列表指定位置进行删除,若未指定元素,默认为末尾元素
print(name)
print(name_poped)  #但依然可以对删除的元素进行访问
print(name_poped.title() + ' is my last classmate')  #对删除元素进行访问及其他操作(这可以运用到多个情况之下)
name.remove('jeny')  #使用 remove() 在不知道元素位置只知道元素值的时候使用,也可以进行删除操作,该操作只删除第一个指定的值(存在两个相同的时候只删除一个,循环可解决这种情况)
print(name)
nums = [6, 2, 3, 4, 1, 9]
nums.sort()  #使用 sort() 对列表元素进行永久排序
print(nums)
print(sorted(name))  #使用 sorted()进行临时排序
nums.reverse()
print(nums)  #使用 reverse() 对列表进行永久倒置排序
print(len(nums))  #使用 len() 对列表长度进行测量
for num in nums:
    print(num)  #使用 for循环遍历整个列表,输出所有元素
    print('亲爱的小朋友,你今年' + str(num) + '岁了\n')  #遍历列表也可进行合并操作,\n为换行符
print('生日快乐啊!')  #循环之后的操作,个性化,在循环外,故只执行一次
for i in range(1, 5):  #range()内为范围,左闭右开
    print(i)
numbers = list(range(1, 5))  #使用 range() 创建数字列表
print(numbers)
number = list(range(1, 10, 2))  #range内的数字依次表示 开始的值 结束后一位的值 步长(表示每个数字之间的距离)
print(number)
print(sum(number))  #使用 sum() 函数对列表内数据进行求和
digitals = []
for digital in range(1, 5):
    digitals.append(digital**2)  #在遍历内进行操作
print(digitals)
squares = [value**2 for value in range(1, 10)]  #更加简洁的一种操作
print(squares)
print(squares[5:8])  #列表的切片操作,针对需要使用列表的一部分,给予范围,若未给予范围,默认从第一位或者到最后一位
print(squares[-3:])  #也可以从后进行切片操作
for square in squares[3:5]:
    print(square)  #切片也可与遍历同时进行,因为切片操作之后,就已经成为一个列表
square_copy = squares[2:5]  #若要对切片之后的数据进行保存,可以对其进行赋值
print(square_copy)


# 元组
#
# 操作与列表相同
# 但元组内元素不可一旦确定不可修改,若要修改,可以重新对变量进行赋值


num = (1, 5)  #重新赋值操作
print(num)
num = (2, 5)
print(num)


# if语句
name = 'li hua'#条件为li hua 当条件为真时,执行if内的操作
age = 10
if name == 'li hua':
    print(name.title())
if name == 'li hua' and age == 10:  #使用 and 将条件联系起来,and 表示同时,只用条件同时满足时,才执行操作
    print(name.title())
if name == 'li hua' or age == 20:  #使用 or 将条件连接起来,or表示或者,只要一个条件满足,就执行操作
    print(name.title())
if 4 in squares:  #使用 in,判断存在
    print('IN')
if 5 not in squares:  #使用 not in,判断不存在
    print('NOT IN')
print(9 in squares)  #布尔表达式 True和False,真为true,假为false
#if-else语句
if name == 'li hua':  #if-else语句 if条件为真时执行if内的操作,为假,执行else内的操作
    print('Hello')
else:
    print('Get Out')
#if-elif-else语句
if name == 'xiao hong':  #if-elif-else语句,从上至下一次判断,为真执行操作,为假执行下一个条件的判断,elif个数可以随意增加,若都为假,执行else内的操作
    print('Beautiful')
elif name == 'li hua':
    print('Hello')
else:
    print('Who are you?')
for square in squares[3:5]:  #在循环内部进行判断操作
    if square == 3:
        print('Not In')
    else:
        print(square)
for num5 in numbers:  #列表循环,进行操作
    if num5 in squares:
        print(num5)
    else:
        print(' ')


# 字典
# 使用{} 表示字典
information = {'name': 'Li Hua', 'name': 'xiao hong', 'age': '19'}  #表示一个姓名键值对和一个年龄键值对
print(information['name'])
print(information['age'])
print(information['name'] + ' ' + information['age'] + '岁')  #也可进行合并操作
information['ID'] = '520114xxxxxxxxxxxx'
information['Home'] = 'Beijing'  #对字典进行添加信息的操作,可对空字典进行操作
print(information)
information['age'] = '20'  #对字典进行修改
print(information)
del information['Home']  #对字典进行删除的操作,删除时,键值对同时操作
print(information)
for k, v in information.items():  #对字典进行遍历操作,字典.items()  items表示键值对
    print(k)
    print(v+'\n')
for k in information.keys():  #对字典的键进行遍历,keys表示键
    print(k)
for v in information.values():  #对字典的值进行遍历,values表示值
    print(v)
for key in (information.keys()):  #对字典的键进行顺序遍历
    print(key)
for key in set(information.keys()):  #使用 set() 对其中的值进行消重
    print(key)
#嵌套操作
information1 = {'name': 'li hua'}  #将三个不同的字典保存在同一个列表之中,可以实现取出
information2 = {'name': 'xiao hong'}
information3 = {'name': 'li gang'}
information4 = {'name': 'xiao zhang, zhang zhang'}
information = [information1, information2, information3]
print(information)
print(information[1].values())  #实现对对应键值对的访问
for i in information:   #实现遍历寻找特定值后进行修改
    if i['name'] == 'li hua':
        i['name'] = 'xiao li'
print(information)
information = {                 #使用字典+列表的操作,使得键值的种类可以增多
    '第一位选手': ['li hua'],
    '第二位选手': ['xiao hong'],
    '第三位选手': ['xiao zhang', 'zhang zhang']
}
for key, values in information.items():
    print(key)
    for value in values:
        print(value)
    print('\n')
user = {                           #字典中加字典,更加简洁
    '第一位运动员': {
        '姓': '李',
        '名': '华',
        '国籍': '中国',
    },
    '第二位运动员': {
        '姓': '陈',
        '名': '少',
        '国籍': '中国',
    },
}
for key, value in user.items():
    print(key + value['姓'] + value['名'] + ',来自' + value['国籍'])
print('预祝他们能获得好成绩!')


# input()语句
# 由于需要自行输入,故注释
# #用户的输入
# #使用 input() 语句进行赋值
# num = input('李华最喜欢的数字是:')   #使用 int() 用于转化成整型操作,用于数字操作
# print('我也一样喜欢' + num)
# num1 = input('小红最喜欢的数字是:')
# print(num < num1)
#
#
# while循环语句
# num = True     #如果想结束循环,要么使条件为假,要么直接跳出循环
# while num:  #当条件为真的时,一直进行循环,直到条件为假
#     num = int(input('你选择的数字是:'))#用户自定义何时停止循环
#     if num == 1:
#         print('怎么会是1呢')
#         num = False   #使得条件为假
#     elif num == 2:     #break 跳出所有循环
#         print('怎么能是2呢')
#         break
#     elif num == 3:
#         print('3也不对')  #continue 跳出当前循环
#         continue
#     else:
#         print(num)
# num = [1, 2, 3, 4, 5]   #while循环用于列表的简单操作,将满足条件的元素放入其他列表之中
# num_confirmed = []
# while num:
#     num_poped = num.pop()
#     if num_poped == 2:
#         continue
#     else:
#         num_confirmed.append(num_poped)
# print(num_confirmed)
# information = {}   #while循环用于填充字典
# tiaojian = True
# while tiaojian:
#     name = input('名字')
#     age = input('年龄')
#     information[name] = age
#     tiaojian = input('yes/no')
#     if tiaojian == 'no':
#         tiaojian = False
# for name, age in information.items():
#     print(name, age)


#函数(用空行将函数隔开,易于区分,不易混淆)


def num():  #简单的定义和调用函数
    num = 5
    print(num)


num()


def name(your_name, age='18'):   #向函数传递信息   函数内的参数叫做形参 传入函数的叫做实参 所以本身有值的为实参,被赋值的为形参
    print('姓名是' + your_name.title() + ' ' + age + ' 岁')


name('li hua', '19')   # 传入顺序应对应相同,实参和形参的位置相同
name('xiao hong', '20')  #多次调用函数
name(your_name='li gang', age='22')  #关键字实参  直接实参赋值给函数内的形参
name('gou zi')   #默认值,直接给形参赋一个值,使之成为默认值,当实参未传入函数时,默认输出默认值,若没有先强调默认值,必须传入相应实参


def information(name, age, ID=''):   #ID默认为空,表示可以传入实参也可以不传,不会报错,针对没有信息的时候使用
    messsage = name.title() + ' ' + age + '岁'
    return messsage         #return 返回值,现将值存储在变量之中,返回变量


message = information('li hua', '20')
print(message)


def person(name, age):
    person_information = {'name': name.title(), 'age': age}         #返回字典的操作
    return person_information


person_information = person('li hua', '20')
print(person_information)
n=1
while n <= 5:   #函数和循环相结合
    person_information = person('li gang', '22')
    print(person_information)
    n += 1


def names(information):
    for name in information:#将列表传入函数
        if name == 'li hua':   #在函数内修改列表
            name = 'xiao ming'
        print(name)


name = ['li hua', 'xiao hong', 'xiao gang']
names(name[:])   #将复件进行操作,原件保持不变
print(name)


def name(*Names):    # *形参  可以传入多个实参
    for Name in Names:
        print(Name)


name('li hua', 'xiao hong', 'xiao gang')


def IDcard(name, age, **ID):      # ** 传递任意数量的实参
    IDs = {}
    IDs['name'] = name
    IDs['age'] = age
    for k, v in ID.items():
        IDs[k] = v
    return IDs
IDCARD = IDcard('li hua', '19',
                id='4324313',
                home='beijing')
print(IDCARD)

from information import IDc #调用同目录下的information模块,执行函数
print(IDc('li hua', '19', id='34124'))
import information  #调用模块下特定的函数
print(information.ID2('li hua', '19'))
from information import IDc as idc   # as 对函数进行重命名,可以缩短函数名长度,简洁
print(idc('li ming', '22', id='314141', home='guizhou'))
from information import*     #  *  表示直接导入模块中的所有函数
print(information.IDc('li hua', '19'))
print(information.ID2('li hua', '18'))


#面向对象编程   类和对象
#类就是函数的合并,将同类函数放在一起就成为类
class information():    #创建类
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def Hello(self):
        print('hello '+self.name.title())

    def birthday(self):
        print('happy ' + self.age + 'rd birthday')


His_information = information('li hua', '19')   #直接调用类内的函数
print(His_information.name.title())
His_information.Hello()
His_information.birthday()


class car():
    def __init__(self, year, name, model):
        self.year = year
        self.name = name
        self.model = model

    def get_car(self):
        print("The dream come true, I get my car,my car is " + self.name + ' ' + self.model + ', I get it in ' + self.year + '.')

    def miles(self, mile):
        self.mile = mile

class super_car(car):          #子类   拥有父类的操作
    def __init__(self, year, name, model):
        super().__init__(year, name, model)
        self.cost = 900000

    def costs(self):        #在子类中增加新的属性,区分于父类
        print('hong qi costs my ' + str(self.cost) + 'yuan')


My_own_car = car('2022', 'Ford', 'Mustang')
print(My_own_car.name)
My_own_car.get_car()
My_own_car.miles(20000)    #增加函数,实现自定义修改属性的值
print(My_own_car.mile)
My_second_car = super_car('2024', 'hong qi', '2024')
My_second_car.get_car()
My_second_car.costs()

#导入类和导入模块用法相同, from 类.py import 类




#文件和异常
with open('result.txt') as f:         #使用 with open() 在相同目录下打开文件
    fr = f.read()     #使用 read() 进行读取
    print('\n' + fr.strip())

with open('D:\pyth\Python学习基础\Python\Python_knowledge\Basic_knowledge\q.txt') as c:     #若打开的文件不在相同目录之下,需传入完整的文件路径
    cr = c.read()
    print(cr.strip() + '\n')

with open('go_alone.txt') as b:
    for line in b:
        print(line.strip())
print('\n')

with open('go_alone.txt') as v:                   #使用 readlines() 将文件内的语句保存在列表之中
    vl = v.readlines()
print(vl)
for line in vl:
    print(line.strip())
vll = ''                                     #使用文件内的内容
for line in vl:
    vll += line.strip()
if '生活' in vll:
    print('好好生活')
else:
    print('生活下去')

with open('go_alone.txt', 'r+') as b:          #写入文件  w 表示写入  r 表示读取 a 表示附加 r+ 表示读取和写入
    b.write('好好生活,等合适的时候我们再相遇')
    br = b.read()
print(br)


# try-except-else 代码块
# 也可放入函数进行操作
#自定义在错误时是否执行或者跳过当前错误直接执行下一个操作,一般在函数中,当传入数据中有错,是跳过错误还是执行下一个数据
try:                     #当try 语句里的操作是没有问题的时候,执行try内的操作,有问题时,执行except里的操作
    answer = 5/0
except ZeroDivisionError:                  #该语句可以判断代码具体出错的位置   ZeroDivisionError是该错误的名称
    print("知道是 0 你还除?")
else:                    # else 代码块 如果try内的语句没问题,将try成功的代码放入else之中
    print(answer)


try:
    with open('result.txt') as f:
        x = f.read()
except:
    pass           #如果 try 内的语句有问题,而又不想报错,在except内中 pass
else:
    c = x.split()
    z = len(c)
    print(z)


import  json       #使用 json 库   用于写入和读取文件的内容

word = '今晚月色好美'
with open('res.txt', 'w') as f:              #使用 json.dump()写入文件
    json.dump(word, f)

with open('res.txt') as f:                #使用 json.load() 导出文件
    nums = json.load(f)
print(nums)

'''
测试程序(重要)  

import unittest
------
程序...
------
unittest.main()
结果
----------------------------------------------------------------------
Ran 1 tests in 0.000s

OK
返回这种类型的即为测试成功,程序出现异常,需修改错误代码

了解unittest库
assertEqual[a,b] --->  核实a==b
assertNotEqual[a,b]  --->  核实a!=b
assertTrue(x)  --->  核实x为True  
assertFalse(x)  --->  核实x为False
assertIn(item,list)  --->  核实item在list中
assertNOtIn(item,list)  --->   核实item不在list中
'''

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值