一、 Hello world程序

print("Hello World!")

执行命令: python hello.py ,输出

执行 python hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。

如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py ,那么就需要在 hello.py 文件的头部指定解释器,如下:

#!/usr/bin/env python

print "hello,world"

如此一来,执行: ./hello.py 即可。

ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py

附:其它语言的hello world:

#include<stdio.h>
int main(void)
{
printf("Hello World!!\n");
return ;
}

C

#include <iostream>
using namespace std; int main()
{
cout << "Hello World";
return ;
}

C++

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

Java

<?php
echo 'Hello World!';
?>

PHP

#!/usr/bin/ruby
# -*- coding: UTF-8 -*- puts "Hello World!";

Ruby

package main

import "fmt"

func main() {
fmt.Println("Hello, World!")
}

Go

program Hello;
begin
writeln ('Hello, world!')
end.

Pascal

#!/bin/bash
echo 'Hello World!'

Bash

# -*- coding: UTF- -*-
print 'Hello World!'

Python

#!/usr/bin/python
print("Hello, World!");

Python3

二、变量

变量定义的规则:

      • 变量名只能是 字母、数字或下划线的任意组合
      • 变量名的第一个字符不能是数字
      • 以下关键字不能声明为变量名
        ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

常量用大写表示

单词之间用下划线隔开,例:gf_of_tan :tan的女朋友

三、字符编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:

#!/usr/bin/env python

print "你好,世界"

报错:ascii码无法表示中文

改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
print "你好,世界"

四、注释

单行注视:# 被注释内容

多行注释:""" 被注释内容 """

五、用户交互

python2中 raw_input   =    python3中的input

python2中不要用input ,它接受什么格式就是什么格式(直接打name是变量,不是字符串,字符串要写成”name“)

# -*- coding: utf-8 -*-
username = "请输入用户名:"
print("My name is ",name) #逗号代表连接字符串
# -*- coding: utf-8 -*-
import getpass
passwd = getpass.getpass("请输入密码:")
print("密码:", passwd)

注意:getpass 在pyCharm中不能用,会卡住;在ipython中也不行;  只能在命令行中cd到py文件,然后python interaction.py 来执行

六、格式化输出

#格式化输出name, age, job
name = input("name:")
age = input("age:")
job = input('job:')
info = '''------info of ''' + name + ''' ----
Name:''' + name + '''
Age:''' + age + '''
Job:''' + job
print(info)

法1:用+连接 不推荐

name = input("name:")
age = int(input("age:")) #强转int
job = input('job:')
info = '''
------info of %s----
Name:%s
Age:%d
Job:%s
''' %(name, name, age, job)

法2: %s %d 格式化输出

info = '''
------info of {_name}----
Name:{_name}
Age:{_age}
Job:{_job}
'''.format(
_name = name,
_age = age,
_job = job
)

法3: { } 推荐

info = '''
------info of {0}----
Name:{0}
Age:{1}
Job:{2}
'''.format(name,age,job)

法4:{0}{1}...参数多的时候不推荐

七、 表达式 if ... else

场景一、用户登陆验证

name = input('请输入用户名:')
pwd = getpass.getpass('请输入密码:') if name == "tan" and pwd == "":
print("欢迎,tan!")
else:
print("用户名和密码错误")

if ... else: ...

场景二、猜年龄

my_age = 12

user_input = int(input("input your guess num:"))

if user_input == my_age:
print("Congratulations, you got it !")
elif user_input < my_age:
print("Oops,think bigger!")
else:
print("think smaller!")

if... elif... else: ...

注:   外层变量,可以被内层代码使用

          内层变量,不应被外层代码使用
 
Python 中强制缩进,,  IndentationError: unexpected indent   缩进错误
 

八、 while循环

有一种循环叫做while死循环:

count = 0
while True:
print("count:", count)
count += 1; #count=count+1 没有count++

while猜年龄:

myage = 20
count = 0
while True:
if count == 3:
break
guess_age = int(input("guess age:"))
if(guess_age == myage):
print("yes, you got it. ")
break;
elif(guess_age < myage):
print("think bigger! ")
else:
print("think smaller! ")
count += 1
if count == 3:
print("you have tried too many times.. fuck off..")

while中加入if 和 累计次数

在上面代码基础上有两处优化:   while count<3: ...   else: ...
myage = 20
count = 0
while count < 3:
guess_age = int(input("guess age:"))
if (guess_age == myage):
print("yes, you got it. ")
break;
elif (guess_age < myage):
print("think bigger! ")
else:
print("think smaller! ")
count += 1
else:
print("you have tried too many times.. fuck off..")
# while 循环正常走完,不会执行else. ...非正常走完(遇到break),才会执行else

九、for循环

最简单的循环10次

for i in range(10):
print("loop:", i)
输出 loop:0 - loop: 9

for猜年龄

for i in range(3):
guess_age = int(input("guess age:"))
if (guess_age == myage):
print("yes, you got it. ")
break;
elif (guess_age < myage):
print("think bigger! ")
else:
print("think smaller! ")
count += 1
else: # while 循环正常走完,不会执行else. ...非正常走完(遇到break),才会执行else
print("you have tried too many times.. fuck off..")

for i in range(3):

while count < 3:
guess_age = int(input("guess age:"))
if (guess_age == myage):
print("yes, you got it. ")
break;
elif (guess_age < myage):
print("think bigger! ")
else:
print("think smaller! ")
count += 1
if(count == 3):
continue_flag = input("do you want to keep guessing? ")
if continue_flag != 'n':
count = 0

添加一个是否keep guessing

需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环

for i in range(10):
if i<5:
continue #不往下走了,直接进入下一次loop
print("loop:", i )
输出 loop:5  -  loop: 9

需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出

for i in range(10):
if i>5:
break #不往下走了,直接跳出整个loop
print("loop:", i )
输出 loop:0  -  loop: 5

需求三:输出偶数(或奇数)隔一个输出一个

for i in range(0,10,2):  #前两个参数是范围,第三个参数是步长
print("loop:", i)

for双循环:

for i in range(10):
print("---------", i)
for j in range(10):
print(j)
 
 
 
 

Pathon1 - 基础1的更多相关文章

  1. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  2. node-webkit 环境搭建与基础demo

    首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. Golang, 以17个简短代码片段,切底弄懂 channel 基础

    (原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...

  5. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  6. HTTPS 互联网世界的安全基础

    近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...

  7. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  8. .NetCore MVC中的路由(1)路由配置基础

    .NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...

  9. .NET基础拾遗(5)多线程开发基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...

随机推荐

  1. JavaScript之HTML5 data-* 自定义属性[HTML5标准 node.dataset.attributeName]

    在HTML5中添加了data-*的方式来自定义属性,所谓data-*实际上上就是data-前缀加上自定义的属性名,使用这样的结构可以进行数据存放. 使用data-*可以解决自定义属性混乱无管理的现状. ...

  2. [CQOI2011]放棋子 (DP,数论)

    [CQOI2011]放棋子 \(solution:\) 看到这道题我们首先就应该想到有可能是DP和数论,因为题目已经很有特性了(首先题面是放棋子)(然后这一题方案数很多要取模)(而且这一题的数据范围很 ...

  3. Mybatis进阶学习笔记——输出映射

    输出映射(例如一个方法的返回至使用什么类型去接收) 1.基本类型 <!-- 统计记录数 --> <select id="queryTotalCount" resu ...

  4. 【Mysql sql inject】【入门篇】sqli-labs使用 part 4【18-20】

    这几关的注入点产生位置大多在HTTP头位置处 常见的HTTP注入点产生位置为[Referer].[X-Forwarded-For].[Cookie].[X-Real-IP].[Accept-Langu ...

  5. Linux mmc framework2:基本组件之queue

    1.前言 本文主要介绍card下queue组件的主要流程,在介绍的过程中,将详细说明和queue相关的流程,涉及到其它组件的详细流程再在相关文章中说明. 2.主要数据结构和API 2.1 struct ...

  6. Pcap4J实现抓包器

    前段时间搞抓包程序,打算使用Pcap4J实现,发现除了GitHub,其它资料少之又少,几乎都是不起作用. 被迫我一直看(日本作者!)英文注解的源码和sample和test,比较费劲+营养很少.因为几乎 ...

  7. python标准库之secrets

    secrets secrets是python3.6加入到标准库的,使用secrets模块,可以生成适用于处理机密信息(如密码,帐户身份验证,安全令牌)的加密强随机数. 导入 import secret ...

  8. CSS导航条nav简单样式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 关于Java源文件中public类的问题

    结论: 一个Java源文件中最多只能有一个public类,当有一个public类时,源文件名必须与之一致,否则无法编译: 如果源文件中没有一个public类,则文件名与类中没有一致性要求: 至于mai ...

  10. 01 响应式页面-@media介绍,

    我们为什么要写自适应的页面(响应式页面) 众所周知,电脑.平板.手机的屏幕是差距很大的,假如在电脑上写好了一个页面,在电脑上看起来不错,但是如果放到手机上的话,那可能就会乱的一塌糊涂,这时候怎么解决呢 ...