1.print
2.变量
3.用户编码
4.input
5.if else
6.while循环
7.for循环
1 #! /usr/bin/env python
2 # -*- coding:utf-8 -*-
3 #Author:海绵宝宝
4
5 print("hello word")
住:在python3中默认为utf-8,因此python中第二行代码可省去不写。
print(8) #括号中的内容为数字不需要分号
print('hello,world') #括号中的内容是字符串,需要用分号
student = '海绵宝宝'
print(student) #括号中的内容为变量,不需要分号
first =3
second =8
third =first+second
print(third)
myteacher ='小甲鱼'
yourtescher ='黑夜'
ourteacher =myteacher+yourtescher
print(ourteacher)
#到目前为止,我们所认知的字符串就是引号内的一切东西,我们也把字符串叫做文本,文本和数字是截然不同的。例如:
5 + 8
print('5'+'8')
print(5+8)
要告诉python你要创建一个字符串,就要在字符串两边加上引号。可以是单引号或者双引号,python不挑剔,但必须成双成对,不能一边单引号一边双引号。
'''如果字符串中需要出现单引号或者双引号应该怎么办?例如打印:Let's Go
有两种方法,一种是用转义符号(\)对字符串中的引号进行转义。
例如:
print('Let\'s Go')
#反斜杠是个好东西,试着打印:
print('http:\/www.baidu.com')
print('http:\www.baidu.com')
print(r"rnih'ss'ss'ss'ss''sss//ss\sss/\\\\")
变量
变量用于存储在计算机程序中被引用和操作的信息。变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和Visual Basic中);变量的唯一目的是在内存中标记和存储数据。这些数据可以在整个程序中使用。
声明变量
1 #! usr/bin/eve python
2 # -*- coding:utf-8 -*-
3
4 name = "海绵宝宝"
上述代码声明了一个变量,变量名为:name,变量name的值为:“海绵宝宝”
变量定义的规则:
- 变量名只能是 字母、数字或者下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名:
['and' , 'as' , 'assert' , 'break' , 'class' , 'continue' , 'def' , 'del' , 'eilf' , 'else' , 'except' , 'exec' , 'finally' , 'for' , 'from' , 'global' , 'if' , 'import' , 'in' , 'is' , 'lambda' , 'not' , 'or' , 'pass' , 'print' , 'raise' , 'return' , 'try' , 'while' , 'with' , 'yield' ]
字符编码
python解释器在加载.py文件中的代码时,会对内容进行编码(默认Ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代语和其他西欧语言,其最多只能用8位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示255个符号。
关于中文。
为了处理汉子,程序员设计了用于简体中文的GB2132和用于繁体中文的big5。
GB2132(1980年)一共收录了7445个字符,包括6763个汉子和682个其他符号。汉子区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768.其中有5个空位是D7FA-D7FE。
GB2312支持的汉字太少。1995年的汉字拓展规范GBK1.0收录了21886个符号,它分为汉字区和 图形符号区。汉字区包括21003个字符。2000年的GB18030是取代GBK1.0的正式国家标准版。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不做要求。所以手机、MP3一般只支持GB2312。
从ASCII、GB2312、GBK到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一的处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都是属于双字节字符集(DBCS)。
有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。
显然ASCII码无法将世界上的各种文字和字符全部表达,所以,就需要新出的一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少有16位来表示(2个字节),即:2**16=65536,
注:此处说的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少是使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用一个字节保存、欧洲的字符用两个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:
报错:ascii码无法表示中文
1 #!/usr/bin/env python
2
3 print("你好,世界")
改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:
1 #!/usr/bin/env python
2 # -*- coding=utf-8 -*-
3
4 print("你好,世界")
input用户输入
name=input('请输入您的姓名')
print('你好,'+name+'!')
name=input('请输入您的姓名')
print('你好,',name,'!')
以上两段代码的到的结果是一样的。
temp=input('请输入1~100之间的数字!')
number=int(temp)
if number>=1 and number<=100 :
print('爱你一万年~~!')
else:
print('你是大傻瓜~~!')
最后看一个有问题的条件判断。很多同学会用input()
读取用户的输入,这样可以自己输入,程序运行得更有意思:
birth = input('birth: ')
if birth < 2000:
print('00前')
else:
print('00后')
输入1982
,结果报错:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() > int()
这是因为input()
返回的数据类型是str
,str
不能直接和整数比较,必须先把str
转换成整数。Python提供了int()
函数来完成这件事情:
s = input('birth: ')
birth = int(s)
if birth < 2000:
print('00前')
else:
print('00后')
再次运行,就可以得到正确地结果。但是,如果输入abc
呢?又会得到一个错误信息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'abc'
原来int()
函数发现一个字符串并不是合法的数字时就会报错,程序就退出了。
if else
根据Python的缩进规则,如果if
语句判断是True
,就把缩进的两行print语句执行了,否则,什么也不做。也可以给if
添加一个else
语句,意思是,如果if
判断是False
,不要执行if
的内容,去把else
执行了:
age = input("input your age:")
s = int(age)
if s >= 18:
print('your age is', age)
print('adult')
else:
print('your age is', age)
print('teenager')
print('我是祖国的小花朵儿~~!')
temp =input('猜一猜小花朵心里想的是哪个数字呢~')
guess = int(temp)
if guess == 8:
print("卧槽,你是小花朵肚子里的蛔虫吗")
print("哼,猜中也没有奖励的啦~!")
else:
print("猜错啦,小花朵心里想的是8")
print("游戏结束,不玩啦~~")
注意不要少写了冒号:
当然上面的判断是很粗略的,完全可以用elif
做更细致的判断:
age = input("input your age:")
s = int(age)
if s >= 18:
print('adult')
elif s >= 6:
print('teenager')
else:
print('kid')
if 语句是用来检查一个条件:如果条件为真(true),我们运行一个语句块(称为if块),否则(else),我们执行另一个语句块(称为else块)。else子语句是可选的。
number = 23
guess = int(input(‘请输入一个整数:’)) #等待输入整数
if guess == number:
print('恭喜,你猜对了。') # 新块从这里开始
print('(但你没有获得任何奖品!)') # 新块在这里结束
elif guess < number:
print('不对,你猜的有点儿小') # 另一个块
else:
print('不对,你猜的有点大')
print('完成')
# if语句执行完后,最后的语句总是被执行
在这个程序中,我们获取来自用户的猜测,并检查这个数是否是我们设定的数。我们给变量number设置我们想要的任何整数,比如 23。然后,我们使用input() 函数获取用户的猜的数。函数是可重用的程序块。
我们给内置的input 函数提供一个字符串,该函数将其打印到屏幕上并等待用户输入。一旦我们输入一些东西并按下enter键,input()函数把我们的输入作为一个字符串返回。然后,我们使用int将这个字符串转换为整数,然后将其存储在变量guess中。实际上,int 是一个类,但现在所有你需要知道的是,您可以使用它来将一个字符串转变为一个整数(假设文本中的字符串包含一个有效的整数)。
接下来,我们比较用户猜的数和我们选择的数,如果他们相等,我们打印一条成功的消息。注意,我们使用缩进级别告诉Python语句属于哪个块。这就是为什么缩进P在ython中是如此重要。我希望你坚持"一致的缩进"的规则,好吗?
注意,if语句在最后有一个冒号——我们指示Python一个语句块将跟随其后。
然后,我们检查猜的数是否小于这个数字,如果是,我们通知用户,他们猜的数必须比那个数稍高。我们这里使用的是“elif”子句,实际上将两个相关的 if else-if else语句组合为一个语句if-elif-else,这使程序更简单且减少所需要的缩进。
elif和else语句也必须在逻辑行结束时有一个冒号,后跟相应的语句块(当然要通过适当的缩进)。
你可以在if语句的if块中有另一个if语句——这称为if语句嵌套。
记住,elif 和else部分是可选的。一个最小的有效的if语句是: python if True: print(是的,它为真)
在Python执行完成完整的if语句以及相关的elif和else子句,它移动到if包含语句的块中下一个语句块。在本例中,它是主要的块(程序开始执行的地方),接下来的语句是 print(完成)。在这之后,Python将看到程序的结尾,并简单的完成。
elif
是else if
的缩写,完全可以有多个elif
,所以if
语句的完整形式就是:
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
if
判断条件还可以简写,比如写:
if x:
print('True')
只要x
是非零数值、非空字符串、非空list等,就判断为True
,否则为False
。
while循环
count = 0
while True:
print("count:",count)
count = count +1 #count +=1
if count == 1000:
break
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while 判断条件:
执行语句……
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假false时,循环结束。
执行流程图如下:
实例:
循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
循环内部变量n
不断自减,直到变为-1
时,不再满足while条件,循环退出。
#!/usr/bin/python
count = 0
while (count < 9):
print ('The count is:', count)
count = count + 1
print ("Good bye!")
以上代码的输出结果为:
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!
while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用法如下:
# continue 和 break 用法
i = 1
while i < 10:
i += 1
if i%2 > 0: # 非双数时跳过输出
continue
print (i) # 输出双数2、4、6、8、10
i = 1
while 1: # 循环条件为1必定成立
print (i) # 输出1~10
i += 1
if i > 10: # 当i大于10时跳出循环
break
无限循环
如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
var = 1
while var == 1 : # 该条件永远为true,循环将无限执行下去
num = raw_input("Enter a number :")
print ("You entered: ", num)
print ("Good bye!")
注意:以上的无限循环你可以使用 CTRL+C 来中断循环。
循环使用 else 语句
在 python 中,while … else 在循环条件为 false 时执行 else 语句块:
#!/usr/bin/python
count = 0
while count < 5:
print (count, " is less than 5")
count = count + 1
else:
print (count, " is not less than 5")
以上实例输出结果为:
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5
简单语句组
类似 if 语句的语法,如果你的 while 循环体中只有一条语句,你可以将该语句与while写在同一行中, 如下所示:
#!/usr/bin/python
flag = 1
while (flag): print ('Given flag is really true!')
print ("Good bye!")
七、for 循环
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法:
for循环的语法格式如下:
for i in range(0,10):
if i <3:
print("loop ",i)
else :
continue
print("hehe...")
输出结果为:
loop 0
hehe...
loop 1
hehe...
loop 2
hehe...
另外一种执行循环的遍历方式是通过索引,如下实例:
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print('当前水果 :', fruits[index])
print("Good bye!")
以上实例输出结果:
当前水果 : banana
当前水果 : apple
当前水果 : mango
Good bye!
以上实例我们使用了内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数。
Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子:
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
执行这段代码,会依次打印names
的每一个元素:
Michael
Bob
Tracy
所以for x in ...
循环就是把每个元素代入变量x
,然后执行缩进块的语句。
再比如我们想计算1-10的整数之和,可以用一个sum
变量做累加:
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum)
如果要计算1-100的整数之和,从1写到100有点困难,幸好Python提供一个range()
函数,可以生成一个整数序列,再通过list()
函数可以转换为list。比如range(5)
生成的序列是从0开始小于5的整数:
>>> list(range(5))
[0, 1, 2, 3, 4]
range(101)
就可以生成0-100的整数序列,计算如下:
sum = 0
for x in range(101):
sum = sum + x
print(sum)
请自行运行上述代码,看看结果是不是当年高斯同学心算出的5050。
注:以上内容为学习笔记。