因为你写的代码是⼈类可读的,但计算机是靠电流驱动的,它只认010100101,我们即将安装的python环境就是Python解释器,它就像个翻译官,把⼈类代码翻译成机器能读懂的010101⼆进制代码,这样才能运⾏哈。
代码文件需由解释器调用执行。
变量名、变量值、内存地址
变量,是⽤于在内存中存放程序数据的容器。
程序是从上到下依次逐⾏执⾏的,所以变量必须先定义,后调⽤, 否则会报错
变量的定义规则:
定义变量不好的⽅式
底层原理:
1、将180本身的货架便签height(变量)撕掉贴到185货物上;
2、180这个货物其实还是存在的,但是因为没有变量名所以找不到;
3、垃圾处理机制就会定期清除这些没有标签的货物。
del name 删除变量
原理:晒出了变量(货架标签)但是货物(实实在在的值)还在。
整数,浮点,字符串,布尔,列表,元组,字典,集合
**int(整型):**你存的所有的整数,都是这个类型
>>> age_alex = 26
>>> alex_salary = 500000000
>>> type(age_alex),type(alex_salary) (, ) # 都是int类型
float (浮点型),即⼩数
>>> type(2.32)
>>> type(-3.141592653)
>>> name = "Alex Li" #双引号
>>> age = "22" #只要加引号就是字符串
>>> age2 = 22 #int
>>>
>>> msg = '''My name is Alex, I am 22 years old!''' #我擦,3个引号也可以
>>>
>>> hometown = 'ShanDong' #单引号也可以
那单引号、双引号、多引号有什么区别呢? 让我⼤声告诉你,单双引号⽊有任何区别,只有下⾯这种情况 你需要考虑单双的配合
msg = "My name is Alex , I'm 22 years old!"
多引号什么作⽤呢?作⽤就是多⾏字符串必须⽤多引号
msg = '''
今天我想写⾸⼩诗,
歌颂我的同桌,
你看他那乌⿊的短发,
好像⼀只炸⽑鸡。
'''
print(msg)
数字可以进⾏加减乘除等运算,字符串呢?让我⼤声告诉你,也能?what ?是的,但只能进⾏”相 加”和”相乘”运算。
>>> name
'Alex Li'
>>> age
'22'
>>>
>>> name + age #相加其实就是简单拼接
'Alex Li22'
>>>
>>> name * 10 #相乘其实就是复制⾃⼰多少次,再拼接在⼀起
'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'
注意,字符串的拼接只能是双⽅都是字符串,不能跟数字或其它类型拼接
>>> name = "Alex Li"
>>> age = 23
>>>
>>> type(name),type(age) (, )
>>> name + age # 字符串跟数字相加报错
Traceback (most recent call last):
File "", line 1, in
TypeError: cannot concatenate 'str' and 'int' objects
就两个值 ,⼀个True(真),⼀个False(假), 主要⽤作逻辑判断
>>> a=3
>>> b=5
>>>
>>> a > b #不成⽴就是False,即假
False
>>>
>>> a < b #成⽴就是True, 即真
True
如果要把全班的⼈名在内存⾥存下来,⽤上⾯的字符串类型可以做到,但取的时候不⽅便。
names = "Alex,Jack,Rain,Rachel,Mack..."
print(names) 它打印的是所有⼈的信息,如果想取出Rain,没办法(可以⽤字符串切割⽅式,但是很麻烦)。此时,⽤列表就⽐较合适。
>>> names = ["Alex","Jack","Rain","Rachel","Mack"]
>>> names[2] #为何names[2]就能取出Rain?
'Rain'
因为列表的是通过下标来标记元素位置的,下标也可称为索引。 下标从0开始,每添加⼀个元素,就⾃动+1
元素添加:元素的添加有2种⽅式,插⼊、追加,插⼊指可以可以把⼀个新元素插⼊到列表的任意位置
>>> names
['Alex', 'Jack', 'Rain', 'Rachel', 'Mack']
>>> names.insert(3,"⼩明") #3代表你想插⼊的下标位置
>>> names
['Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack']
>>>
>>> names
['Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack']
>>> names.append("⼩强")
>>> names
['Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack', '⼩强']
列表的修改:直接根据下标找到元素重新赋值即可
>>> names[0] = "⾦⻆⼤王Alex"
>>> names
['⾦⻆⼤王Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack', '⼩强']
删除元素:有2种删除⽅法,⼀个是下标删除,⼀个是元素值删除。
>>> names
['⾦⻆⼤王Alex', 'Jack', 'Rain', '⼩明', 'Rachel', 'Mack', '⼩强']
>>> names.remove("⼩明") # 通过指定元素名删除, 会删除从左开始找到的第⼀个⼩明, 如果有
多个⼩明,则只删除找到的第⼀个。
>>> names
['⾦⻆⼤王Alex', 'Jack', 'Rain', 'Rachel', 'Mack', '⼩强']
>>> del names[3] # 通过指定下标删除
判断某元素是否在列表⾥
>>> names
['⾦⻆⼤王Alex', 'Jack', 'Rain', 'Rachel', 'Mack', '⼩强']
>>>
>>> "Mack" in names
True
运算按种类可分为算数运算、⽐较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算,我们暂只学习算数运算、⽐较运算、逻辑运算、赋值运算、成员运算
or的优先级更⾼,注意,我画的红线,只要遇到or 就相当于把公式分成2半了
括号⾥的⼦公式会先计算出来结果,再跟其它的值对⽐。 因为括号的优先级更⾼。
只有in, not in 2种, ⽤来测试数据中是否包含了⼀系列的成员
>>> names
['⾦⻆⼤王Alex', 'Jack', 'Rain', 'Rachel', 'Mack', '⼩强']
>>> "Jack" in names
True
>>> "Jack" not in names
False
>>> s = "我是沙河最帅的仔"
>>> "沙河" in s
True
注意,可以⽤来测试字符串、列表、元组、字典、集合,但是不能测试数字类型
若你的程序要接收⽤户指令,可以⽤input语法:
执⾏脚本就会发现,程序会等待你输⼊姓名后再往下继续⾛。
可以让⽤户输⼊多个信息,如下
注意,input()⽅法接收的只是字符串,即使你输⼊的是数字,它也会按字符串处理
注意字符串开头要加上 f ,才可以在⾥⾯⽤ {} 来引⽤外部变量
name = input("Name:")
age = input("Age:")
job = input("Job:")
hobbie = input("Hobbie:")
info = f'''
------------ info of {name} -----------
Name : {name}
Age : {age}
job : {job}
Hobbie: {hobbie}
------------- end -----------------
'''
print(info)
上⾯的if代码⾥,每个条件的下⼀⾏都缩进了4个空格,这是为什么呢?这就是Python的⼀⼤特⾊,强制缩进,⽬的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序怎么会知道,当你的条件成⽴后,去执⾏哪些代码呢?在其它的语⾔⾥,⼤多通过 {} 来确定代码块,⽐如C,C++,Java,Javascript都是这样。
Python的缩进有以下⼏个原则:
练习:
age_of_oldboy = 48
guess = int(input(">>:"))
if guess > age_of_oldboy :
print("猜的太⼤了,往⼩⾥试试...")
elif guess < age_of_oldboy :
print("猜的太⼩了,往⼤⾥试试...")
else:
print("恭喜你,猜对了...")
分数:
score=int(input("score="))
if score>=90:
print("A")
elif score>=80:
print("B")
elif score>=60:
print("C")
elif score>=40:
print("D")
else:
print("E")
代码是从上到下依次判断,只要满⾜⼀个,就不会再往下⾛啦,这⼀点⼀定要清楚呀!