# 标识符
# 标识符只能用字母,数字,下划线组成
# 开头不能是下划线之外的其他特殊字符,开头只能是字母,数字,下划线
# 不能使用Python关键字作为标识符,class,None,ture,feale,next等
# 标识符严格区分大小写
# 命名使代码通俗易懂,驼峰命名法,
# 数据类型
# int float double,整数型和浮点型
# 不明确数据类型,type()函数获取数据类型
# print(type())
# trl/多行注释
# Ctrl+alt+L 一键美化代码
# 字符串
# str将其他类型转换成字符串,str(),
# int和float将其他类型转换成整型和者浮点型,int(),float()
# 字符串
# 定义字符串:
# str1='',定义字符串必须带单引号,带单引号都是字符串
# str1='jfvvbjsvbkv'#定义字符串
# str2=str1.capitalize()#将首字母大写函数
# print(str2)#Jfvvbjsvbkv
# str1.count(self,x,start,end),统计某些字符出现的次数,不写self,str3=str1.count('j')
# str1.split('a')将字符串a分割,不要a,成为一个列表,每个元素是对应小字符串
# str1.upper()#将小写全部转化成大写
# str1.lower()#将大写全部转化成小写
# str1.lstrip(self,chars)#去除字符串中左边的chars字符
# str1.rstrip(self,chars)#去除字符串右边的chars字符
# str1.replace(self,old,new,count)#替换count次字符串的部分内容
# 列表
# list1 = [1, 2, 3, 4, 5, 6] # 定义列表,数据之间逗号隔开,包括字符串整浮点数等
# list1.append(self,value)#在列表末尾添加数据,一次只能添加一个数字或者一个列表,添加列表还是列表
# list1.extend(self,interable)#可以将列表中的元素排列在新的列表之后,列表拆分成元素
# list1.index(self,value,start,top)#索引列表中的元素
# list1.insert(self,index,object)#往索引位置添加元素index是列表位置元素数字位置
# del list1[index]#删除索引位置的元素
# list1.count(self,value)#统计value元素出现次数
# list.remove(self.value)#删除列表value元素,从前往后删除第一个,只会删除一个
# list2=list1[start:end:step]#列表切片起始位置结束位置,间隔,不包括结束位置,包头不包尾,step默认是1,-1是列表翻转
# 切片生成一个新的列表元素是小列表,无参数是复制
# len(lis)#求列表的长度
# list1.reverse()#对列表进行翻转
# list1.startwith('go')判断是否以**开头
# list1.endwith('go')判断是否以**结尾
'''
# 字典
# 定义字典,dict
dict1 = {'key1': 'value1', 'key2': 'value2'}
dict2 = {'key3': 'value3', 'key4': 'value4'}
print(dict1['key1']) # 获取字典内容
print(dict1.get('key2')) # 获取字典内容
#遍历字典:for循环遍历
for key,value in dict1.items():#dict1.keys(), dict1.values()
print(key)
print(value)
#将两个字典合并为一个字典
dict1.update(dict2)#将字典2合并到字典1
print(dict1)
dict1.pop('key2')#删除列表中的一个元素
dict1.clear()#清空字典
'''
# 运算符
# 整型+-*/浮点型=浮点型
# //整除取整,向下取整
# %求模,求余数
# *乘法
# **幂操作
# mun +=1 mun=mun+1
# mun -=1 mun=mun-1 */等
# 关系运算符
# < > == != >= <=
# =赋值 ==判断
# 逻辑运算符
# and ,or,not
'''
# practice 1,
# 控制台输入两位数,1。各位,2.输出十位
num1=input('please enter a number:')
#num1=int(input('please enter a number:'))
print("this number is:",num1)
num1=int(num1)
print('十位是:',num1//10)
print('个位是:',num1%10)
please enter a number:38
this number is: 38
十位是: 3
个位是: 8
'''
# if 语句基本格式:
'''
if a>b :
pass#表示空代码
elif a>b:
pass
else:
pass
'''
# for循环基本格式
'''
#列表,字典,数组均可循环,循环次数根据元素个数
#range(n),循环n次,range(1,100,1)
for i in range(n) :
pass
for j in range(m):#嵌套循环
if a==b:
break #满足条件跳出循环,结束
#n*m次循环
#break用来打破循环,用在while循环和for循环中
#continue用来结束本次循环,用在while循环和for循环中
#在for循环中,continue是跳出本次循环,不执行本次循环中continue后面的语句了
#进入到下一次for循环的执行,而break是直接跳出for循环,执行for循环后面的语句。
#总结来说,continue跳出的是小循环,而break跳出的是大循环.
'''
day 1练习题
# 1.控制台输入一个字符串,计算输入字符串中某个字符出现的次数。
'''
str1=str(input('please enter a string:'))
anum=str1.count('a')
print('a出现的次数为:',anum)
'''
# 2.控制台输入你的名字拼音字符串,比如“Zhang Wen Jun”拼音之间有空格,
# 输入之间的首字母大写,要求将你的姓全部大写输出,将你的名全部小写输出
'''
Namestr=str(input('please enter your name:'))
Namestr=Namestr.split()
str1=Namestr[0].upper()
print(str1)
str2=Namestr[1].lower()
#str3=Namestr[2].lower()
print(str2)
'''
# 3.写代码,有如下变量,请按照要求实现每个功能
# name = " gouguoQ "
# a.移除name变量对应值的两边的空格,并输出移除后的内容
# b.判断name变量对应的值是否以"go"开头,并输出结果
# c.判断name变量对应的值是否以"Q"结尾,并输出结果
# d.将name变量对应的值中的"o",替换为"p",并输出结果
# e.将name变量对应的值根据"o"分割,并输出结果
# g.将name变量对应的值变大写,并输出结果
# h.将name变量对应的值变成小写,并输出结果
'''
name = " gouguoQ "
print(name)
name=name.lstrip()
name=name.rstrip()#a移除空格
print(name)
name=list(name)
if name[0]=='g'and name[1]=='0':
print('yes')
else:
print('no')#b
#list1.startwith('go')判断是否以**开头
if name[-1]=='Q':
print('yes')
else:
print('no')#c判断q结尾
name=str(name)
name.replace('o','p')
print(name)#d替换
name.split('o')#e分割
name.upper()
print(name)#g
name.lower()
print(name)#h
'''
#字典操作:
# 创建一个字典
# Student = {“name”:“***”,“age”:18}
# 遍历字典中的key
# 遍历字典中的value
# 同时遍历key与value
# 修改name或者age的数据
# 添加数据 key为class,value为信息与计算科学
# 删除key为class的数据
# Class = {“class”:“信息与计算科学”}的字典添加到student字典中
# 清空字典
'''
dict1={'name':'张琳琳','age':18}
for key in dict1.keys():
print(key)
for value in dict1.values():
print(value)
for key,value in dict1.items():
print(key,value)
dict1={'张琳琳':'张文铄'}
#dict1['name']='张文铄'
print(dict1)
dict1.update({'class':'信息与计算科学'})
print(dict1)
dict1.pop('class')#删除元素,关键字
print(dict1)
Class = {'class':'信息与计算科学'}
dict1.update(Class)#添加元素,链接字典
print(dict1)
dict1.clear()
'''
#列表操作:
# 创建一个列表
# 利用索引获取列表中的数据
# 使用三种方式给列表插入数据
# 删除列表中的指定数据
# 对列表进行切片处理
# 翻转列表
'''
import numpy as np
flist=np.arange(10)
flist=list(flist)
print(flist)
print(flist.index(2))
flist.append(10)
flist.extend([1,2,3])
flist.insert(2,222)#添加数据
print(flist)
flist.remove(5)#删除一个
print(flist)
del flist[0]
flist1=flist[::2]
flist2=flist[::-1]
print(flist1)
print(flist2)
flist.reverse()
print(flist)
'''
# If 语句
# 需求:计算能被17整除的200以内的最大数
# 需求:从控制台输入一个数,判断该数是否能同时被3和6整除
# 需求:吴亦凡招募mv主角,要求:女性,年龄小于18,请从控制台输入你的年龄和性别判断是否满足要求。
'''
for i in range(200,0,1):
if i%17==0:
print(i)
break
num=int(input('please enter a num:'))
if num%3==0 and num%6==0 :
print('yes')
else:
print('no')
print(num%3==0 and num%6==0)
sex=str(input('please enter your sex:'))
ege=int(input('please enter your age:'))
if sex=='女' and age <= 18:
print('yes')
else:
print('吴亦凡不要你')
'''
# For语句
# 小明要去买鱼,他要买n条鱼,买完鱼还要买鱼缸,买鱼缸要求鱼缸里要装满鱼,
# 这时有两种鱼缸,第一种价格为a1,能装n1条鱼,第二种价格为a2,能装n2条鱼,
# 请从控制台输入要买几条鱼,第一种鱼缸的价格和能装多少鱼,第二种鱼缸的价格和能装多少条鱼,
# 输入完毕后计算怎样买鱼缸最划算。当不能装满鱼缸是,就购买失败。
'''
Fnum=int(input('总数;'))
F1num=int(input('fish1装鱼数量:'))
F2num=int(input('fish2装鱼数量:'))
Fpric1=int(input('鱼缸1价格:'))
Fpric2=int(input('鱼缸2价格:'))
n1=int((Fnum/F1num)+1)#全部使用第一种鱼缸的最大数
n2=int((Fnum/F2num)+1)#全部使用第二种鱼缸的最大数
for i in range(n1):
for j in range(n2):
if i*F1num+j*F2num==Fnum:#判断是否能够装满鱼缸
pric=i*Fpric1+j*Fpric2#能够装满就计算价格
print('鱼缸1:'i,'鱼缸2:'j,'总价'pric)
'''



