当前位置:   article > 正文

python编程语法基础知识

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))

输出结果:['张三', '李四', '王五'] <class 'list'>

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

  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()

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/707653
推荐阅读
相关标签
  

闽ICP备14008679号