python基础2----print /变量/用户编码/input /if else/while循环/for循环

1.print

2.变量

3.用户编码

4.input

5.if else

6.while循环

7.for循环

 

print

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的值为:“海绵宝宝”

变量定义的规则:

  1. 变量名只能是 字母、数字或者下划线的任意组合
  2. 变量名的第一个字符不能是数字
  3. 以下关键字不能声明为变量名:

['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()返回的数据类型是strstr不能直接和整数比较,必须先把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将看到程序的结尾,并简单的完成。

elifelse 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。

 

注:以上内容为学习笔记。

 

posted @ 2017-06-06 18:17  皮皮虾的海绵宝宝  阅读(718)  评论(1编辑  收藏  举报