赞
踩
目录
python在定义变量时,不需要写数据类型
python字符串格式化%
python支持格式化字符串的输出,在输出时需要自己设置控制输出格式,
如下示例 name输出格式%s 、age输出格式%d
- age = 22
- name = "chenruhan"
- money = 100
- print("my name is %s ,i am %d years old" % (name,age))
python智能化输出 format
如下示例 控制输出格式都设置为{ },输出方式为:str.format()
- age = 22
- name = "chenruhan"
- money = 100
- print("my name is {} ,i am {} years old".format(name,age))
.format 参数列表,可以 顺序设置,在{ }中写入变量的顺序即可
下面给出示例
- age = 22
- name = "chenruhan"
- money = 100
- print("my name is {1} ,i am {0} years old".format(name,age))
通过使用type函数,可以检验定义变量的类型,下面给出示例
- age = "20"
- print(age,type(age))
检验 age变量的类型为 str 字符串
单行注释 #
boolvalue = True # False 单行注释
多行注释
三个双引号 或 三个单引号
- """
- 1.Number 整数 + 小数
- 2.string 字符串 '' ""
- 3.Boolean True False
- """
python3中有六个标准的数据类型:
Number(数字)、String(字符串)、Boolean(布尔)、List(列表)、Tuple(元组)、Sets(集合)、
Dictionary(字典)
不可变数据(4个):Number(数字)、String(字符串)、Tuple(元组)、Boolean(布尔)
可变数据(3个):List(列表)、Dictionary(字典)、Sets(集合)
python3支持三种不同的数值类型:
整型(int)、浮点型(float)、复数(complex)
- import keyword # 引用python 内置模块
- # list 列表 []
- 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']
- a = 4.7+0.666j #定义一个复数
- print(a) #输出这个复数
- print(a.real) #输出实部
- print(a.imag) #输出虚部
python 与、或、非 可以和C/C++作个对比
C/C++ : && || !
python : and or not
常量表示“不能变”的变量
python中是没有常量的关键字的,只是我们常常约定使用大写字符组合的变量名表示常量,也有“不要对其进行赋值”的提醒操作
下面给出示例
- CLASSNAME = "omo2112"
- print(CLASSNAME)
- CLASSNAME = "omo2203"
- print(CLASSNAME)
打印输出
omo2112
omo2203
python语法 看到全大写的字符组合 如上示例中CLASSNAME 就默认其为常量,意味其不能改变
python支持以下8种运算符
1.算术运算符(+ - * / //地板除、%取余)
2.比较(关系运算符)
3.赋值运算符
4.逻辑运算符
5.位运算符
6.成员运算符 in not in
7.身份运算符 is not is
8.运算符优先级
算术运算符,下面以 除法和地板除 作为示例
除法 有保留小数部分
- num = 10/3
- print(num)
输出结果:3.3333333333333335
地板除 不保留小数部分
- num = 10//3
- print(num)
输出结果:3
字符串拼接,示例
- str1 = "abc"
- str2 = "qwe"
- print(str1+str2)
输出结果为:abcqwe
空格也是字符串,需要注意
强制类型转换,示例
- age = "20"
- print(age,type(age))
- res = int(age) #强制转换
- print(res,type(res))
强制类型转换,示例
- age = "20"
- print(age,type(age))
- res = float(age) #强制转换
- print(res,type(res))
列表的定义 :元素之间逗号隔开,索引是从0开始
下面给出列表、成员运算符in的使用示例
- # 列表的定义
- stuList = ['张三','李四','王五']
- #成员运算符 in 的使用
- print('李四' in stuList) #李四是否在列表中
- print('赵六' in stuList) #赵六是否在列表中
成员运算符in的使用,字符串查找
- # 字符串 可迭代性
- # 可迭代性即可以遍历的数据类型 可以使用成员运算符in
- code = "apple"
- print('a' in code)
输出结果:True
- # 列表的定义
- stuList = ['张三','李四','王五']
- # for 元素 in list
- for item in stuList:
- print(item) #for循环遍历打印所有项
输出结果:
张三
李四
王五
for if 嵌套,示例
- # 列表的定义
- stuList = ['张三','李四','王五']
- # for 元素 in list
- for item in stuList:
- if '张三' == item:
- print("找到了",item)
- break
输出结果:找到了 张三
True、False设置标志位,成员运算符in使用,for if嵌套,示例
- # 列表的定义
- stuList = ['张三','李四','王五']
- # for 元素 in list
- flag = False #True、False设置标志位
- for item in stuList:
- if '涵' == item:
- print("找到了",item)
- flag = True
- break
- if flag is not True:
- print("没找到")
输出结果:没找到
for else结构 ,示例
- # 列表的定义
- stuList = ['张三','李四','王五']
- # for 元素 in list
- for item in stuList:
- if '涵' == item:
- print("找到了",item)
- flag = True
- break
- else: #如果循环自然终结,那么就会执行
- print("没找到")
输出结果:没找到
for else结构,示例
- # 列表的定义
- stuList = ['张三','李四','王五']
- # for 元素 in list
- for item in stuList:
- if '李四' == item:
- print("找到了",item)
- flag = True
- break
- else: #如果循环自然终结,那么就会执行
- print("没找到")
输出结果:找到了 李四
列表索引,示例
- # 列表的定义
- stuList = ['张三','李四','王五']
- print(stuList[0]) #列表索引,打印输出
输出结果:张三
浅拷贝,共用一片内存空间 ,示例
- # 列表的定义
- stuList = ['张三','李四','王五']
- stuList1 = stuList #浅拷贝 共用一片内存空间
- print(stuList1,type(stuList1))
输出结果:['张三', '李四', '王五'] <class 'list'>
这边看不出共用一片内存空间,下面给出示例
- # 列表的定义
- stuList = ['张三','李四','王五']
- stuList1 = stuList #浅拷贝
- stuList1[0] = "chenruhan" #列表1 索引0的元素赋值
- #分析列表之间的差别 -- 浅拷贝
- print(stuList,type(stuList))
- print(stuList1,type(stuList1))
深拷贝,开辟内存空间,示例
- # 列表的定义
- stuList = ['张三','李四','王五']
-
- #深拷贝 示例
- stuList2 = stuList[:] #进行元素的全部赋值
- stuList2[0] = "linximeng" #列表2 索引0处元素赋值
- #分析列表之间差别 -- 深拷贝
- print(stuList , type(stuList))
- print(stuList2 , type(stuList2))
身份运算符is的使用,示例
- # 列表的定义
- stuList = ['张三','李四','王五']
- stuList1 = stuList #浅拷贝
- print(stuList1 is stuList) #身份运算符 is
输出结果:True
- # 列表的定义
- stuList = ['张三','李四','王五']
- stuList2 = stuList[:] # 拷贝一个 原版不变 即深拷贝
- print(stuList2 is stuList) #身份运算符 is
输出结果:False
查看print输出,内置参数设置
不难看出,输出自带换行,当然也可以设置参数end不换行
print设置end 制表输出 示例
- # 列表的定义
- stuList = ['张三','李四','王五']
- stuList1 = stuList # 浅拷贝
- stuList2 = stuList[:] # 拷贝一个 原版不变 -- 深拷贝
-
- #浅拷贝
- print(stuList1 is stuList,end = '\t') #print设置end 制表输出
- #深拷贝
- print(stuList2 is stuList) #身份运算符is的使用 输出是制表形式
print设置end参数/t,制表输出
input输入的所有内容,类型都是字符串
下面给出input输入任意内容,类型都是字符串,示例
- name = input("请输入用户名")
- print(name , type(name))
如下图,无论输入123数字,还是True(布尔型),类型都会是字符串
- # 列表的定义
- stuList = ['张三','李四','王五'] #用户
- pwdList = ['123','345','567'] #密码
-
- name = input("请输入用户名")#输入
- print(name , type(name)) #input输入 都是字符串
- pwd = input("请输入密码") #输入
- #for循环
- for item in stuList:
- if name == item:
- print("用户名存在,该用户是",item)
- break
- else:
- print("用户名不存在")
根据下标获取元素,range使用,示例
- # 列表的定义
- stuList = ['张三','李四','王五'] #用户
- pwdList = ['123','345','567'] #密码
-
- name = input("请输入用户名") #输入
- print(name , type(name)) #无论input输入什么 类型都是字符串
- pwd = input("请输入密码") #输入
-
- #for循环
- #range使用: 1个参数(有区间)、2个参数(起、始/区间)
- for i in range(3): #区间 [0,n-1]
- if stuList[i] == name:
- if pwd in pwdList:
- print("登录成功")
- else:
- print("登录失败")
- break
- else:
- print("没找到")
while 1:
无限循环,示例
- def demo1():
- print(123)
-
- def demo2():
- print(456)
-
- def demo3():
- print(789)
-
- while 1:
- print("1.登录\n2.注册\n3.退出")
- option = int(input("请输入功能号:")) #input输入进来的是字符串
- if option == 1:
- demo1()
- print("登录")
- elif option == 2:
- demo2()
- print("注册")
- elif option == 3:
- # demo3()
- # print("退出")
- break
- else:
- print("无此选项")
输入功能号1,执行demo1
输入功能号2,执行demo2
输入功能号3,退出循环
练习1
输入五门学科的成绩(整数),定义一个函数计算出总分和平均分,平均保留一位小数
%.1f %0.1f %1f
- def test1():
- str1 = input("输入五门学科的成绩(整数)") # input输入都是字符串
- # print(str1, type(str1)) # input输入数据类型都是字符串
- numList = str1.split(" ") # 字符串分割(空格)
- # print(numList, type(numList)) # 得到字符串列表
-
- list1 = []
- for item in numList: # 每一个元素str类型强制转换为 int数据类型
- list1.append(int(item)) # append[列表添加元素]
- print(list1, type(list1)) # int数据类型 列表
-
- print("总分是:%d" % sum(list1)) # sum求和
- print("学科数量是:%d" % len(list1)) # len获取长度
- print("平均分是:%.1f" % (sum(list1) / len(list1)))
-
-
- test1()
练习2
定义一个函数,传入一个数字n(不要大于10),求1+2!+3!+…+n!的和
- def test2():
- num = input("请输入一个数") # input输入都是str字符串
- score = 1 # 阶乘
- num2 = 0 # 求和
- for i in range(1, int(num) + 1): # str强制转换int
- score *= i # 阶乘
- num2 += score # 求和
- print("输入数的阶乘和为:", num2) # 阶乘求和
-
-
- test2()
练习3
输入一个字符,如它是小写字母,则把它循环转换成自身的后4个字母的大写形式,如是大写字母,则把它循环转换成自身的后4个字母的小写形式;其他形式的不转换;并且把结果输出
如:a字母结果输出E,W输出结果a
- def test3():
- ch = input("输入一个要转换的字符") # input输入数据类型 都是str
- # 一共分为四类 1.a-v 2.w-z 3.A-V 4.W-Z
- if 'a' <= ch <= 'v':
- # 字符转ASCII 使用ord
- num = ord(ch)
- # ASCII转回字符 使用chr
- ch = chr(num - 32 + 4) # 97 65大小写相差32
- print("转换结果为:{}".format(ch))
- elif 'w' <= ch <= 'z': # w -- W -- A [97 65大小写相差32]
- num = ord(ch) # 字符转ASCII 使用ord
- ch = chr(num - 32 - 22) # ASCII转回字符 使用chr
- print("转换结果为:{}".format(ch))
- elif 'A' <= ch <= 'V':
- num = ord(ch) # 字符转ASCII 使用ord
- ch = chr(num + 32 + 4) # ASCII转回字符 使用chr
- print("转换结果为:{}".format(ch))
- elif 'W' <= ch <= 'Z':
- num = ord(ch) # 字符转ASCII 使用ord
- ch = chr(num + 32 - 22) # ASCII转回字符 使用chr
- print("转换结果为:{}".format(ch))
- else:
- print("请输入英文字符:")
-
-
- test3()
练习4
输出1~100之间的偶数,5个数字一行输出
方法一:
- def test4():
- num = 0
- for i in range(1, 101):
- if i % 2 == 0:
- print(i, end='\t') # print默认end换行,这里设置水平制表
- num += 1
- if num % 5 == 0:
- print()
-
-
- test4()
方法二:(优化)
- def test4():
- for i in range(1, 101):
- if i % 2 == 0:
- print(i, end='\t') # print水平制表输出
- if i % 10 == 0:
- print()
-
-
- test4()
练习5
判断(1,n]中所有质数的和是否是质数 n=5 2,3,5 10
- def isZhiShu(num): # 求质数 函数封装
- if num == 1: # 1不是质数
- return False
- if num == 2: # 2是质数
- return True
- for i in range(2, num): # 遍历 从2开始 1不是质数
- if num % i == 0: # 除了1和本身 无法整除 称为质数
- return False # 可以整除,不是质数
- else:
- return True
-
-
- def test5():
- num2 = 0 # 质数和
- num = int(input("请输入一个数字")) # input输入str 需要转换int数据类型
- for i in range(2, num + 1): # 遍历
- if isZhiShu(i): # 调用函数 传参(遍历的数)
- num2 += i # 质数求和
- print("质数的和是:", num2)
- if isZhiShu(num2): # 调用函数 传参(质数和)
- print("同时判断出质数的和 是质数")
- else:
- print("同时判断出质数的和 不是质数")
-
-
- test5()
练习6
数字炸弹:数字范围[0,100].用户输入一个100以内的数,系统生成随机数,用户有3次机会,每猜一次,系统会给出猜大了或是猜小了在区间[min,max]的提示,如果与系统随机数相同,则用户赢了,否则就是电脑赢了
- import random # 随机数
-
-
- def test6():
- result = random.randint(1, 100) # [1,100]
- i = 1 # 次数
- minNum = 1 # 最小数 初始化
- maxNum = 100 # 最大数 初始化
- while i < 4: # 数字炸弹 一共设置有三次机会
- num = int(input("输入猜测数字:")) # input输入str 需要转换为int
- if minNum <= num <= maxNum: # 猜测数字需要在范围内
- i = i + 1
- if num < result: # 猜测小了
- minNum = num + 1
- print("猜小了,炸弹范围现在是{}~{}".format(minNum, maxNum))
- elif num == result: # 猜测到了
- print("猜中了,数字炸弹是{}".format(result))
- break
- else: # 猜测大了
- maxNum = num - 1
- print("猜大了,炸弹范围现在是{}~{}".format(minNum, maxNum))
- else: # 猜测数字若不在范围内
- print("输入范围有误,请重新输入{}~{}之间的数字".format(minNum, maxNum))
- else: # 三次机会猜测不到,游戏结束,给出数字炸弹答案
- print("三次机会使用完,很遗憾并没有猜中,数字炸弹为{}".format(result))
-
-
- test6()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。