Day01第一天 Python基础一
变量
就是将一些运算的中间结果暂时存在内存中,以便后续代码的调用.
>命名规则:
1,只能以字母,数字,下划线自由组合,且,不能以数字开头.
2,不能是 Python 中的关键字.
3,要具有可描述性.
4,不要用中文命名.
常量
>一直不变的量
因为 Python 中没有常量的概念,所以,为了区别常量与变量,常量的命名除了与变量命名
规则相同外,所有字母全是大写,以此来区分常量与变量.
比如:
π # PAI = 3.14
建国日期 # BIR_OF_CHINA = 1949
注释
方便自己,方便他人理解代码,一定要养成写注释的习惯
>单行注释:
#
>多行注释:
” 内容 ”’或者””” 内容 “””
基础数据类型
Ps.判断数据类型的方法是 typy()
>整数类型(int)
可以进行 + _ * / ** %
int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
>字符串转化成数字:int(str) 条件:str 必须是数字组成的.
>数字转化成字符串:str(int)
>字符串类型(str)。
>在Python中,加了引号的字符都被认为是字符串!
1 >>> name = "Alex Li" #双引号 2 >>> age = "22" #只要加引号就是字符串 3 >>> age2 = 22 #int 4 >>> 5 >>> msg = '''My name is taibai, I am 22 years old!''' #我擦,3个引号也可以 6 >>> 7 >>> hometown = 'ShanDong' #单引号也可以
>那单引号、双引号、多引号有什么区别呢? 让我大声告诉你,单双引号木有任何区别,只有下面这种情况 你需要考虑单双的配合
1 msg = “My name is Alex , I’m 22 years old!”
>多引号什么作用呢?作用就是多行字符串必须用多引号
1 msg = '''
2 今天我想写首小诗,
3 歌颂我的同桌,
4 你看他那乌黑的短发,
5 好像一只炸毛鸡。
6 '''
7 print(msg)
8
9 今天我想写首小诗,
10 歌颂我的同桌,
11 你看他那乌黑的短发,
12 好像一只炸毛鸡。
>字符串拼接
数字可以进行加减乘除等运算,字符串呢?让我大声告诉你,也能?what? 是的,但只能进行”相加”和”相乘”运算。
1 >>> name
2 'Alex Li'
3 >>> age
4 '22'
5 >>>
6 >>> name + age #相加其实就是简单拼接
7 'AlexLi22'
8 >>>
9 >>> name * 10 #相乘其实就是复制自己多少次,再拼接在一起
10 ' AlexLiAlexLiAlexLiAlexLiAlexLiAlexLiAlexLiAlexLiAlexLiAlexLi'
注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接
1 >>> type(name),type(age2)
2 (<type 'str'>, <type 'int'>)
3 >>>
4 >>> name
5 'Alex Li'
6 >>> age2
7 >>> name + age2
8 Traceback (most recent call last):
9 File "<stdin>", line 1, in <module>
10 TypeError: cannot concatenate 'str' and 'int' objects #错误提示数字 和 字符 不能拼接
>布尔值(True,False)。
>布尔类型很简单,就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断
但其实你们并不明白对么? let me explain, 我现在有2个值 , a=3, b=5 , 我说a>b你说成立么? 我们当然知道不成立,
但问题是计算机怎么去描述这成不成立呢?或者说a< b是成立,计算机怎么描述这是成立呢?
没错,答案就是,用布尔类型
1 >>> a=3
2 >>> b=5
3 >>>
4 >>> a > b #不成立就是False,即假
5 False
6 >>>
7 >>> a < b #成立就是True, 即真
8 True
用户交互(程序交互)
1,等待输入
2,将你输入的内容赋值给了前面的变量
3,input 出来的数据类型全都是字符串(str)
>执行脚本就会发现,程序会等待你输入姓名后再往下继续走。
1 # 将用户输入的内容赋值给 name 变量
2 name = input("请输入用户名:")
3 # 打印输入的内容
4 print(name)
>可以让用户输入多个信息,如下
1 name = input("What is your name?")
2 age = input("How old are you?")
3 hometown = input("Where is your hometown?")
4
5 print("Hello ",name , "your are ", age , "years old, you came from",hometown)
流程控制之–if语句
>格式
——————————————————————————————-
Ps.缩进
if代码里,每个条件的下一行都缩进了4个空格,这是为什么呢?这就是Python的一大特色,强制缩进,
目的是为了让程序知道,每段代其它的语言里,大多通过{}来确定代码块,比如C,C++,Java,Javascript都是这样,
看一个JavaScript代码的例子
——————————————————————————————-
1 >JavaScript代码的例子:
2 var age = 56
3 if ( age < 50){
4 console.log("还能折腾")
5 console.log('可以执行多行代码')
6 }else{
7 console.log('太老了')
8 }
——————————————————————————————-
在有{}来区分代码块的情况下,缩进的作用就只剩下让代码变的整洁了。
Python是门超级简洁的语言,发明者定是觉得用{}太丑了,所以索性直接不用它,那怎么能区分代码块呢?答案就是强制缩进。
Python的缩进有以下几个原则:
顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
同一级别的代码,缩进必须一致
官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。
——————————————————————————————-
if 条件: 冒号的作用是 条件与结果分开,程序一读到冒号就知道冒号前面是条件,后面是结果.
此处要缩进 #这是格式
#第一种 单分支
格式:
if 条件:
满足条件后要执行的代码
例子:
1 if 5 > 4 : #如果这个条件为True,那么执行下面的语句.(if True : #这也是一种条件写法) 2 print(666) #条件为真,执行这条代码.
——————————————————————————————-
#第二种 (双分支)
格式:
if 条件:
满足条件执行代码
else:
if条件不满足就走这段
例子1:
Age = 48 if Age > 50 : print("Too old, time to retire..") else: print("还能折腾几年!")
例子2:
1 if 4 > 3 : #如果这个条件为True,那么执行下面的语句.(if True : #这也是一种条件写法) 2 print('我请你吃饭') #条件为真,执行这条代码. 3 else: #条件为假时,执行这段代码. 4 pirnt('你叫啥?')
——————————————————————————————-
#第三种 (多分支)
格式:
1 if 条件:
2 满足条件执行代码
3 elif 条件:
4 上面的条件不满足就走这个
5 elif 条件:
6 上面的条件不满足就走这个
7 elif 条件:
8 上面的条件不满足就走这个
9 else:
10 上面所有的条件不满足就走这段
>例子1:
1 num = intput('请输入您猜的数字')
2 if num == '1' : #
3 print('一起抽烟') #
4
5 elif num == '2' :#
6 print('一起喝酒?')
7
8 elif num == '3' :#
9 print('一起喝酒?')
10
11 else:
12 print('你输错了')
>例子2:猜年龄的游戏
1 age_of_oldboy = 48
2
3 guess = int(input(">>:"))
4
5 if guess > age_of_oldboy :
6 print("猜的太大了,往小里试试...")
7
8 elif guess < age_of_oldboy :
9 print("猜的太小了,往大里试试...")
10
11 else:
12 print("恭喜你,猜对了...")
上面的例子,根据你输入的值不同,会最多得到3种不同的结果
>例子3:再来个匹配成绩的小程序吧,成绩有ABCDE5个等级,与分数的对应关系如下
A 90-100
B 80-89
C 60-79
D 40-59
E 0-39
要求用户输入0-100的数字后,你能正确打印他的对应成绩
1 score = int(input("输入分数:"))
2
3 if score > 100:
4 print("我擦,最高分才100...")
5 elif score >= 90:
6 print("A")
7 elif score >= 80:
8 print("B")
9 elif score >= 60:
10 print("C")
11 elif score >= 40:
12 print("D")
13 else:
14 print("太笨了...E")
这里有个问题,就是当我输入95的时候 ,它打印的结果是A,但是95 明明也大于第二个条件elif score >=80:呀, 为什么不打印B呢?
这是因为代码是从上到下依次判断,只要满足一个,就不会再往下走啦!
——————————————————————————————-
#第四种 (嵌套)
>例子四:
1 name = input('请输入你的名字:')
2 age = input('请输入你的年龄:')
3 if name == '小二':
4 if age == "18":
5 print('你18岁了')
6 else:
7 print('年龄你猜的不对哟!')
8 else:
9 print('我都不知道你说的',"'",name,"'",'是谁,怎么告诉你他/她几岁!')
流程控制之–while 循环语句
格式:
while 条件:#这个条件只要是能判断出真假的,都可以.
循环体
>例子1:无限循环
1 while True: #当条件一直为真时,且没有退出条件,那么将会无限循环.
2 print('你')
3 print('我')
4 print('他')#代码读到这时,因为没有退出条件语句,所以返回第一行 while ,判断还是真,又进入循环.
5 print('你,我,他') #此条将不会被打印.
>例子2:条件不满足,终止循环
1 1 count = 1
2 2 flag = True #此为:标志位
3 4 while flag:
4 5 print(count)
5 6 count = count + 1
6 7 if count > 100
7 8 flag = false #此为标志位
>例子2-1:条件不满足,终止循环
1 count = 1
3 while count <= 100:
4 print(count)
5 count = count + 1 #或都也可以写成 count += 1
>例子2-2:从1加到100的计算
1 count = 1
2 sum = 0
4 while count <= 100:
5 sum += count #或都也可以写成 sum = sum + count
6 count = count + 1 #或都也可以写成 count += 1
7 print (sum)
>例子3:break 跳出,终止
1 while True: #当条件一直为真时,且没有退出条件,那么将会无限循环.
2 print('你')
3 print('我')
4 break #当出线跳出条件时,停止当前循环,继续循环之后的代码.
5 print('他')#这段代码不打印.该循环因为 break 的跳出,所以.不执行此代码
6 print('你,我,他') #此条将会被打印.跳出循环后,执行了这段代码
>例子3-1:break 从1打印到100
1 count = 1
3 while True:
4 print(count)
5 count += 1
6 if count >100:
7 break
>例子4:continue #结束本次循环,继续下次循环
1 count = 1 3 while count < 10 : #循环条件 4 print(count) #打印变量 count的值 5 continue #结束本次循环,返回 while 继续下一次循环 6 count += 1 #这段不会执行.因为上面一直再死循环
>例子4-1:continue #1-10这10个数字.除了5-8,其它的打印出来
1 count = 0
2 while count < 10 : #循环条件
3 count += 1
4 if count > 4 and count < 9 :
5 continue
6 print('loop',count)
7 print ('循环结束!')