全局函数:
Print(字符串):标准输出函数
Type(变量):返回变量数据类型
Input(字符串):标准输入函数,将控制台上一个属输入到变量中,返回值是一个字符串。
Int(字符串):将该字符串转换为整型数据
Float(字符串):将字符串转换为浮点数
Str(其他类型):将数据转化为字符串
Python的数据类型
基本数据类型
数值型:整数(int) 浮点数;小数(float) 复数
布尔类型:真(True) 假(False)
字符串:单引号,双引号,三引号
复合数据类型(引用,指针)
字典
列表
元组
集合
万物皆对象
常见运算符
算术运算符
关系(比较)运算符
逻辑运算符
赋值运算符
位运算
所属关系符
程序控制流程(三大流程)
顺序
选择结构
循环
常见运算符
算数运算符
+,-,*,/,%(取余),//(整除),**(幂次方)
(关系)比较运算符
> ,<,>=,<=,==,is(比较两个变量地址),!=(不等于)
Is关键字比较两个变量地址
逻辑运算符
多个表达式之间的关联关系
运算结果是bool
and关键字
并集
or 关键字
多个条件之间,只要有一个结果为真,结果就为真。
not关键字
取反
In关键字
判断某个值是否存在容器中
三大流程(程序控制流程)
顺序从左到右
选择结构
单分支结构
If 条件:缩进,python 强缩进语言
执行条件满足的代码
双分支结构
If condition:条件满足的情况下要执行的代码
else:取反,执行条件不满足的代码
多分枝结构
elif
循环结构
拒绝哪怕两行代码的重复
循环:周而复始的执行
While 循环
While condition:
执行里面的代码(循环体)
关键字break,打断循环
for 循环:
for in 结构
专门用来遍历容器的
For 变量 in 容器:
该变量表示的是每一次容器迭代出的元素
Print(变量)
列表:储存多个数据的一个容器
变量 = [元素1,元素2,… 元素n]
结论:for in循环最开始主要用来迭代 可迭代对象
dir (模块,类,对象):输出该模块的所有方法属性
help (帮助文档)
break和continue关键字
break和continue关键字都是被使用在循环中的关键字
break作用:终止循环
continue作用:跳过本次循环,进入下次循环
pass关键字:
可以使用在任何地方,作用是目前不知道代码怎么实现时,暂时为了保证语法能够通过。
Eval :将字符串转化为脚本
容器
什么是容器,为什么学习容器
容器:可以存放多个元素的一种数据类型
补充变量的无法存储大量数据的缺陷
Python的容器
列表
集合
元组
字典
列表—list
线性表
数组:Python是没有数组,数组是连续内存的结构
栈:先进后出 先进先出
队列:先进先出,后进后出
链表 – 数据结构的实现
Python的列表这种容器就是基于双向链表实现的
列表的定义
由弱数据类型语言决定,直接将值赋给变量
如: ls = [2,3,4,5]
容器中的每一个,叫做元素
如何访问元素
使用下标来访问,下标是从0开始
求列表长度
全局函数 len(容器)
如何遍历容器
While循环
>>> index = 0
while index < len(ls):
… print(ls[index])
… index += 1
…
For 循环
for i in ls:
… print(i)
…
列表中的常见方法
Append 向列表尾部追加元素
Insert 在列表定位追加元素
Sort 相同类型排序
Index 查找元素第一次在列表中出现的位置
Reverse 将列表元素顺序反转
Remove 将列表中的元素来移除元素
Count 统计列表中相同元素的个数
Clear 清楚元素
Copy 浅拷贝对象
Extend 合并列表
Pop 删除最后一个元素,并返回这个元素
内存模型:
栈(stack):先进后出,后进先出
堆(heap):先进先出,后进后出
集合(set):
常见一个集合
S = set() 使用全局函数set来创建一个集合
S = set({}1,2,3,4,5) 创建集合,并复制
S = {} 如果使用空的{}来创建一个对象,该对象是字典,并不是集合
S = {元素} {}至少要有一个冤死,此时类型才是集合
集合底层基于hash标实现
不能重复的,也就意味着集合中的元素都是唯一的
无序的
'__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update'
Add ss.add():增加元素,只能增加不存在的元素
Difference 差集
Intersection 交集
Union 并集:变量本身不发生变化
Updata 更新集合,将变量本身进行更新,本身发生变化
Discard 移除元素,如果不存在,则不做任何操作
元组(tuple):通过弱数据类型来定义 t = (元素…)
Tuple全局函数
tt = tuple()
tt = tuple((元素…))
通过下标来访问元素
元组的特点:
元组是一个不可变类型,元组中的元素一旦定义,则无法改变
注意:
虽然元组不可变,如果元组内部元素是可变类型,那么该元组就可变
字典(dict)
键值对形式存储的
定义
d={“name”: “某某某”}
d= dict()
如何访问值
通过key来访问对应的值
字典对象[key] 返回key对应的值,如果没有,抛出异常
字典队形[新key] = 新值 增加新的键值对
常见方法
‘clear’, ‘copy’, ‘fromkeys’, ‘get’, ‘items’, ‘keys’, ‘pop’, ‘popitem’, ‘setdefault’, ‘update’, ‘values’
Get 和字典对象[key]类似,获取键对应值,注意,如果没有该键,返回None
Keys 返回所有的键(字典里冒号前面的键)
Values 返回所有的值
Setdefault 设置默认值
Items 返回一个键值对
Pop(key) 通过key删除键值对
Popitem 移除一个键值对,移除的规则是LIFO(last in first out)
S = str(“字符串”)
字符串的常见方法
[‘capitalize’, ‘casefold’, ‘center’, ‘count’, ‘encode’, ‘endswith’, ‘expandtabs’, ‘find’, ‘format’, ‘format_map’, ‘index’, ‘isalnum’, ‘isalpha’, ‘isascii’, ‘isdecimal’, ‘isdigit’, ‘isidentifier’, ‘islower’, ‘isnumeric’, ‘isprintable’, ‘isspace’, ‘istitle’, ‘isupper’, ‘join’, ‘ljust’, ‘lower’, ‘lstrip’, ‘maketrans’, ‘partition’, ‘replace’, ‘rfind’, ‘rindex’, ‘rjust’, ‘rpartition’, ‘rsplit’, ‘rstrip’, ‘split’, ‘splitlines’, ‘startswith’, ‘strip’, ‘swapcase’, ‘title’, ‘translate’, ‘upper’, ‘zfill’]
Capitalize:让字符串首字母大写(规范化每段的第一段话)
Center(width,[fillchar]):设置字符串居中,fillchar默认空格,可以自定义
Count():统计字符或者字符串出现的次数
Endswith():判断字符串是否以什么什么结尾
Startswith():判断字符串是否以什么什么开头
Index():查找字符或者字符串在字符串中第一次出现的位置
Rindex():查找字符或者字符串在字符串中最后一次出现的位置
Find():查找字符或者字符串在字符串中出现的位置
如果不存在,则返回-1
rFind():查找字符或者字符串在字符串中最后出现的位置
练习代码
def print_hi(name):
# Use a breakpoint in the code line below to debug your script.
print(f’Hi, {name}’) # Press Ctrl+F8 to toggle the breakpoint.
# Press the green button in the gutter to run the script.
if name == ‘main’:
print_hi(‘PyCharm’)
See PyCharm help at https://www.jetbrains.com/help/pycharm/
num = input(“输入”)
print(type(num))
num = float(input(“输入”))
print(type(num))
num1 = int(input(“第一个数”))
num2 = int(input(“第二个数”))
print("%s > %s结果是%s" %(num1,num2,(num1>num2)))
print(num1<num2)
age = int(input(“年龄”))
if age >= 18:
print(“恭喜你”)
else:
print(‘抱歉’)
week = input(“输入星期数”)
if week == “1”:
print(“星期一”)
else:
if week == “2”:
print(“星期二”)
else:
if week == “3”:
print(“星期三”)
week = int(input(“输入星期数”))
if week == 1:
print(“xingqiyi”)
elif week == 2:
print(“two”)
elif week == 3:
print(“three”)
print(“hello”)
a = 3
index = 0
while index <100:
print("%hello HJL–%s" %(a,index))
index += 1
while True :
week =input(“输入星期数”)
if week == “q” or week == “quit”:
break
week = int(week)
if week == 1:
print(“xingqiyi”)
elif week == 2:
print(“two”)
elif week == 3:
print(“three”)
while True:
num = input(">>>")
if num == “quit” or num == “q”:
break
num = int(num)
if num == 0:
print("%s既不是奇数也不是偶数" % (num))
elif num % 2 == 0:
print("%s偶数" %(num))
else:
print("%s是奇数" %num)
随机数猜数游戏
import random
computer_num = random.randint(1,10)
while True:
my_num = input(“输入”)
if my_num == “q” or my_num == “quit”:
break
my_num = int(my_num)
if my_num == computer_num:
print(“恭喜你”)
confirm = input(“是否退出(Y,N)”)
if confirm == “Y” or confirm == “y”:
break
else:
computer_num = random.randint(1,10)
elif my_num > computer_num:
print(“抱歉,猜大了”)
elif my_num < computer_num:
print(“抱歉,猜小了”)
一个商城界面
import sys
while True:
print("\t\t\t英雄联盟登录界面\n")
print("\t-------------------------\n")
print("\t\t\t1.用户登录\n")
print("\t\t\t2.用户注册\n")
print("\t\t\t3.退出系统\n")
choice = input(“请输入您的选择”)
if choice == “1”:
username = input(“用户名:”)
password = input(“密码:”)
if username == “admin” and password == “123”:
print(“登录成功”)
while True:
print("\t\t\t英雄联盟商城界面\n")
print("\t-------------------------\n")
print("\t\t\t1.进入英雄超市\n")
print("\t\t\t2.休闲小游戏\n")
print("\t\t\t3.返回上一层\n")
print("\t\t\t4.退出系统\n")
print("\t-------------------------\n")
choice = input(“请输入选择:”)
if choice == “1”:
print("\t\t\t英雄联盟商城界面\n")
print("\t-------------------------\n")
print("\t\t\t1.纳尔\n")
print("\t\t\t2.瑞文\n")
print("\t\t\t3.返回上一层\n")
print("\t\t\t4.退出系统\n")
print("\t-------------------------\n")
choice = input(“请输入选择”)
if choice == “1”:
if choice == “2”:
elif choice == “2”:
print(“各种游戏”)
elif choice == “3”:
break
elif choice == “4”:
# 终止程序
sys.exit()
else:
input(“用户名密码错误,登录失败”)
elif choice == “2”:
pass
elif choice == “3”:
break
交换两个整数
print(“over”)
num1 = int(input(“请输入一个整数”))
num2 = int(input(“请再次输入一个整数”))
print(“交换前,num1=%s, num2 = %s” %(num1,num2))
# 临时变量法
# temp = num1
# num1 = num2
# num2 = temp
# 求和法
# num1 = num1 + num2
# num2 = num1 - num2
# num1 = num1 - num2
# 异或法
# num1,num2 = num2,num1
print(“交换后,num1=%s, num2 = %s” %(num1,num2))
判断一个数是否为质数
while True:
num = int(input(“请输入一个整数,判断是否为质数”))
if num == 2 or num == 3 or num == 5 or num == 7:
print(“是一个质数”)
break
else:
if num % 2 == 0 or num % 3 == 0 or num % 5 == 0 or num % 7 == 0:
print(“这个数不是质数”)
else:
print(“这是个质数”)
break
layer = int(input(“请输入要打印的层数”))
index = 1
while index <= layer:
j = 1
while j <= index:
print("*", end="")
j += 1
print()
index += 1
i = 1
while i <= 9:
j = 1
while j <= i:
print("%s x %s = %s\t" %(i,j,(i*j)), end = “”)
j += 1
print("")
i += 1
求一到一百的乘积
index = 1
sum = 1
while index <= 100:
sum *= index
index += 1
print(“1~100”, sum )
season = int (input(‘请输入一个月份’))
if season >= 3 and season <= 4 :
print(“春季”)
elif season >= 5 and season <= 8 :
print(“夏季”)
elif season >= 9 and season <= 10 :
print(“秋季”)
elif season >= 11 or season <= 12 or season == 1 or season == 2:
print(“冬季”)
0-100范围内偶数的和是多少?
sum = 0
for i in range(0,101,2):
sum += i
print(“0-100的偶数和是%s”%(sum))
he = 0
for i in range(0,101):
if i % 2 == 0:
he += i
print("%s"%(he))
num1,num2 = eval(input(“请输入第一个和第二个数:”))
op = input(“请输入您要运算的符号:”)
if op == “+”:
print("{} + {} = {}".format(num1,num2,(num1+num2)))
layer = int(input(“请输入要打印的层数”))
index = 1
while index <= layer:
j = 1
while j <= index:
print( “*”, end="")
j += 1
print()
index += 2
layer = int(input(“请输入要打印的层数”))
index = 1
while index <= layer:
j = 1
while j <= index:
print("*",end="")
j += 1
print()
index += 2
等腰三角形
layer = int(input(“请输入要打印的层数:”))
for i in range(1,layer + 1):
# 计算出空格个数
space_num =layer - i
for j in range(0,space_num):
print(" “,end=”")
# 计算*的个数
star_num = 2*i - 1
for j in range(0, star_num):
print("*",end="")
print("")
layer = int(input("😊)
校验
while layer % 2 == 0:
layer = int(input(“对不起,请输入奇数行:”))
for i in range(1,layer//2 + 2):
space_num = layer - i
for j in range(0,space_num):
print(" “,end=”")
star_num = 2*i -1
for j in range(0,star_num):
print("*",end="")
print("")
# for i in range(layer // 2 + 2 , 0 , -1):
# space_num = layer - i
# for j in range(0, space_num):
# print(" ", end="")
# star_num = 2 * i - 1
# for j in range(0, star_num):
# print("*", end="")
#
# print("")