Python Day1

来源:互联网 发布:北交大知行平台注册 编辑:程序博客网 时间:2024/05/22 13:13
python 2 和 3 的最大的区别: 
py 3 提供了对Unicode的支持


很多内容都已经支持3.0 ,但是还有一个很大的模块没有支持:twisted

第一个程序Helloworld:

>>>print('hello world!')hello world

退出命令行条件下的解释器:
>>>exit()

外部创建python文件,文件名后缀为什么要.py?
为了告知别人这是一个python文件,这是一种规范


windows下运行python 文件:
>>>python hello.py

linux 下应该如何直接运行:
先更改文件的权限:chmod 755 hello.py

因为在linux在系统中装了新版本的python 是默认装在 usr/local/bin/下

另外在文件中应该加入:

#!usr/bin/env python  表示在系统环境变量找python解释器,其中env表示在环境变量中查找,可以使用使用系统默认的python

#!usr/bin/python      表示在usr/bin 中直接找,直接用的系统原装的python

闲扯淡,各种版本的hello world


c++

#include <iostream>int main(void){std::cout<<"hello world!";return 0;}

c

#include<stdio.h>int main(void){printf("hello world!");return 0;}

java 

public class HelloWorld{public static void main(String [] args){System.out.println("hello world!");}}



php
<?phpecho"hello world!"?>




ruby
puts"hello world!"

go
package mainimport "fmt"func main(){fmt.printf("hello world!");}

开发工具:
建议使用pycharm,可以使用社区或者专业版
使用原因,有提示,界面友好,可以调试,可以直观运行。其中主要的是能够调试


关于变量:
变量:为了存放内容(数据)让后面的代码进行调用而存在的。


python 是一门动态语言,不需要进行变量类型的声明,默认存成string 即字符串类型。

赋值:
name = "Fennec"

关于变量的值得一个操作的思考:
name = "Fennec"name2 = nameprint("My name is ",name,name2)name = "LazyFennec"name = "LazyFennec"print("My name is ",name,name2)#(question what is the name2 now)


解析:变量的赋值其实是指向内容的,其内容是在内存中的,当其另外赋值的时候,也就是在另一块内存中另外存一个内容然后再指向这个新的内容,那么对应的原来的内容还是没有变化的,故name2还是指向原来的Fennec


变量定义的规则:
变量只能是字母、数字或者下划线的任意组合
变量名的第一个字符不能是数字
关键字不能作为变量名,具体如下列表所示:
[and,as,assert,class,continue,def,elif,else,except,exec,finally,for,from,global,if,import,in,is,lambda,not,or,pass,print,raise,return,try,while,with,yield]



变量的约定俗成:
命名一定要能够看出来是什么意思
对于比较复杂的变量名有两种表示方式:
下划线:my_name = "Fennec"
驼峰式:MyName = "Fennec"

极其不推荐的命名方式:
xingming = "Fennec"姓名 = "Fennec"
这两种都是很low的

python中没有常量,如果想表示一个常量,则应该大写:
PIE = 3.1415926

大写表示这个变量不应该修改。

对于字符编码的区别和介绍:

二进制   0 1
ASCII    8位,可以表示255个符号,其中整个西方世界用了127个
GB2312   1980年,一共收入7445个字符
GBK1.0   1995年,21886个汉字,中国最常用的
GB18030  2000年,27484个汉字

Unicode: 显然ASCII码无法将世界上各种文字和符号全部表示,所以,就需要一种可以代表所有字符和符号的编码,即:Unicode(统一码,万国码,单一码)


其规定了现有的字符和符号最少由16位来表示(2个字节),即:2**16 = 65536。注:此处说的是最少,即有可能更多。


UTF-8,是对Unicode码的压缩版,可边长的,所有的英文单词字符,在utf-8中存的时候是用ascii码使用1byte,对于中文来说使用utf8时使用3bytes(1bytes=8bit)

执行以下程序:
name = "你好,世界!"print(">>>",name)

在python2中会有编码方面的问题,所以程序会报错。
应该在第一行加入
# -*- coding:utf-8 -*-



因为在python 3中默认使用utf8,所以不存在这种问题。
会直接输出
>>>你好,世界!

注释:
单行注释 #
多行注释 
'''……
内容
……'''


多个(3个)引号除了注释,还可以打印多行


例子:

msg = '''there are somany wordsyou can see.'''print(msg)




打印结果;


there are so
many words
you can see.


用户交互:
关于input:
username = input("username")password = input("password")print(username,password)

关于格式化输出:
第一种形式:
name = input("name")age = input("age")job = input("job")info = '''--------info of '''+name+'''--------Name:'''+name+'''Age:'''+age+'''Job:'''+jobprint(info)

第二种形式:
name = input("name")age = input("age")job = input("job")info = '''--------info of %s--------Name:%sAge:%sJob:%s''' %(name,name,age,job)print(info)

ps:%s表示输入字符串,另外的还有%d,%f等等。


另外可以把上面的age改成%d,这个时候再运行程序会报错,因为格式不是数字
name = input("name")age = input("age")job = input("job")info = '''--------info of %s--------Name:%sAge:%dJob:%s''' %(name,name,age,job)print(info)

检测方式可以使用:

print(type(age))>>> <class 'str'>

此时需要进行类型转换
age = int(input("age"))

正确的程序如下:
name = input("name")age = int(input("age"))job = input("job")info = '''--------info of %s--------Name:%sAge:%dJob:%s''' %(name,name,age,job)print(info)

关于python2中raw_input和input的区别:
python3中input和python2中raw_input 是同一种东西,而python2中的input是一种输入的是什么就是样的就是什么样的格式的语法,不建议使用,忘记就好。


第三种形式
name = input("name")age = int(input("age"))job = input("job")info = '''--------info of {_name}--------Name:{_name}Age:{_age}Job:{_job}'''.format(_name = name,                     _age = age,                     _job = job)print(info)

第四种形式:
name = input("name")age = int(input("age"))job = input("job")info = '''--------info of {0}--------Name:{0}Age:{1}Job:{2}'''.format(name,age,job)print(info)

关于用户密码问题

username = input("username")password = input("password")print(username,password);




以上会密码会直接在输入时显示,结果如下
>>>username:fennec>>>password:123456>>>fennec 123456

可以使用getpass来屏蔽密码显示
import getpassusername = input("username")password = getpass.getpass("password")print(username,password);




显示结果:
>>>username:fennec>>>password:>>>fennec 123456
注意,上面的getpass一般只在cmd中有效,在编程软件中如PyCharm无效


if else 条件跳转语句
#!/usr/bin/env python# -*- coding:utf-8 -*-# Author:Fennec D_username = "fennec"_password = "123456"username = input("username:")password = input("password:")if _username == username and _password == password:    print("Welcome user {name} login...".format(name=username))else:    print("Invalid username or password!")




while 循环
#猜数字number = 41count = 0while count<3:    count += 1    guess_num = int(input("guess the number:"))    if guess_num== number:        print("oh yeah,you got it!")        break    elif guess_num<number:        print("you may try to guess the bigger one.")    else:        print("you may try to guess the smaller one.")else: #python 特有的,其他语言并不支持那么做    print("hey man,you have tried so many times, you lose the game")

#for循环for i in range(10):    print(i)

#猜数字number = 41count = 0for count in range(3):    count += 1    guess_num = int(input("guess the number:"))    if guess_num== number:        print("oh yeah,you got it!")        break    elif guess_num<number:        print("you may try to guess the bigger one.")    else:        print("you may try to guess the smaller one.")else:    print("hey man,you have tried so many times, you lose the game")


#这里同样可以用else,原因是,这里的else #是指上面的内容如果正常执行结束,则执行else的内容,否则如果被break,则不执行


#for循环for i in range(0,10,2):#这里的range 的三个参数分别表示 开始位置,结束位置,步长    print(i)

#continuefor i in range(10):if i<3:print("i:",i)else:continue #跳出本次循环,执行下一次循环print("hehe...")

#九九乘法表for i in range(1,10):    for j in range(1,i+1):        print("{0} * {1}= {sum}".format(i,j,sum=i*j),end="\t")    print()

显示如下图所示



0 0
原创粉丝点击