目录
01-Python注释
02-Python变量
03-python数据类型(这里参考了A君的内容)
04-python输出
05-python输入
06-数据类型转换
07-运算符
08-判断语句
09-三目运算符
10-循环语句
11-循环语句-for循环
12-字符串
13-猜数字游戏
因为仅供自己看,所以没有特别将文本内容提到文章外,看起来不好看。另外,这是自己大脑加工过的,一些部分是按照自己的书写习惯和基础写的,如果不符合心意,请多见谅。
'''
01-python注释
'''
#1.单行注释:在代码上方解释代码内容
'''
多行注释,在函数上方解释函数内容
'''
"""
多行注释(文档注释),在类上方解释类内容
"""
'''
02-python变量
int age=19,java写法
age=19,python写法
'''
#1.变量
age=19
'''
变量与常量的区别?
变量变量值的名称可变,常量不可变
'''
#2.定义变量
"""
1.命名规则
*由字母、数字、下划线组成
*数字不开头
*不能使用内置关键词
*严格区分大小写
"""
name="lili"
Name="LilI"
print(name)
print(Name)
"""
2.命名方式
*大驼峰 AaaBbb
*小驼峰 Aaabbb
"""
Student_Name="ZhangSan"
Student_name="Zhangsan"
A君:Python中list,tuple,dict,set的区别和用法 - soaringEveryday - 博客园 (cnblogs.com)https://www.cnblogs.com/soaringEveryday/p/5044007.html
'''
03-Python数据类型
数值 int 整型
float 浮点型
布尔 True 真
False 假
字符 str===>String
列表 List==>List []-->列队、列阵等列~ 都是竖着的,列表的符号也是竖着的,中括号
集合 set===>set S-->S形曲线-->{}
元组 tuple ()-->元-->圆-->圆形,小括号
字典 disc==>Map {}-->字典要花钱买-->花-->花括号
Python 自动检测数据类型
type()
'''
#1.int:
age=10
#2.float:
flo=10.0
#3.bool:
flag=False
#4.str:
"""
单引号&双引号
*输出有单引号就用双引号,反之相反
my_str = "I'm a student"
my_str = 'Jason said "I like you"'
*输出有单引号想用单引号就利用转义字符
my_str = 'I\'m a student'
my_str = "Jason said \"I like you\""
"""
my_str = 'Jason said "I like you"'
#5.List:
'''
*中括号[]
*元素类型可以不一样,也可以为空
*访问
1.List有序,通过序号访问,从0开始
2.不能越界
>>> print L[3]
Traceback (most recent call last):
File "", line 1, in
IndexError: list index out of range
-3.可以倒序访问,-1=倒数第一个元素
同样不能越界
4.看后面的内置方法
'''
li=[1,2,3]
lo=['a','b','c']
#6.set :
'''
*老师教的——{}
*调用set()方法创建
>>> s = set(['A', 'B', 'C'])
*set相当于没有key的dict,类似List但内容不能重复
*访问
1.无序,不包含重复元素
2.访问意义:仅仅在于查看某个元素是否在这个集合
(1).直接访问:
>>> print 'A' in s
True
>>> print 'D' in s
False
(2).for循环遍历:
s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
#tuple
for x in s:
print x[0],':',x[1]
>>>
Lisa : 85
Adam : 95
Bart : 59
2.应用——具体看后面
'''
sett={1,2,3}
#7.tuple:
'''
*小括号()
*tuple 看作“不变”的list,可以为空
%单元素tuple (比如加一个逗号防止和声明一个整形歧义):t = (3.14,)
*tuple的作用
*希望一个函数返回多个返回值,只需要返回一个tuple
*例子
>>> t = (3.14, 'China', 'Jason', ['A', 'B'])
>>> print t
(3.14, 'China', 'Jason', ['A', 'B'])
>>> L = t[3]
>>> L[0] = 122
>>> L[1] = 233
>>> print t
(3.14, 'China', 'Jason', [122, 233])
*Tuple所谓的不可变指的是指向的位置不可变
*为本例子中第四个元素并不是基本类型,而是一个List类型
所以t指向的该List的位置是不变的
但是List本身的内容是可以变化的
因为List本身在内存中的分配并不是连续的
'''
#8.dict: dictionary--字典
'''
*花括号{}
*实质为Key-Value键值对
*定义【例子】
>>> d = {
【Key】:【Value】
'Adam': 95,
'Lisa': 85,
'Bart': 59,
'Paul': 75
}
>>> print d
{'Lisa': 85, 'Paul': 75, 'Adam': 95, 'Bart': 59}
*计算长度
len(d)
*访问
1.无序,使用Key访问【相当于找字,然后查它的意思。如查’啊‘key,看字典解释value。】
(字符串、整型、浮点型和元组tuple都可以作为dict的key)
*key必须存在
避免key不存在的方法
1.事先查询
>>> if 'Adam' in d : print 'exist key'
exist key
2.get方法【保险】
>>> print d.get('Adam')
95
>>> print d.get('Jason')
None
*key不可变,value可变。
*key不可重复
2.遍历
>>> for key in d : print key, ':', d.get(key)
Lisa : 85
Paul : 75
Adam : 95
Bart : 59
3.合并
1.dict函数:
>>> d1 = {'mike':12, 'jack':19}
>>> d2 = {'jone':22, 'ivy':17}
>>> dMerge = dict(d1.items() + d2.items())
>>> print dMerge
{'mike': 12, 'jack': 19, 'jone': 22, 'ivy': 17}
2.比方法1快
>>> dMerge2 = dict(d1, **d2)
>>> print dMerge2
{'mike': 12, 'jack': 19, 'jone': 22, 'ivy': 17}
等价于:
>>> dMerge3 = dict(d1)
>>> dMerge3.update(d2)
>>> print dMerge
{'mike': 12, 'jack': 19, 'jone': 22, 'ivy': 17}
'''
di={'ltw':'hanhan','zhangqing':'dacongming','date':2022323}
'''
04-python输出
'''
'''
1.格式输出
'''
name = "张学友"
age = 19
salary = 3500.55
#1.1格式化符号
'''
1.种类
%s 字符型
%f 浮点型
%d 整型
2.用法
哪里缺了补哪里
多个则按顺序添加
# 1) 单个格式化输出
print("我的姓名是:%s"%name)
print("我的年龄是:%d"%age)
print("我的薪资是:%f"%salary)
# 2) 多个格式化输出
print("我的姓名是:%s,我的年龄是:%d,我的薪资是%f"%(name,age,salary))
3.特殊输出
1)%03d 0表示自动添0 3表示3位数
num = 1
print("自动补零操作:%03d"%num)
2)%.2f 小数点精确到后两位
'''
#1.2 python3.6后的字符格式(format)化输出【不熟】
print(f"我的姓名:{name}")
print("{},{}".format("张无忌","张学友"))
#1.3 小符号
# 转义字符 \n 换行符
print("今天的天气很差,\n没有阳光")
# 转义字符 \t tab符
print("张老师\t真帅啊")
# 结束符 end='' 自动去掉print的换行符 加入结束符在里面
print("张老师真胖啊",end="#")
print("张老师真没啊")
'''
05-python输入
raw_input 2.0
input 3.0
input==>输入的内容会自动转换成字符型
'''
name = input("inter:")
print("show:",name)
print("showtype:",type(name))
'''
06-数据类型转换
1.int() 整型
2.float() 浮点型
3.str() 字符型
*4.repr() 字符型
repr(x) 将对象x转换为表达式字符串
str()&repr()
简单版:
str()输出为引号内内容
repr()输出为含引号的全部内容
*5.complex(real,[,imag])复数,前实部后虚部
6.tuple(s) 将序列s转换为元组
7.list(s) 将序列s转换为列表
*8.eval() 计算字符串中有效python表达式,并返回一个对象
对于许多类型来说,当字符串传到eval()函数中时,这个函数尝试返回一个与对象值相同的字符串。
'''
# 1.int()
st = "19"
print("1.int()转换前:",type(st))
print("1.int()转换后:",type(int(st)))
# 2.float()
ft = "36.88"
print("2.float()转换前:",type(ft))
print("2.float()抓换后:",type(float(ft)))
# 3.str()
it = 23
print("3.str()转换前:",type(it))
print("3.str()转换后:",type(str(it)))
# 4.tuple()
tp = [18,'张无忌',36]
print("4.tuple()转换前:",type(tp))
print("4.tuple()转换后:",type(tuple(tp)))
# 5.list()
lt = "张无忌很帅啊"
print("5.list()转换前:",type(lt))
print("5.list()转换后:",type(list(lt)))
# 6.eval()
el = "[1,2,3]"
el = '(100,100,100)'
print("6.eval()转换前:",type(el))
print("6.eval()转换后:",type(eval(el)))
print(eval(el))
'''
07-运算符
1.算术运算符
+-*/
** 指数运算符(幂运算)
// 地板除
地板除&天花板除
向下取整&向上取整
% 取余运算
() 小括号
2.赋值运算符
=
3.复合赋值运算符
-= += *= /= **= //= %=
4.比较运算符
< > != == [<> 不等于] <= >= is
5.逻辑运算符
and(且)or(或)not(非)
'''
'''
1.算术运算符
'''
# **
a=2**3
print("a=",a)
# //
b=9//4
print("b=",b)
# %
c=9%4
print("c=",c)
# *
d=2*(1+3)
print("d=",d)
'''
2.赋值运算符=
'''
a = 2
'''
3.复合赋值运算符
'''
e=10
# **=
e **=2
print("e=",e)
# //=
e //=2
print("e=",e)
# /= 得出小数点
e /=2
print("e=",e)
# %=
e %=2
print("e=",e)
'''
4.比较运算符
== 比较的值
is 比较值和地址
查看变量的地址————>id()
'''
# == is
f=10
g=10
print("id-f:",id(f))
print("id-g:",id(g))
print("10:",id(10))
print("==:",f==g)
print("is:",f is g)
a = 30
b = 29
print(id(a))
print(id(b))
# 地址值中指向的值比较
print(a == (b+1))
print(a is (b+1))
# !=
a = 30
b = 40
print("!= 不等于",a != b)
'''
5.逻辑运算符
'''
#and 同真为真 短路
a=1
b=2
print("and:",a == 1 and b==2)
#or 同假为假 短路
print("or:",a != 1 and b!=2)
#not
print("not:",not a == 1)
'''
08-判断语句
if elif else
使用方法:
if-->提出条件
(elif:先前条件不满足,还有商量的余地,elif后面跟的就是‘余地’)
else>否则
【简单:代码为老师代码】
'''
# 房子
house = 1000000
# 车子
car = 100000
# 存款
money = 100000
# 薪资
salary = 20000
'''
1.if语句
if 条件表达式
代码块
'''
if salary >= 20000:
print("我可以找对象啦")
'''
2.if else语法
if 条件表达式:
代码块1
else:
代码块2
'''
if salary > 20000:
print("我可以找对象啦")
else:
print("我还是个小朋友")
'''
3.if elif else 语法
if 条件表达式1:
代码块1
elif 条件表达式2:
代码块2
else:
代码块3
'''
if car < 50000:
print("我是一个单身狗")
elif car > 50000:
print("我可以找女朋友啦")
else:
print("我还是继续单身吧")
'''
4.if的嵌套
'''
# 有房子吗?
if house >= 1000000:
print("我们可以试一试")
if car >= 100000:#有车吗
print("我现在就是你的女朋友啦")
if money >= 100000:# 有存款吗
print("我们啥时候见咱爸妈")
if salary >= 20000:
print("老公,咱们现在就去领证啦")
else:
print("哎,有缘无份啊")
else:
print("没钱,还来相亲啊")
else:
print("我还有点事情,要先走啦")
else:
print("我喜欢头圆的")
'''
09-三目运算符
(Java :条件表达式?值:值)
值 if 条件表达式 else 值
'''
#不能写成,b=10 if a!=0 else b=20,理解--运算对象唯一,为b
a=0
b=10 if a!=0 else 20
print("b=",b)
'''
猜数字游戏
1.随机产生0-100之间的随机数
2.用户输入数字
3.判断是否
大了,小了,对了,输入有误
使用if语句进行判断 截图到大群里面
'''
import random
randomnum=random.randint(0,100)
userNum = int(input("请输入你想要猜的数字(0,100):"))
if userNum>randomnum:
print("big")
elif userNum
'''
10-循环语句
1.意义
某事重复执行
2.语法
2.1 形式
开锁匠
while 判读语句(门锁):
循环体(开锁匠调锁)
2.1 结束关键词
continue 跳出本次循环
break 跳出整个循环
3.应用
3.1累计运算
3.1.1
3.1.2
4.循环嵌套
4.1每个门内都要有个开锁匠,老师的例子
4.2应用@
4.2.1 打印星号* 正方形 5*5
4.2.2 打印星号* 三角形 5*5
4.2.3 打印九九乘法表
要求:
1.小数字在前 1 * 9 = 9
2.自动补零 1 * 1 = 01
'''
#2.1 形式
index=1
while index<10:
print("2")
index +=1
#2.2 结束关键词
#continue
while index<10:
if index ==3:
print("3")
continue
print("2")
index +=1
#break
while index<10:
if index ==3:
print("3")
break
print("2")
index +=1
#3.1累计运算
#3.1.1 + 循环1-100之间的累加和
sum1=0
while index<=100:
sum1 +=index
index +=1
print("sum1=",sum1)
#3.1.2 循环1-100之间的偶数累加和
sum2=0
while index<=100:
if(index%2==0):
sum2 +=index
index +=1
print("sum2=",sum2)
#4.1
index = 0
while index < 100:
ix = 0
while ix < index:
print("媳妇我错了")
ix += 1
print("我去刷碗了")
index += 1
#4.2.1 打印星号* 正方形 5*5
#@ end=''第一次写的时候不会用 end="s",以s结尾
row =1
while row <=5:
col=1
while col<=5:
print("*",end='')
col+=1
print("\n",end='')
row+=1
#4.2.2 打印星号* 三角形 5*5
row =1
while row <=5:
col=1
while col<=row:
print("*",end='')
col+=1
print("\n",end='')
row+=1
'''
4.2.3 打印九九乘法表
要求:
1.小数字在前 1 * 9 = 9
2.自动补零 1 * 1 = 01
'''
row =1
while row <=9:
col=1
while col<=row:
print("%d*%d=%02d "%(row,col,row*col),end='')
col+=1
print("\n",end='')
row+=1
'''
for循环:
1.语法
1.1 for in
for 临时变量 in 序列:
执行语句1
执行语句2
~~~~~~
1.2 for else
for 临时变量 in 序列:
执行语句1
执行语句2
~~~~~~
else:
执行语句1
~~~~~~
1.2.1 序列有值 执行完for再执行else
1.2.2 序列为空 直接执行else
2.退出循环 sys.exit(0) @
'''
#1.1
name='Helloworld'
for ch in name:
print("for in :",ch)
#1.2.1
for ch in name:
print("for else:",ch)
else:
print("ok")
#1.2.2
for ch in "":
print("for else:",ch)
else:
print("ok?")
#2
import sys
for ch in name:
if ch=='l':
print("exit")
sys.exit(0)
else:
print("sys:",ch)
'''
12-字符串
1.定义
1.'' ""表示字符
2.type()-->
3.'''''' 和""""""(支持格式较多)
4.三引号支持换行
2.下标
1.表示:[]
2.从左向右,从0开始
2.len()————>获取总长
3.切片
1.表示:[起始位置(默认从0):结束位置(默认尾字符):步长(默认为1)]
2.原则:从左往右,左闭右开
3.步长为负:
从右往左,从-1开始
自己补充:其实管它怎么定义的
步长就是 +步长
只要记住从右往左数是从0开始,0,1,2,~~~
从左往右数是从-1开始,-1,-2,-3,~~~
然后位置就是+步长
例子:老师的
'''
address = "江苏省徐州市铜山区上海路102号"
# 3.1 铜山区上海路102号 6<= <17
print(address[6:])
# 3.2 江苏省徐州市 0<= <6
print(address[:6])
# 3.3 江 省 州 铜 区 海 1 2
print(address[::2])
# 3.4 铜山区
print(address[6:9])
# 3.5 从右往左
print(address[::-1])
# 3.6 市 州 徐
print(address[-11:-14:-1])
# 3.7 102
print(address[-4:-1])
'''
猜数字游戏
1.随机产生0-100之间的随机数
2.使用while True:死循环 直到猜对为止
3.使用input函数输入用户所猜的数字
4.大了 小了 对了(退出系统) 输入有误
'''
import random
randomnum = random.randint(0,100)
count = 0
while True:
username = int(input("请输入您想要猜测的数字(0,100):"))
if username>0 and username<100:
if username == randomnum:
print("You're right!")
break
elif username>randomnum:
print("big!")
else:
print("small!")
else:
print("not in 0,100!")
count +=1
print("count:",count)