# # 变量定义
# # 1.简单定义
# # 变量名=值
# # 2.多元定义
# # 变量名1,变量名2,,,,=值1,值2,,,,,
# # 3.链式定义
# # 变量1=变量2=变量3=
# # a=b=c=10 print(a,b,c)
#
# print(0b10) #2进制,标志是0b
# print(0o10) #8进制,标志是0o
# print(10)
# print(0x10) #16进制,标志是0x
# # 字符串
# # 编码 ASCII GBK GB2312 unicode UTF-8
# # 被引号包含的为字符串
# #切片 string[start:end:step]
string='杳杳寒山道' #例子
print(string[0:3])
# #字符串前缀 r f 语法r'太原理工大学' f'太原理工大学'
# # r后面的字符串都为普通字符串 f支持格式化字符串
# #转义字符 \n换行 \r回车 \t制表符
name='王腾达'
age='19'
print(name+'的年龄是'+age) #与下面的类似
print(f'{name}的年龄是{age}') #大括号中间可以填变量
#
#
#
# # input() 返回的数据类型是字符串
# # 占位符 %s(字符串占位符) %f(浮点型占位符)
name='小白'
age=18
str1='我的名字是%s,我年龄%s,我有%f钱'
print(str1%(name,age,100)) #例子
print(f'我的名字是{name},我年龄{age}') #用f做
###第二天
# boool 布尔类型(Ture|False) None类型
# 列表类型 (list) 定义:用来存储一系列相关数据的集合
xmcj =[ 66,67,87,78,78]#例子
# # 列表注意事项:1.可以存储任意类型的数据
# # 1.访问列表
# print(xmcj[2])
# # 2.增加列表哦
# (1)append(value) 把value追加到列表最后 #用法 列表名.appeng[value]
# (2)insert(index,value) 把value插入到index位置 index为下标 #用法 列表名.insert
# #3.删除列表
# del.列表名[index]
# #4.修改
# xmcj[index]=78 #用法列表名+[index]=要改的数值
# #5.列表长度
# len()
arr1 = [1,2,3,4,5,[6,7,8,9]] #二维列表
print(arr1[-1][-2]) #访问上面的二维列表倒数第一个表格中的倒数第一个数
# 元组类型(tuple) 定义:不可变的列表
# 语法:
t1=(1,2,3,3)
#字典类型(dict)
di={'name':'小白','age':18,'sex':'男'}
print(di['name']) #读取
del di['sex'] #删除
print(di)
di['name']='小红' #修改
print(di)
di['tel']=2414 #增加
print(di)
#集合类型(set)
s1={1,2,3,4,44,4,4,4,4} #集合中的每个元素有唯一性
s2={3,4,5}
#数据类型 (数字(int float).str,bool,None,list,tuple,dict,set)
# 常用:int(),float(),str(),bool()
# 不常用:list(),set(),dict(),tuple()
# #运算符 +-*/ %(取余)
# +* 可以才做数字,字符串,列表,元组
# 关系运算符
#>>=<< !=in not in is isnot
# #流程控制
# num=int(input('请输入一个数:'))
# #单路分支
# if num<10:
# print('垃圾')
# print('大垃圾')
#双路分支
#循环语句
#for while
#for 变量名 in 序列:
#循环体
#创建序列的函数
#range(end) range(10) 产生0-9的一个序列
print(list(range(10))) #把0-9的序列转化为列表再打印出来
# range(start,end) range(10,20) 产生10-19的序列
# range(start,end,step) range(0,20,2) 产生0-20 的偶数
for i in range(10):
print("123")
# range for 语法基础上,
# 1.循环输出0-100的偶数和奇数
for x in range(0,101,2):#偶数
print(x)
for x in range(1,101,2):#奇数
print(x)
#利用for循坏 对arr1进行遍历
arr1=[1,2,3,4,5,6,7,8,9]
for item in arr1:
print(item)
for i in range(5):#打印行
print('寒山道'*5) #打印列
for i in range(5):
for j in range(10):
print('*',end='') #end是使连续
print('')#换行
for i in range(5):
for j in range(i+1):
print('寒',end='')
print('')
for i in range(5):
print('山'*(i+1))
for i in range(5):
print('道'*(i+1))
for i in range(1,6):
for j in range(0,6-i):
print('道',end='')
print('')
for i in range(1,6):
print('到'*(6-i))
for i in range(1,6):
for x in range(5-i):
print(' ',end='')
for j in range(i):
print('寒',end='')
print('')
for i in range(1,6):
print(' '*(5-i)+'*'*i)
#J九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(f'{j}*{i}={i*j} ',end='')
print('')
#
# 干预循环:
# break 退出循环
# # continue 退出本次循环,进行下一次循环
# arr = [1,2,3,4,5,6]
# for i in arr:
# # if i == 3:
# # break
# # continue
# print(i)
#
# # while循环
# # 语法:
# # while 表达式:
# # 循环体
#
# # 猜数字
# # num1 = 100
# # num = int(input('请输入一个数:'))
# # while num!=num1:
# # num = int(input('重来:'))
# # print('nb')
# # import random
# # num1=random.randint(1,100)
# #
# # while True:
# # num = int(input('请输入一个1-100的数字:'))
# # if num<num1:
# # print('太小')
# # elif num>num1:
# # print('太大')
# # else:
# # print('ok')
# # break
#
# # wihle(0-100偶数)
# num=0
# while num<=100:
# if num%2==0:
# print(num)
# num+=1
#
# row=1
# while row<3:
# col=1
# sp=1
#
#
#
# #函数 定义:封装一个特定功能的代码块以便重复利用
# #语法
# # 调用函数
# # 函数名(实参)
# '''
# def 函数名(形参):
# 函数体
# 【返回值】
# '''
def add(a,b):
print(a+b)
add(10,20)
def sanjx(num):
for i in range(1,num+1):
print('*'*i)
sanjx(5)
'''
用法:
必选参数
默认参数
可变参数
关键字参数
'''
#可变参数
def sum(*b):
res=0
for i in b:
res+=i
print(res)
sum(1,2,3,4,5)
#关键字参数
def fn(**info):
print(info)
fn(name='小白',sex='男',age=18)
#返回值:终止函数and给函数一个返回值以便再函数外部使用
# 高阶函数
'''
函数的返回值或实参使另外一个函数,这个函数就成为高阶函数 #定义
分类:
返回值高阶函数
实参高阶函数
'''
# 闭包
# 递归
def fn(a,b):
return a*b
def c(a,b,fn):
res=fn(a,b)
print(res)
c(2,5,fn) #实参高阶函数
def fun():
def newfun():
print('hahah')
return newfun
newfun=fun
newfun()
#闭包
#定义:两个嵌套关系的函数,内层函数使用外层的变量,在全局中调用内层函数,此刻形成了闭包
#作用域
#全局作用域 局部作用域
#递归
#自己调用自己
def jiec(num):
if num==1:
return 1
return num*jiec(num-1)
print(jiec(3))
string1='山西/太原/小店'
print(string1.split("/"))
#面向过程 用函数实现
###面向对象
# 类 对象(实例)
#人类
# class Person:
# def __init__(self):#构造函数,在实例化对象时自动调用 self里面放的是属性
# self.name = 'hsd'
# self.sex = ''
# self.age = ''
# def cry(self):
# print(f'{self.name}在哭')
#
#
# hsd = Person()
# hsd.name= "小明"
# hsd.cry()
class Person:
name = ''
sex = ''
age = ""
def cry(self):
print(f'{self.name}在哭')
q1=Person()
q1.name='lalala'
q1.cry()
import time
class Clock:
def __init__(self,h,m,s):
self.h = h
self.m = m
self.s = s
def run(self):
while True:
self.s+=1
if self.s>=60:
self.m+=1
self.s=0
if self.m>=60:
self.h+=1
self.m=0
if self.h>=24:
self.h=0
time.sleep(1)
print('%0.2d:%0.2d:%0.2d'%(self.h,self.m,self.s))
c1=Clock(17,48,49)
c1.run()