• Python 基础学习


    目录

    一:变量定义

    二:type函数

    三:注释

    四:数据类型

    五:列表 

    六:复数

    七:常量

    八:运算符

    九:字符串拼接 & 强制类型转换

    十:成员运算符

    十一:for循环

    十二:浅拷贝 & 深拷贝

    十三:身份运算符

    十四:输出 & 输入

    十五:基础语法使用

    十六:while循环

    十七:python基础语法 训练


    一:变量定义

    python在定义变量时,不需要写数据类型

    python字符串格式化%

    python支持格式化字符串的输出,在输出时需要自己设置控制输出格式,

    如下示例  name输出格式%s 、age输出格式%d

    1. age = 22
    2. name = "chenruhan"
    3. money = 100
    4. print("my name is %s ,i am %d years old" % (name,age))

      

    python智能化输出 format 

    如下示例 控制输出格式都设置为{ },输出方式为:str.format()

    1. age = 22
    2. name = "chenruhan"
    3. money = 100
    4. print("my name is {} ,i am {} years old".format(name,age))

    .format 参数列表,可以 顺序设置,在{ }中写入变量的顺序即可

    下面给出示例

    1. age = 22
    2. name = "chenruhan"
    3. money = 100
    4. print("my name is {1} ,i am {0} years old".format(name,age))

      

    二:type函数

    通过使用type函数,可以检验定义变量的类型,下面给出示例

    1. age = "20"
    2. print(age,type(age))

    检验 age变量的类型为 str 字符串

    三:注释

    单行注释 #

    boolvalue = True # False 单行注释
    

    多行注释

    三个双引号 或 三个单引号 

    1. """
    2. 1.Number 整数 + 小数
    3. 2.string 字符串 '' ""
    4. 3.Boolean True False
    5. """

    四:数据类型

    python3中有六个标准的数据类型

    Number(数字)、String(字符串)、Boolean(布尔)、List(列表)、Tuple(元组)、Sets(集合)、

    Dictionary(字典)

    不可变数据(4个):Number(数字)、String(字符串)、Tuple(元组)、Boolean(布尔)

    可变数据(3个):List(列表)、Dictionary(字典)、Sets(集合)

    python3支持三种不同的数值类型

    整型(int)、浮点型(float)、复数(complex)

    五:列表 

    1. import keyword # 引用python 内置模块
    2. # list 列表 []
    3. print(keyword.kwlist)

    输出结果

    ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

    六:复数

    1. a = 4.7+0.666j #定义一个复数
    2. print(a) #输出这个复数
    3. print(a.real) #输出实部
    4. print(a.imag) #输出虚部

     

    python 与、或、非   可以和C/C++作个对比

    C/C++   :      &&        ||           !

    python   :    and       or       not

    七:常量

    常量表示“不能变”的变量

    python中是没有常量的关键字的,只是我们常常约定使用大写字符组合的变量名表示常量,也有“不要对其进行赋值”的提醒操作 

    下面给出示例

    1. CLASSNAME = "omo2112"
    2. print(CLASSNAME)
    3. CLASSNAME = "omo2203"
    4. print(CLASSNAME)

    打印输出

    omo2112
    omo2203

    python语法 看到全大写的字符组合 如上示例中CLASSNAME 就默认其为常量,意味其不能改变

    八:运算符

    python支持以下8种运算符

    1.算术运算符(+ - * /   //地板除、%取余)

    2.比较(关系运算符)

    3.赋值运算符

    4.逻辑运算符

    5.位运算符

    6.成员运算符   in   not in

    7.身份运算符   is   not is

    8.运算符优先级

    算术运算符,下面以 除法和地板除 作为示例

    除法 有保留小数部分

    1. num = 10/3
    2. print(num)

    输出结果:3.3333333333333335

    地板除 不保留小数部分

    1. num = 10//3
    2. print(num)

    输出结果:3

    九:字符串拼接 & 强制类型转换

    字符串拼接,示例 

    1. str1 = "abc"
    2. str2 = "qwe"
    3. print(str1+str2)

    输出结果为:abcqwe

    空格也是字符串,需要注意 

    强制类型转换,示例

    1. age = "20"
    2. print(age,type(age))
    3. res = int(age) #强制转换
    4. print(res,type(res))

    强制类型转换,示例

    1. age = "20"
    2. print(age,type(age))
    3. res = float(age) #强制转换
    4. print(res,type(res))

    十:成员运算符

    列表的定义 :元素之间逗号隔开,索引是从0开始

    下面给出列表、成员运算符in的使用示例

    1. # 列表的定义
    2. stuList = ['张三','李四','王五']
    3. #成员运算符 in 的使用
    4. print('李四' in stuList) #李四是否在列表中
    5. print('赵六' in stuList) #赵六是否在列表中

     成员运算符in的使用,字符串查找 

    1. # 字符串 可迭代性
    2. # 可迭代性即可以遍历的数据类型 可以使用成员运算符in
    3. code = "apple"
    4. print('a' in code)

    输出结果:True

    十一:for循环

    1. # 列表的定义
    2. stuList = ['张三','李四','王五']
    3. # for 元素 in list
    4. for item in stuList:
    5. print(item) #for循环遍历打印所有项

    输出结果:

    张三
    李四
    王五

    for if 嵌套,示例

    1. # 列表的定义
    2. stuList = ['张三','李四','王五']
    3. # for 元素 in list
    4. for item in stuList:
    5. if '张三' == item:
    6. print("找到了",item)
    7. break

    输出结果:找到了 张三

    True、False设置标志位,成员运算符in使用,for if嵌套,示例 

    1. # 列表的定义
    2. stuList = ['张三','李四','王五']
    3. # for 元素 in list
    4. flag = False #True、False设置标志位
    5. for item in stuList:
    6. if '涵' == item:
    7. print("找到了",item)
    8. flag = True
    9. break
    10. if flag is not True:
    11. print("没找到")

    输出结果:没找到

    for else结构 ,示例

    1. # 列表的定义
    2. stuList = ['张三','李四','王五']
    3. # for 元素 in list
    4. for item in stuList:
    5. if '涵' == item:
    6. print("找到了",item)
    7. flag = True
    8. break
    9. else: #如果循环自然终结,那么就会执行
    10. print("没找到")

    输出结果:没找到

    for else结构,示例

    1. # 列表的定义
    2. stuList = ['张三','李四','王五']
    3. # for 元素 in list
    4. for item in stuList:
    5. if '李四' == item:
    6. print("找到了",item)
    7. flag = True
    8. break
    9. else: #如果循环自然终结,那么就会执行
    10. print("没找到")

    输出结果:找到了 李四

    十二:浅拷贝 & 深拷贝

    列表索引,示例

    1. # 列表的定义
    2. stuList = ['张三','李四','王五']
    3. print(stuList[0]) #列表索引,打印输出

    输出结果:张三

    浅拷贝,共用一片内存空间 ,示例

    1. # 列表的定义
    2. stuList = ['张三','李四','王五']
    3. stuList1 = stuList #浅拷贝 共用一片内存空间
    4. print(stuList1,type(stuList1))

    输出结果:['张三', '李四', '王五']

    这边看不出共用一片内存空间,下面给出示例

    1. # 列表的定义
    2. stuList = ['张三','李四','王五']
    3. stuList1 = stuList #浅拷贝
    4. stuList1[0] = "chenruhan" #列表1 索引0的元素赋值
    5. #分析列表之间的差别 -- 浅拷贝
    6. print(stuList,type(stuList))
    7. print(stuList1,type(stuList1))

     深拷贝,开辟内存空间,示例

    1. # 列表的定义
    2. stuList = ['张三','李四','王五']
    3. #深拷贝 示例
    4. stuList2 = stuList[:] #进行元素的全部赋值
    5. stuList2[0] = "linximeng" #列表2 索引0处元素赋值
    6. #分析列表之间差别 -- 深拷贝
    7. print(stuList , type(stuList))
    8. print(stuList2 , type(stuList2))

    十三:身份运算符

    身份运算符is的使用,示例 

    1. # 列表的定义
    2. stuList = ['张三','李四','王五']
    3. stuList1 = stuList #浅拷贝
    4. print(stuList1 is stuList) #身份运算符 is

    输出结果:True

    1. # 列表的定义
    2. stuList = ['张三','李四','王五']
    3. stuList2 = stuList[:] # 拷贝一个 原版不变 即深拷贝
    4. print(stuList2 is stuList) #身份运算符 is

    输出结果:False

    十四:输出 & 输入

    查看print输出,内置参数设置

    不难看出,输出自带换行,当然也可以设置参数end不换行

    print设置end 制表输出 示例 

    1. # 列表的定义
    2. stuList = ['张三','李四','王五']
    3. stuList1 = stuList # 浅拷贝
    4. stuList2 = stuList[:] # 拷贝一个 原版不变 -- 深拷贝
    5. #浅拷贝
    6. print(stuList1 is stuList,end = '\t') #print设置end 制表输出
    7. #深拷贝
    8. print(stuList2 is stuList) #身份运算符is的使用 输出是制表形式

    print设置end参数/t,制表输出 

    input输入的所有内容,类型都是字符串

    下面给出input输入任意内容,类型都是字符串,示例

    1. name = input("请输入用户名")
    2. print(name , type(name))

    如下图,无论输入123数字,还是True(布尔型),类型都会是字符串 

    十五:基础语法使用

    1. # 列表的定义
    2. stuList = ['张三','李四','王五'] #用户
    3. pwdList = ['123','345','567'] #密码
    4. name = input("请输入用户名")#输入
    5. print(name , type(name)) #input输入 都是字符串
    6. pwd = input("请输入密码") #输入
    7. #for循环
    8. for item in stuList:
    9. if name == item:
    10. print("用户名存在,该用户是",item)
    11. break
    12. else:
    13. print("用户名不存在")

    根据下标获取元素,range使用,示例

    1. # 列表的定义
    2. stuList = ['张三','李四','王五'] #用户
    3. pwdList = ['123','345','567'] #密码
    4. name = input("请输入用户名") #输入
    5. print(name , type(name)) #无论input输入什么 类型都是字符串
    6. pwd = input("请输入密码") #输入
    7. #for循环
    8. #range使用: 1个参数(有区间)、2个参数(起、始/区间)
    9. for i in range(3): #区间 [0,n-1]
    10. if stuList[i] == name:
    11. if pwd in pwdList:
    12. print("登录成功")
    13. else:
    14. print("登录失败")
    15. break
    16. else:
    17. print("没找到")

    十六:while循环

    while 1:

    无限循环,示例 

    1. def demo1():
    2. print(123)
    3. def demo2():
    4. print(456)
    5. def demo3():
    6. print(789)
    7. while 1:
    8. print("1.登录\n2.注册\n3.退出")
    9. option = int(input("请输入功能号:")) #input输入进来的是字符串
    10. if option == 1:
    11. demo1()
    12. print("登录")
    13. elif option == 2:
    14. demo2()
    15. print("注册")
    16. elif option == 3:
    17. # demo3()
    18. # print("退出")
    19. break
    20. else:
    21. print("无此选项")

    输入功能号1,执行demo1

    输入功能号2,执行demo2 

    输入功能号3,退出循环 

    十七:python基础语法 训练

    练习1

    输入五门学科的成绩(整数),定义一个函数计算出总分和平均分,平均保留一位小数

    %.1f   %0.1f  %1f

    1. def test1():
    2. str1 = input("输入五门学科的成绩(整数)") # input输入都是字符串
    3. # print(str1, type(str1)) # input输入数据类型都是字符串
    4. numList = str1.split(" ") # 字符串分割(空格)
    5. # print(numList, type(numList)) # 得到字符串列表
    6. list1 = []
    7. for item in numList: # 每一个元素str类型强制转换为 int数据类型
    8. list1.append(int(item)) # append[列表添加元素]
    9. print(list1, type(list1)) # int数据类型 列表
    10. print("总分是:%d" % sum(list1)) # sum求和
    11. print("学科数量是:%d" % len(list1)) # len获取长度
    12. print("平均分是:%.1f" % (sum(list1) / len(list1)))
    13. test1()

       

    练习2

    定义一个函数,传入一个数字n(不要大于10),求1+2!+3!+…+n!的和

    1. def test2():
    2. num = input("请输入一个数") # input输入都是str字符串
    3. score = 1 # 阶乘
    4. num2 = 0 # 求和
    5. for i in range(1, int(num) + 1): # str强制转换int
    6. score *= i # 阶乘
    7. num2 += score # 求和
    8. print("输入数的阶乘和为:", num2) # 阶乘求和
    9. test2()

      

    练习3

    输入一个字符,如它是小写字母,则把它循环转换成自身的后4个字母的大写形式,如是大写字母,则把它循环转换成自身的后4个字母的小写形式;其他形式的不转换;并且把结果输出

    如:a字母结果输出E,W输出结果a 

    1. def test3():
    2. ch = input("输入一个要转换的字符") # input输入数据类型 都是str
    3. # 一共分为四类 1.a-v 2.w-z 3.A-V 4.W-Z
    4. if 'a' <= ch <= 'v':
    5. # 字符转ASCII 使用ord
    6. num = ord(ch)
    7. # ASCII转回字符 使用chr
    8. ch = chr(num - 32 + 4) # 97 65大小写相差32
    9. print("转换结果为:{}".format(ch))
    10. elif 'w' <= ch <= 'z': # w -- W -- A [97 65大小写相差32]
    11. num = ord(ch) # 字符转ASCII 使用ord
    12. ch = chr(num - 32 - 22) # ASCII转回字符 使用chr
    13. print("转换结果为:{}".format(ch))
    14. elif 'A' <= ch <= 'V':
    15. num = ord(ch) # 字符转ASCII 使用ord
    16. ch = chr(num + 32 + 4) # ASCII转回字符 使用chr
    17. print("转换结果为:{}".format(ch))
    18. elif 'W' <= ch <= 'Z':
    19. num = ord(ch) # 字符转ASCII 使用ord
    20. ch = chr(num + 32 - 22) # ASCII转回字符 使用chr
    21. print("转换结果为:{}".format(ch))
    22. else:
    23. print("请输入英文字符:")
    24. test3()

        

    练习4

    输出1~100之间的偶数,5个数字一行输出

    方法一:

    1. def test4():
    2. num = 0
    3. for i in range(1, 101):
    4. if i % 2 == 0:
    5. print(i, end='\t') # print默认end换行,这里设置水平制表
    6. num += 1
    7. if num % 5 == 0:
    8. print()
    9. test4()

     方法二:(优化)

    1. def test4():
    2. for i in range(1, 101):
    3. if i % 2 == 0:
    4. print(i, end='\t') # print水平制表输出
    5. if i % 10 == 0:
    6. print()
    7. test4()

    练习5

    判断(1,n]中所有质数的和是否是质数  n=5      2,3,5   10 

    1. def isZhiShu(num): # 求质数 函数封装
    2. if num == 1: # 1不是质数
    3. return False
    4. if num == 2: # 2是质数
    5. return True
    6. for i in range(2, num): # 遍历 从2开始 1不是质数
    7. if num % i == 0: # 除了1和本身 无法整除 称为质数
    8. return False # 可以整除,不是质数
    9. else:
    10. return True
    11. def test5():
    12. num2 = 0 # 质数和
    13. num = int(input("请输入一个数字")) # input输入str 需要转换int数据类型
    14. for i in range(2, num + 1): # 遍历
    15. if isZhiShu(i): # 调用函数 传参(遍历的数)
    16. num2 += i # 质数求和
    17. print("质数的和是:", num2)
    18. if isZhiShu(num2): # 调用函数 传参(质数和)
    19. print("同时判断出质数的和 是质数")
    20. else:
    21. print("同时判断出质数的和 不是质数")
    22. test5()

    练习6

    数字炸弹:数字范围[0,100].用户输入一个100以内的数,系统生成随机数,用户有3次机会,每猜一次,系统会给出猜大了或是猜小了在区间[min,max]的提示,如果与系统随机数相同,则用户赢了,否则就是电脑赢了

    1. import random # 随机数
    2. def test6():
    3. result = random.randint(1, 100) # [1,100]
    4. i = 1 # 次数
    5. minNum = 1 # 最小数 初始化
    6. maxNum = 100 # 最大数 初始化
    7. while i < 4: # 数字炸弹 一共设置有三次机会
    8. num = int(input("输入猜测数字:")) # input输入str 需要转换为int
    9. if minNum <= num <= maxNum: # 猜测数字需要在范围内
    10. i = i + 1
    11. if num < result: # 猜测小了
    12. minNum = num + 1
    13. print("猜小了,炸弹范围现在是{}~{}".format(minNum, maxNum))
    14. elif num == result: # 猜测到了
    15. print("猜中了,数字炸弹是{}".format(result))
    16. break
    17. else: # 猜测大了
    18. maxNum = num - 1
    19. print("猜大了,炸弹范围现在是{}~{}".format(minNum, maxNum))
    20. else: # 猜测数字若不在范围内
    21. print("输入范围有误,请重新输入{}~{}之间的数字".format(minNum, maxNum))
    22. else: # 三次机会猜测不到,游戏结束,给出数字炸弹答案
    23. print("三次机会使用完,很遗憾并没有猜中,数字炸弹为{}".format(result))
    24. test6()

  • 相关阅读:
    常用时序数据压缩编码算法浅析
    代码随想录算法训练营20期|第三十一天|● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和
    Java —— 抽象类和接口
    数据结构与算法——选择排序法
    暑假总结
    分布式系统架构理论与组件
    Sentinel
    用DIV+CSS技术设计的凤阳旅游网站(web前端网页制作课作业)HTML+CSS+JavaScript
    mysql数据库重启、登录mysql数据库、通过命令执行mysql的sql脚本等命令
    java ssm野生动物公益保护网站系统
  • 原文地址:https://blog.csdn.net/m0_56051805/article/details/126900242