01-python第一课
来个传统
print "hello word"
Python中的变量
变量就是在内存中开辟空间。
每个变量用的是同一块内存空间,所以新一次改变变量(如:赋值),变量旧的属性被覆盖(新的值取代旧的值)。
x = 1 # 1赋值给了x,x代表1
x = x + 10 # x+10等价于 1+10,最后得出11,11赋值给x
# 也就是说11 覆盖了 1
print(x) # 打印x 结果:11
# 用来注释(注意井号后面有空格)
井号 # 用来注释,解释某一行代码的功能和作用
代码的运行逻辑:
从上到下,从右到左,最后才是赋值
也可以通过变量把一个变量的值直接赋给另一个变量
name1 = "lilei"
name2 = name1
print(name1)
print(name2)
1.输出print
print()
1.同时输出变量
python支持同一命令同时输出变量,默认以空格(占位字符)输出变量
a = 1
b = 2
c = 3
print(a, b, c)
- 使用
sep =
更改间隔的内容
a = 1
b = 2
c = 3
print(a,b,c, sep = "间隔")
不同行的print
默认输出换行
print(a)
print(b)
print(c)
- 使用
end =
改变换行内容
print(a, end = "结束")
print(b, end = "结束")
print(c, end = "结束")
end
可以和sep
同时使用
a = 1
b = 2
c = 3
print(a, b, c, sep="~", end="love Python")
输出结果将没有换行,如有需要添加peint()
换行
2. 变量
1. 赋值方式
变量基本赋值方式如上,将右边的值赋给左边
变量也可以同时赋值
a, b, c = 1, 2, 3
print(a, b, c)
- 同时赋同一个值
a = b = c = 1
print(a, b, c)
- python特色 交换值
Austin = "Coke" # 该赋值可以理解为倒果汁的过程
Jaden = "juice" # 该赋值可以理解为倒果汁的过程
Austin, Jaden = Jaden, Austin #先右边取值,先认定杯子
# 直接交换杯子(赋值),这样就不需要一个新杯子换果汁了
print("Austin", Austin)
print("Jaden", Jaden)
2. 变量的命名规则
- 大小写英文、数字和
_
下划线的结合,且不能用数字开头; 【数字开头报错1】- 不能包含空格,请用下划线代替 【报错2】
- Python中变量名区分大小写;
- **系统关键词**不能做变量名使用「获取关键词列表:
help('keywords')
」【报错类型3】 - 不要使用Python内置函数名称做变量(如:
print
) 【4】
Here is a list of the Python keywords. Enter any keyword to get more help.
False break for not
None class from or
True continue global pass
__peg_parser__ def if raise
and del import return
as elif in try
assert else is while
async except lambda with
await finally nonlocal yield
:::tab
@tab【报错1】
1n = 1
@tab 【报错2】
n n = 1
@tab 【报错3】
await = 1
@tab 【4】
没报错。但是不能运行
print = 1
print(print)
:::
3. 数据类型
python不需要要求申明数据类型,会根据值自动分配一个默认的数据类型
布尔型 boolean
关键词: bool()
数字型 integer
整型:int()
浮点型:float()
字符串 String
关键词:str()
元组 Tuple
关键词:tuple()
列表 list
关键词:list()
字典 dictionary
关键词:dict()
集合 set
关键词:set()
如果想要知道数据被分配了哪种类型,请使用type()
type
a. 数字型「int、float」「bool」
- 整形
int_num = 1
t = type(int_num)
print(int_num)
print("int num type is>>>",t)
print("直接检测数据类型并输出:",type(int_num))
- 浮点数
float_num = 1
t = type(int_num)
print(int_num)
print("int num type is>>>",t)
print("直接检测数据类型并输出:",type(int_num))
- 布尔型 「bool」
condition= True
t = type(condition)
print(condition)
print("int num type is>>>",t)
print("直接检测数据类型并输出>>>",type(condition))
b. 字符串「str」
string = "Hello llohe"
t = type(string)
print(string)
print("int num type is>>>",string)
print("直接检测数据类型并输出>>>",type(string))
特性
有序性
- 从左到右。下标为0开始,到n
- 从右到左。下标从-1开始,到-n
- 引号里出现的,都算一个下标
不可变性
- 字符串被创建出来后,就不能被改变
- 注意⚠️:我们说的,是在运行过程中,不能对字符串有修改、增加、删除的操作
任意字符
- 键盘⌨️上可以输入的任何字符,都是字符串的元素
- 字符放到字符串中,都将成为字符串类型。「也就是:里面的每一个元素都可以称为子字符」
c. 列表「list」
lst = ("Hallo", "lloha",1, 1.1, ("look","book",11),[12,"汉堡包", True, False])
t = type(lst)
print(lst)
print("int num type is>>>",t)
print("直接检测数据类型并输出>>>",type(lst))
特性
有序性
从左到右。下标为0开始
从右到左。下标从-1开始
列表中每一个元素算一个下标
比如:
Ha1lo
整体是下标0,lloha
是下标1("look","book",11)
整体是下标4
可变性
- 程序在运行过程中,列表可以被「添加、删除、修改」
任意数据类型
python所有的数据类型
d. 元组「tuple」
tup = ("Hallo", "lloha",1, 1.1, ("look","book",11),[12,"汉堡包"], True, False)
t = type(tup)
print(tup)
print("int num type is>>>",t)
print("直接检测数据类型并输出>>>",type(tup))
特性
有序性
从左到右。下标为0开始
从右到左。下标从-1开始
列表中每一个元素算一个下标
比如:
Ha1lo
整体是下标0,lloha
是下标1("look","book",11)
整体是下标4
不可变性
- 与其他不可变类型不同,元组中可以插入可变的列表
任意数据类型
探究「列表与元组」
提示
列表和元组的关键区别在于数据是否可变
- 如果数据类型是可变的,比如社交平台的日记功能,统计一个用户在一周内看了哪些用户的帖子——则用列表更为合适
- 如果如果存储的数据和数量不变,比如有一个软件,需要放回的是某一地点的经纬度,然后直接传输给用户看——则元组更为合适
假设
假设1:现在有一个仓库,你要向仓库添加物品。仓库很大,现有的物品也很多,你不知道还有没有位置可以存放。此时我们是不是需要聘请一个仓库管理员,这样我们就可以直接问仓库管理员:里面还有哪个位置(是否有位置?)仓库管理员会告诉你,并且你可以直接把你的物品,添加进去。
问题来了,仓库管理员为什么知道仓库是否有位置?——因为仓库管理员会一直跟踪这个仓库的状态;
假设2:现在有一个原子弹的仓库,仓库创建之后,只能存放一个原子弹。那么,我们需要设立一个专门的人员跟踪:原子弹仓库的状态吗?——不需要,此时在聘请一个就显得浪费了。(不然,领导没油水了~hhhhh)
Why?
- 用户日志📔,是不是会一直变动(记录📝看了哪些帖子),我们是不是需要有一个类似仓库管理员的“人”,来跟踪并且知道:是否有位置(是否有空间/内存),还需要知道在哪里添加。——列表更合适,因为列表可变。「可变意味着:添加、删除、修改」
- 元组为什么不合适?——因为,你每当需要添加数据的时候,就得重新创建一个新的元组。(就类似于:你创建原子弹的仓库,肯定是刚刚好可以存放一个,那么你想存放两个的时候,只能重新再创建一个仓库。)
- 经纬度会改变吗?显然是不会的,那么就不需要一个多余的“人”去跟踪状态。——用列表可以吗?可以!但是没必要。「因为我们不需要仓库管理员」用列表有点浪费资源了。元组的功能刚刚好够用。
- 我们讲究:不浪费,合适就好。
- 用户日志📔,是不是会一直变动(记录📝看了哪些帖子),我们是不是需要有一个类似仓库管理员的“人”,来跟踪并且知道:是否有位置(是否有空间/内存),还需要知道在哪里添加。——列表更合适,因为列表可变。「可变意味着:添加、删除、修改」
e. 字典「dict」
d = {"name":"aiyc","age":18,1:"int",1.1:1,"tup":(123)}
t = type(d)
print(d)
print("d types is:>>>",t)
print("直接检测数据类型,并输出:>>>",type(d))
特性
无序性[python 3.6+ 之后有序]
先以无序性理解即可;
有些前期基本用不到;
字典的组成:是由一系列的key和value组成。
d = {"key1": “value1“,“key2“:"value2".....}
Key:
- 不可变的数据类型,才可以当作字典key;
- 比如:字符串、数字、布尔、元组;
value: 任意数据类型,Python所拥有的数据类型;
可变性:可以添加、修改、删除键对值;
f.集合「set」
set1={1,2,"aiyc",1.1,"book",(1,2,3),False}
t = type(set1)
print(set1)
print("set1 type is>>>",t)
print("直接检测数据类型并输出>>>",type(set1))
#output {False, 1, 2, 1.1, 'book', (1, 2, 3), 'aiyc'}
特性
无序性
集合是没有顺序的,也就是没有下标
output
的顺序可能和input
不同不可变性,确定性
set1 ={1,2,[1,2,3]}
#list is unhashable.
# output
# Traceback (most recent call last):
# File "/Module2/code5-7det.py", line 8, in <module>
# set1 ={1,2,[1,2,3]}
# TypeError: unhashable type: 'list'
在其中插入可变参数会报错
- 去重性
set1 = {1, 2, 1, 1, 2, 1, 1}
print(set1)
直接检测数据类型并输出>>> <class 'set'>
{1, 2}
- 可更改性
5. 练习
- 在 Python 中,变量名可以以数字开始。
- [ ] 对
- [x] 错
- 在 Python 中,以下哪个变量名是有效的?
- [ ] 2myVar
- [x] myVar2
- [ ] my-var
- [ ] my var
- 在 Python 中,变量名区分大小写。
- [x] 对
- [ ] 错
- 在 Python 中,
my_var
和myVar
是同一个变量。- [ ] 对
- [x] 错
- 变量名可以是 Python 中的关键字。
- [ ] 对
- [x] 错
None
是 Python 中的特殊类型,表示没有值或空值。- [x] 对
- [ ] 错
- 在 Python 中,以下哪个是有效的变量赋值?
- [ ] 123abc = "hello"
- [ ] for = "world"
- [x] _hidden = "secret"
- [ ] import = 123
- 在 Python 中,一个变量可以同时被赋予多个值。
- [ ] 对
- [x] 错
- 在 Python 中,以下哪个是多变量赋值?
- [x] a, b, c = 1, 2, 3
- [ ] a = 1, b = 2, c = 3
- [ ] a; b; c = 1; 2; 3
- [ ] a = 1; b = 2; c = 3;
- 变量在使用之前必须被赋值。
- [x] 对
- [ ] 错
- Python 中变量的类型是静态的,一旦赋值就不能改变。
- [ ] 对
- [x] 错
- 在 Python 中,以下哪个表示全局变量?
- [ ] var = "hello"
- [x] global var
- [ ] var(global)
- [ ] def var():
- 以下哪个表示删除变量?
- [ ] delete x
- [x] del x
- [ ] remove x
- [ ] destroy x
x = 5
之后y = x
,现在改变y
的值,x
的值也会改变。- [ ] 对
- [x] 错
- ⚠️
x = [1, 2, 3]
之后y = x
,现在改变y
的列表内容,x
的内容也会改变。- [x] 对
- [ ] 错
- 在 Python 中,变量只能存储基本数据类型的值,如整数或字符串。
- [ ] 对
- [x] 错
第二题
- Python 变量的命名规则中,以下哪一项是错误的?
- [ ] a) 变量名可以由字母、数字和下划线组成
- [ ] b) 变量名不能以数字开头
- [x] c) 变量名可以以特殊字符,如@或#,开头
- [ ] d) 变量名可以包含大写和小写字母
- 在 Python 中,如何使用 print 函数打印字符串 "
Hello, World!
"?
- [ ] a)
print "Hello, World!"
- [x] b)
print("Hello, World!")
- [ ] c)
echo("Hello, World!")
- [ ] d)
print[Hello, World!]
- print 函数中的 end 参数用于什么?
- [ ] a) 确定是否结束程序
- [x] b) 在输出的末尾添加指定字符
- [ ] c) 控制输出的数量
- [ ] d) 确定输出的顺序
- 在 print 函数中,用"
,
"作为分隔符,应该如何操作?
- [x] a) 使用参数
sep = ","
- [ ] b) 使用参数
end = ","
- [ ] c) 使用参数
print = ","
- [ ] d) 使用参数
divide = ","
- 如果我想在不换行的情况下输出两个变量 a 和 b,以下哪个是正确的?
- [x] a)
print(a, b, end = ' ')
- [ ] b)
print(a, b, sep = ' ')
- [ ] c)
print(a; b)
- [ ] d)
print(a, b, end = '\n')
- 在 Python 中,以下哪种方法可以用来删除变量?
- [ ] a)
drop(variable)
- [ ] b)
remove(variable)
- [x] c)
del variable
- [ ] d)
delete variable
在 Python 中,以下哪个语句是错误的?
[ ] a)
x, y, z = "Orange", "Banana", "Cherry"
[ ] b)
x = y = z = "Orange"
[x] c)
x = "Orange" = y
[ ] d)
x, y = y, x
在 Python 中,以下哪个声明**不是**合法的变量名?
- [ ] a)
_myvar
- [ ] b)
myVar
- [x] c)
9var
- [ ] d)
varName9
- 下列哪个 print 函数的使用方式是正确的
- [x] a)
print(a, b, c, sep = ' ', end = ' ')
- [ ] b)
print(a b c sep = ' ', end = ' ')
- [ ] c)
print[a, b, c, sep = ' ', end = ' ']
- [ ] d)
print{a, b, c, sep = ' ', end = ' '}
- Python 中的哪个函数可以用来获取变量的类型?
- [ ] a)
typeof(variable)
- [x] b)
type(variable)
- [ ] c)
getType(variable)
- [ ] d)
variable.type()
第三题
在 Python 中,_____ 关键字用于打印一个变量的值。
print
Python 中的变量可以是字符串、整数、浮点数或布尔类型。例如,
my_str = "Hello World"
使 my_str 成为一个 _____。string
在 Python 中,我们可以通过 _____(my_var) 来打印变量 my_var。
print
在 Python 中,我们可以使用 my_var = _____ 来创建一个值为 10 的变量 my_var。
10
如果我们有两个变量
a = 5
和b = 10
,我们可以使用 print(a, _____) 来打印这两个变量的值。b
在 Python 中,变量名可以包含字母、数字和下划线,但不能以数字开头。例如,1my_var 是一个无效的变量名,但 _____ 是有效的。
my_var1
_var1
如果我有一个整数变量
my_int = 50
,我可以通过在打印语句中添加print(_____)
来打印The value of my integer is 50
。"The value of my integer is",my_int
在 Python 中,通过使用 _____ 关键字,我们可以将一个变量的值分配给另一个变量。例如,如果
a = 10
和b = a
,那么b
的值也会变为10。在 Python 中,我可以通过编写 my_str = _____ 来创建一个包含字符串 "Hello, Python!" 的变量 my_str。
\"Hello, Python!\"
如果我有一个浮点型变量
my_float = 5.67
,我可以使用print(___, " is my floating point number")
来打印 "5.67 is my floating point number"。
开放性1题
- 打印,输出
- 直接声明。Python会根据赋值的类型分配大的类型,该类型下的参数为该类型默认参数(如:
<class 'int'>
整形,class,指的),可以使用type()
查看具体类型 - a = b = c =1
- a, b, c = 1, 2, 3
- print(a, b, c)
- #使用井号写注释,注释是面向程序员的,增加程序的可读性,不纳入代码的运行到中
- print(a, b, c, sep=„ “)
- print(a, b, c, end=„ “) #作用是以什么结尾
-
- 写注释 #
第四题
greeting = "Hello, World!"
print(greeting)
number = 10
copy_number = number
print(number, copy_number)
food = "apple"
food = "banana" #储存的值被替换
print(food)
a, b, c = 1, 2, 3
print(a, b, c, sep="~", end=" ")
name = "Yue"
age = 24
job = "student"
hobby = "sleeping"
print(name, age, job, hobby)
x = y = z = 10
x = 20
y = 30
print(x, y, z)
print(type(x))
id = 1.0
print(type(id))
print(a, " is my floating point number")
my_str = "\"Hello, Python!\""
print(my_str)