栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python基础知识

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python基础知识

本文规划了解学习python的路线,总结学习python需要具备的基础知识并应用。

(赶快卷起来吧!代码全部分段复制可执行,点个赞呗!)

第一部分:学习路线:

第一步,首先明白你为什么学习python,了解学习python的本质:实现功能,方便人的生活等。

第二步,安装python的作业本——解释器(python.exe,anaconda,pycharm社区版),开始接触python语言的基础语法,实现小功能。涉及变量,输入输出函数(input(),print()),逻辑语句(if...else...,while...else...,for...in...)等,然后学习基本数据类型,涉及九种数据类型,同时兼顾计算机底层原理易于理解python的知识。这样你就有了一个好的基础。

第三步,开始学习深一点的python语法,实现比较复杂的功能。涉及函数(内置函数,自定义函数),模块(内置模块,其他导入模块)。学习之后你就对python有了自己的理解。比如用于爬虫的re模块,数学计算的模块numpy,数据分析模块pandas,数据可视化模块matplotlib,机器学习模块sklearn,科学计算的模块scipy等等。python强大的原因就是模块多,类库多。

第四步,高层次的python(我差距很大,仅为现阶段认知)。学习面向对象的解释型通用型的脚本编程语言。进入自己的领域前端开发,web开发,爬虫开发,自动化运维,数据挖掘,人工智能。根据你感兴趣的方向发展下去。做出你的贡献!

第二部分:基础知识:    1、 交互,基本条件语句if,基本循环语句while
# -*- coding: utf-8 -*-
"""
Created on Sat Oct  2 10:02:17 2021
初次体验
    交互
    条件语句if用户登录
    循环语句while用户登录
    循环语句while猜数字升级版  
字符串
    字符串的格式化,
    字符串编码压缩,解压
习题
    基本条件语句if
    基本循环语句while
    思考1-2+3-4+5...100结果
@author: lx
"""

#用交互输入input,(不换行)输出print,字符串格式化format,变量。

print("what's your name?")
name = input("请输入你的名字:")
print("my name is {0}" .format(name))
print("hello!",name,end="")
print(",I'm smart man")


#用条件语句if实现用户登录,判断用户名'helin'


user = input("请输入用户名:")

if user == "helin":
    print("登录成功")
else:
    print("登录失败")


#用循环语句while实现用户登录,多次输入,判断是否登录成功。登录失败,提醒剩余次数。


print("开始登录")
num = 1
while num <= 3:
    user = input("请输入用户名:")
    pwd = input("请输入密码:")
    
    if user == "helin" and pwd == "0612":
        print("登录成功")
        break
    else:
        ##num=3
        # num = num - 1
        # print("登录失败","剩余登录次数为",num) 
        massage = "登录失败,你还有{}次机会" .format(3-num)
        num = num + 1
        print(massage)


#猜年龄游戏升级版,最大三次机会,最后询问是否再玩一次


count = 0
while count < 3:
    count = count + 1
    #print(count)
    age = int(input("请输入猜测的年龄:"))
    
    if age == 21:
        print("猜对了!")
        break
    # else:
    #     print("猜错了。")
    elif age > 21:
        print("大了")
    elif age < 21:
        print("小了")
        
    if count == 3:
        print("很遗憾,猜错了")
        choice = input("是否还想继续?(y/n)")
        if choice == "y":
            count = 0
        elif choice == "n":
            print("游戏结束。")
            break
        else:
            print("输出错误")


#字符串的格式化,
'''
%形式(需要使用占位符,可用内容或者变量接受;可以同时接受多个;可以给占位符命名,以键值对形式接收。)可在变量作为模板格式化
.format(用{}表示占位符,占位默认从0开始,也可用内容或者变量接受,也从0开始;可以给占位符命名,以赋值形式接收)可在变量作为模板格式化
.f(在{}里面直接输入接收内容或变量;可以显示公式;可以进行进制转化;可以使用函数)
'''

#字符串压缩为字节

date = '字节byte'
transform = date.encode('utf-8')
print(transform)#b'xe5xadx97xe8x8ax82byte'
#文件操作
file_object = open('lod.txt',mode = 'wb')   #打开文件

file_object.write(transform)     #写入内容

file_object.close()     #关闭文件

#字节解压为字符串
old = transform.decode('utf-8')
print(old)#字节byte

###################################################################################

#基本条件语句if

#提示用户输入用户名和密码,用户名等于“hl“且密码等于‘’0206‘’就会输出登录成功;否则登录失败。
user = input('输入用户名:')
pwd = input('输入密码:')

if user == 'hl' and pwd == '123':
    print('登录成功')
else:
    print('用户名或密码错误')

#猜数字,提示用户输入一个数字,判断数字等于10,输出猜对了;数字大于10,输出大了;数字小于10,输出猜小了
num = int(input('输入猜测的数字:'))

if num == 10:
    print('猜对了')
elif num > 10:
    print('猜大了')
else:
    print('菜小了')

#提示用户输入数字,判断为偶数输出是偶数;否则输出是奇数
num = input('输入数字')

if int(num) % 2 == 0:
    print('是偶数')
else:
    print('是奇数')


#基本循环语句while

#猜数字改进版,提示用户输入数字后,判断大小是否为10,输出猜大了,或猜小了,或是猜对了。
#如果猜对了跳出循环;否则继续猜。
date = True
while date:
    num = int(input('猜测数字:'))
    
    if num == 10:
        print('猜对了')
        date = False
    elif num > 10:
        print('猜大了')
    else:
        print('菜小了')

#输出1-100的整数
num = 1
while num < 101:
    print(num,end = 't')
    num = num + 1

#输出1-10,跳过7不输出。
num = 1
while num < 11:
    if num != 7:
        print(num)
        
    num = num + 1

#输出1-100的奇数
num = 1
while num < 101:
    if num % 2 == 1:
        print(num)
    num = num + 1

#输出1-100的偶数
num = 1
while num < 101:
    if num % 2 == 0:
        print(num)
    num = num + 1

#求1-100整数和
num = 1
total = 0
while num <= 100:
    total = total + num
    num += 1
print(total)

#输出10-1的整数
num = 10
while num > 0:
    print(num)
    num -=1


#思考题


#思考1-2+3-4+5...100结果
total = 0
num = 1
while num <= 100:
    if num % 2 == 1:
        total = total + num
    else:
        total = total - num
    num = num + 1    
print(total)      

#思考1-2+3-4+5...100=-50
total = 0
num = 1
while num < 101:
    if num == 100:
        total = total - num
        print(num,end="=")
    elif num % 2 == 1:
        print(str(num)+'-',end="")
        total = total + num
    else:
        print(str(num)+'+',end="")
        total = total - num
    num += 1
print(total)

total = 0
num = 1
while num < 101:
    if num == 1:
        total = total + num
        print(num,end="")
    elif num % 2 == 1:
        print('+'+str(num),end="")
        total = total + num
    elif num % 2 == 0:
        print('-'+str(num),end="")
        total = total - num
    num += 1
print('=',total)
2、字符串的方法练习
"""
独有方法
        #登陆验证码判断
        #数据拼接
    循环遍历
    for,if,range结合字符串功能使用
公有方法
        #倒计时
        #用户输入文本,统计出现次数,输出结果。
        #提取用户输入的数字,相加输出
"""
#登陆验证码判断

import random

code = random.randrange(1000,9999)  #生成验证码
massage = '欢迎登陆nb系统,手机号为{}的验证码为{}'.format(11123456789, code)
print(massage)

tel = int(input('请输入验证手机号:'))
num = int(input('请输入验证码:'))

if tel == 11123456789 and num == code:
    print('登陆成功')
else:
    print('登陆失败')

#数据拼接

date_list = []
while True:
    hobby = input('请输入你的爱好(Qq退出):')
    if hobby.lower() == 'q':
        break
    date_list.append(hobby)
    
result = ','.join(date_list)
print(result)    

#遍历= 索引+循环

text = '欲戴王冠,必承其重。'

#while遍历
index = 0
while index < len(text):
    print(text[index])
    index += 1
    
#for循环,变量接收
for item in text:
    print(item)

#for + range(),创建一个列表
for index in range(len(text)):
    #print(index)        #字符串的索引下标
    print(text[index])
    
#倒序
for item in range(9,-1,-1):
    #print(item)
    print(text[item])

###############################################################################

#倒计时

for num in range(3,0,-1):
    text = '倒计时{}秒'
    print(text.format(num))

#用户输入文本,统计出现次数,输出结果。

text = input('请输入')
count = 0       #相当于计数器
for item in range(len(text)):
    if text[item] == 'a':
        count += 1
print('文本中包含{}次字母a'.format(count))

#提取用户输入的数字,相加输出

#思路:对用户输入的文本每一个字符都用isdecimal()判断,是数字的转化为字符串连接起来,将字符串的数字用int()转化相加
num1 = input('请输入')
num2 = input('请输入')
value = ''
for item in range(len(num1)):
    if num1[item].isdecimal():
        value += num1[item]

value = ''
for item in range(len(num2)):
    if num2[item].isdecimal():
        value += num2[item]

total = int(value) + int(value)
print(total)


#思路:对用户输入的文本每一个字符都用isdecimal()判断,是数字的存放在列表中,最后用''.join()连接,将字符串的数字用int()转化相加
num1 = input('请输入')
num2 = input('请输入')

num_list1 = []
for item in num1:
    if item.isdecimal():
        num_list1.append(item)

num_list2 = []
for item in num2:
    if item.isdecimal():
        num_list2.append(item)

print(int(''.join(num_list1)) + int(''.join(num_list2)))
 3、列表元组的方法练习
"""   
列表     
        #综合,创建用户列表,列表的嵌套,动态列表
        #for +range找出能被3 整除的数,追加到列表
        #去除列表元素的两边空格,找出列表中以'a'开头的,追加到列表输出
        #将'陕K'字车牌找到,放入列表,输出车牌数量
元组
        #动态创建用户添加到列表,实现用户登录判断
        #生成扑克牌
"""
#综合,创建用户列表,列表的嵌套,动态列表

user_list = []

while True:
    user = input('请输入用户名(q):')
    pwd = input('请输入密码(q):')
    if user.lower() == 'q' or pwd.lower() == 'q':
        break
    date = []
    date.append(user)
    date.append(pwd)
    user_list.append(date)

print(user_list)


#简化
user_list = []

while True:
    user = input('请输入用户名(q):')
    pwd = input('请输入密码(q):')
    if user.lower() == 'q' or pwd.lower() == 'q':
        break
    date = [user,pwd]           #生成动态列表
    user_list.append(date)

print(user_list)

    
#for +range找出能被3 整除的数,追加到列表

date_list = []
for i in range(0,51):
    if i == 0:
        continue
    # print(i)
    date = i % 3 == 0
    if date:
        date_list.append(i)
print(date_list)


#去除列表元素的两边空格,找出列表中以'a'开头的,追加到列表输出

li = [' abb ','cpdd ','yyds','xswl ','cnmd','ay ' ]
date_list = []
for i in li:
    date = i.strip()
    if date.startswith('a'):
        date_list.append(date)
print(date_list)


#将'陕K'字车牌找到,放入列表,输出车牌数量

car_list = ['陕K66666','陕A99999','蒙A88888','陕K12345','陕K67890']
date_list = []
# count = 0
for i in car_list:
    if i.startswith('陕K'):
        date_list.append(i)
#         count += 1
# print(count)
print(date_list)
print(len(date_list))

###############################################################################

#动态创建用户添加到列表,实现用户登录判断

    #用户创建自己的账号
user_list = []      #存放用户信息[('name','123'),('user','pwd')]

while True:
    user = input('创建用户名(q):')
    pwd = input('创建密码(q):')
    if user.lower() == 'q' or pwd.lower() == 'q':
        break
    date = (user,pwd)       #生成动态元组
    user_list.append(date)

print(user_list)

    #创建好后,用户登录
print('登录程序')
user = input('请输入用户名(q):')
pwd = input('请输入密码(q):')
judge = False
for item in user_list:      #获取列表元素(元组)
    if item[0] == user and item[1] == pwd:
        judge = True
        break
if judge:
    print('登录成功')
else:
    print('登录失败')

        
#生成扑克牌

#扑克颜色
color_list = ['红桃','方块','黑桃','梅花']

#扑克大小
num_list = []
for num in range(1,14):
    num_list.append(num)

#最终扑克牌
result = []

for color in color_list:
    for num in num_list:
        card = (color,num)
        result.append(card)

print(result)
4、集合字典的方法练习 
"""
集合
        #代码实现:用户循环输入,输入已经存在于集合,添加到新列表;输入不存在,添加到原集合
        #模拟用户信息录入,已经录入的不会再次录入。
        #列表去重
字典
        #对两个变量拼接,输出格式信息
        #用户循环输入格式字符串:asd|123,将内容分割为键值得形式存放于字典
        #将上面列表键放在key_list,值放在value_list
        #将列表数字大于66的放入键为k1的值中,小于66的放入键为k2的值中
        #初级综合案例
"""

#代码实现:用户循环输入,输入已经存在于集合,添加到新列表;输入不存在,添加到原集合。

date_set = {'helin','wangbaoying','heyuxuan'}
date_list = []
while True:
    date = input('请输入(q):')
    if date == 'q':
        break
    if date in date_set:
        date_list.append(date)
    else:
        date_set.add(date)
print(date_set)
print(date_list)

#模拟用户信息录入,已经录入的不会再次录入。

user_set = set()

while True:
    name = input('请输入姓名:(q)')
    age = input('请输入年龄:(q)')
    if name == 'q' or age == 'q':
        break
    user = (name,age)
    if user in user_set:
        print('已录入')
    else:
        user_set.add(user)
print(user_set)

#列表去重

date_list = [11,22,33,11,22,33,456789]
new = set(date_list)#变为集合
date_list = list(new)#变回列表
print(date_list)
#[33, 11, 456789, 22]

################################################################################

#对两个变量拼接,输出格式信息

header = [11,22,33]
date_dict = {
    'aaa':['111','222','333'],
    'bbb':['444','555','666'],
    'ccc':['777','888','999']}

for key,value in date_dict.items():
    # print(key,value)
    text_list = []
    for index in range(len(header)):
        passage = '{},{}:{}' .format(key,header[index],value[index])
        text_list.append(passage)
    #print(text_list)
    date = ','.join(text_list)
    print(date)


#用户循环输入格式字符串:asd|123,将内容分割为键值得形式存放于字典

info = {}

while True:
    date = input('请输入:(1)')
    if date == '1':
        break
    new_date = date.split('|')
    info[new_date[0]] = new_date[1]         #根据列表的第一个元素为键,创建新键值对{k:v}
print(info)


#将上面列表键放在key_list,值放在value_list

date = {'name':'helin',
        'age':21,
        'hobby':{'soccer':'swim'},
        ('1+1','=',2):True}

#增加键值对
result = date['hobby']['qq'] = '123456'
#print(date)
date['k'] = 'v'
#print(date)

#将上面列表键放在key_list,值放在value_list
key_list = []
value_list = []

    #用两变量接收,循环3次
for key,value in date.items():
    key_list.append(key)
    value_list.append(value)
print(key_list)
print(value_list)

    #转化,代码简洁,但不高效,循环6次
key_list = list(date.keys())
value_list = list(date.values())
print(key_list)
print(value_list)


#将列表数字大于66的放入键为k1的值中,小于66的放入键为k2的值中

result = {'k1':[],'k2':[]}
date = [11,22,34,56,66,77,88,99]

for item in date:
    if item > 66:
        result['k1'].append(item)
    elif item < 66:
        result['k2'].append(item)
    else:
        pass
print(result)

result = {}
date = [11,22,34,56,66,77,88,99]

for item in date:
    if item > 66:
        if 'k1' in result:
            result['k1'].append(item)
        else:
            result['k1']=[item]
    elif item < 66:
        if 'k2' in result:
            result['k2'].append(item)
        else:
            result['k2']=[item]
    else:
        pass
print(result)


#初级综合案例

goods = [
    {'name':'computer','price':'5000'},
    {'name':'smartphone','price':'2000'},
    {'name':'watch','price':'199'},
    {'name':'ipad','price':'999'}]

#显示格式:序号+商品名称+商品价格
for index in range(len(goods)):
    print(index + 1,goods[index]['name'],goods[index]['price'])

#用户输入序号,显示商品,#规范化输入,循环,退出
while True:
    num = input('请输入序号(q):')
    if num == 'q':
        break
    if num.isdecimal():
        num = int(num)
        if 0 < num < len(goods) + 1:
            print(goods[num-1]['name'],goods[num-1]['price'])
        else:
            print('超出范围')
    else:
        print('输入不是数字!')
5、代码规范及知识补充
"""
基础总结补充
    #判断键是否存在
    #简化代码,简单逻辑先处理
    #简化代码,减少嵌套次数
    #简化代码,减少循环的次数
    
    is与==
    位运算符
"""

    # TODO 特殊注释,下面为代码规范
    
print('todo')

#判断键是否存在

date = {'name':'helin',
        'age':21,
        'hobby':['soccer','swim'],
        ('1+1','=',2):True}

result = date.get('key')#none
# if result == None:
#     print('不存在')
# else:
#     print(result)
#简化
if result:
    print(result)
else:
    print('不存在')
    
if 'key' in date:
    result = date.get('key')
    print(date)
else:
    print('键不存在')


#简化代码,简单逻辑先处理

#案例,实现用户登录
user_set = {
    'hll':'123',
    'wby':'666'}

user_name = input('请输入用户名:')
user_pwd = input('请输入密码:')

pwd = user_set.get(user_name)#根据用户输入的user_name作为键,在user_set中找到对应的值
"""
if pwd == None:
    print('用户名不存在')
else:
    if pwd == user_pwd:
        print('登录成功')
    else:
        print('登录失败')
#优化
if pwd:
    if pwd == user_pwd:
        print('登录成功')
    else:
        print('登录失败')
else:
    print('用户名不存在')  
"""
#简单的逻辑放在前面
if not pwd:
    print('用户名不存在')
else:
    if pwd == user_pwd:
        print('登录成功')
    else:
        print('登录失败')


#简化代码,减少嵌套循环,简单逻辑先处理

goods = [
    {'name':'computer','price':'5000'},
    {'name':'smartphone','price':'2000'},
    {'name':'watch','price':'199'},
    {'name':'ipad','price':'999'}]

#显示格式:序号+商品名称+商品价格
for index in range(len(goods)):
    print(index + 1,goods[index]['name'],goods[index]['price'])

#用户输入序号,显示商品,#规范化输入,循环,退出

# while True:
#     num = input('请输入序号(q):')
#     if num == 'q':
#         break
#     if num.isdecimal():
#         num = int(num)
#         if 0 < num < len(goods) + 1:
#             print(goods[num-1]['name'],goods[num-1]['price'])
#         else:
#             print('超出范围')
#     else:
#         print('输入不是数字!')
   
    #简化代码,减少嵌套循环,简单逻辑先处理    
while True:
    num = input('请输入序号(q):')
    if num == 'q':
        break
    if not num.isdecimal():
        print('不是数字')
        continue
    num = int(num)
    if  num < 1 or num > 4:
        print('超出范围')
    print(goods[num-1]['name'],goods[num-1]['price'])


#简化代码,减少循环的次数

date = {'name':'helin',
        'age':21,
        'hobby':{'soccer':'swim'},
        ('1+1','=',2):True}

#增加键值对
result = date['hobby']['qq'] = '123456'
#print(date)
date['k'] = 'v'
#print(date)

#将上面列表键放在key_list,值放在value_list
key_list = []
value_list = []

    #用两变量接收,循环3次
for key,value in date.items():
    key_list.append(key)
    value_list.append(value)
print(key_list)
print(value_list)

    #转化,代码简洁,但不高效,循环6次
key_list = list(date.keys())
value_list = list(date.values())
print(key_list)
print(value_list)
 
##############################################################################
  
#is与==  

a = []
b = []
print(a == b)
print(a is b)
# True
# False  
    
c = a
print(a == c)
print(a is c)
# True
# True

v1 = None
v2 = None
print(v1 == v2)
print(v1 is v2)
# True
# True


#位运算符

a = 60
b = 13
print(bin(a).lstrip('0b').zfill(8))
print(bin(b).lstrip('0b').zfill(8))
# 0011 1100
# 0000 1101

print(a & b)#12
print(a | b)#61
print(a ^ b)#49
print(~ a)#-61
print(a << 2)#240
print(a >> 2)#15

续文: 

推荐学习视频:

基础知识------系统教学-Python 3.9零基础入门到精通(完整版)_哔哩哔哩_bilibili

数据分析------【python教程】数据分析——numpy、pandas、matplotlib_哔哩哔哩_bilibili

推荐学习网站:

n菜鸟教程------Python3 教程 | 菜鸟教程 (runoob.com)

基础小二------基础_Python小二-CSDN博客 

推荐博主:

csdn/微信公众号------python小二

抖音活跃博主------python私教-有屠夫、程序员zhenguo(Python编程)


留下你的关注,收藏,点赞,让我瞅瞅谁在默默关心我。哈哈,感谢浏览!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/529316.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号