单行注释: ”#“ 开头,类似于C语言的 ”//"

程序每行前面不能留空格,python语言代码是严格缩进的

(因为代码没有{ } 大括号,而使用:冒号,代码缩进的距离代表逻辑的作用域)

 

1. 字符串初步 

字符串必须用单引号、双引号、或三引号括起来

print('hello,world')
print("hello,world")
print('''hello,world''')

#字符串太长可以使用 \ 分开写
print('this........\
is....... \
good.....')   
#输出为this.......is......good....

三双引号可以包含换行符、制表符以及其他字符。(保留原来的格式)

str = """
    <HTML>
    <HTML>
    <HTML>
"""
print(str)

使用“+”可以连接字符串, string类型和char类型也可以使用 ”+“进行连接

a = "ABC"
b = "123"
a += b
print(a)  #ABC123
a += a[0]  #ABC123A
print(a)

使用 in ,not in  判断是否为子串,使用C++需要手写函数

a = "Hello"
b = "Python"
print("el" in a) #true
print("th" not in b)  #false

2.字符串和数的转换

int(x)

float(x): 把字符串x转换成小数

str(x)

eval(x)

a = "123"
b = int(a)
c = float(a)
print(b+c)
d = str(b+c)
print(d)
print(3+eval("4.3"))

3. 简单的输入输出

print(x,y,z)  连续输出多项,以空格分隔,然后换行(光标指向下一行)。

a = 1
b = 2
c = 3
print(a,b,c)

输出为:1 2 3

print(x,y,z, end="")  同上,但是最后不换行。

x = input(y) x是变量,y是字符串或者任何为字符串的表达式

s = input("请输入你的名字:")
print(s+",你好!")

python在一个文件开头加上一行为什么要清空文件 python为什么要加空格_字符串

在OpenJudge上,input参数不写任何东西

s = input()

# 输入两个整数a,b,求a+b的值
a = int(input())
b = int(input())
print(a+b)

4.列表初步

列表的项可以使任意类型的变量

empty = [] #空表
list1 = ['Google','Runoob',1997,2000]
list2 = [1,2,3,4,5]
print(list1[0])      #Google
list1[2] = 1998
print(list1[2])     #1998
print(list1)   #['Google', 'Runoob', 1998, 2000]

用in判断列表是否包含某个元素(和字符串的 in 用法差不多,string本身就是一个列表)

list = [1,2,3,"4",5]
print(4 in list, 3 in list, "4" in list)  #false true true

看下面一个例子 : 也是 a+b

input() 用户输入的数据,返回值默认是字符数组(类似于string), 需要自己进行转换

比如自己输入: 2  3    ,  "2 3"类似于一个"string",

split() 之后转换为string数组,然后进行类型转换

s = input() 
nums = s.split();
print(int(nums[0]) + int(nums[1]))

python在一个文件开头加上一行为什么要清空文件 python为什么要加空格_字符串_02

当然建立很多变量,分别赋值也行

a = int(input())

b = int(input())

print("34\t\t35\n36".split())

['34', '35', '36']

x.split() 返回值是一个列表,经过  空格、制表符、换行符分隔成的列表

5. 基本运算

/ :  计算的结果都是整数,哪怕能整除也是小数

-x 相当于  0-x  

有小数参与的算数表达式,结果一定是小数

** : 表示此方    a**3 = 8

//  : 类似于C++的 /,  python中 ,5//2 等于 2,5/2 = 2.5

6. 关系运算符 逻辑运算符

也能比较字符串(按照字典序、大小写相关)

逻辑运算符  and 、or、not

什么相当于True、False?

0, "",[]  都相当于False,   0等于False 

非0的数,非空的字符串和非空列表都相当于True, 1等于True

True == 1   true

False == 0  true

"" == False   false

not []           true

not[1]         false

逻辑运算符优先级  not > and > or

各种运算符的优先级:(总高到低)

算数运算符: + - * /   // % **

关系运算符  <  > == !=  <=  >=

逻辑运算符  and or not

以下程序输出几个True

a:  print( [] == False)

b : print( not [])

c: print( 0 == False)

d: print( 1 == True)

e:  print( not "")
# bcde 是正确的

7. 条件分支语句

if语句中的语句组,每条语句左边必须缩进,且缩进情况必须一样对齐。

python中没有必要的空格会报错, python语句需要严格缩进

python在一个文件开头加上一行为什么要清空文件 python为什么要加空格_python_03

if  逻辑表达式1:

     语句组1

else if  逻辑表达式2:

         语句组2

else:

        语句组3

if "ok":
    print("ok")
if "":  #相当于false,无输出
    print("null string")
a = [4,2]
if a:
    print(a)
if 20:
    print(20)
if 0:
    print(0)

python在一个文件开头加上一行为什么要清空文件 python为什么要加空格_字符串_04

a = int(input())
if a > 0:
    if a % 2:
        print("a > 0 且 a是奇数")
    else:
        print("a > 0 且 a 是偶数")

python中的:冒号相当于C++中的{ }大括号,条件判断语句中的小括号省略

8. 输出格式控制

需要用到一下格式控制符: (和C语言基本类似)

格式控制符只能出现在字符串中!

%s

%d

%f

%.nf 表示此处要输出一个小数,保留小数的后n位,例如%.5f, 保留小数的后5位. 四舍六入

name = "tom"
age = 18
height = 1.746
print("My age is %d." % age)
print("My name is %s, I am %.2f m tall." % (name,height))
print("%d%s" % (age,"hello"))
print("%.2f,%.2f" % (5.225,5.325))

python在一个文件开头加上一行为什么要清空文件 python为什么要加空格_字符串_05

python中的 % 相当于C++中的逗号,但还是有些不同

9. for循环语句

for i in range(5): #[0,5)
    print(i)

输出为 0 1 2 3 4 (要换行),相当于C语言的 

for(int i = 0; i < 5; i++){
    printf("%d",i);
}
for i in range(5,9): #[5,9)
    print(i)

输出为: 5 6 7 8(要换行),相当于C语言的 for(int i = 5; i < 9; i++)

for i in range(0,10,3):
    print(i)

输出为 0 3 6 9 (要换行) , 相当于C语言的 for(int i = 0; i < 10; i+=3)

for i in range(0) :  --->  [0,0) 无输出

for i in range(2,2)  ---> [2,2) 无输出

for循环遍历列表-下标访问法

len(a)  求列表的长度,下面的例子len(a) 等于 5

a = ['google','baidu','ibm','taobao','qq']
for i in range(len(a)):
    print(i,a[i])

0 google
1 baidu
2 ibm
3 taobao
4 qq

for循环遍历列表-写法2

a = ['google','baidu','ibm','taobao','qq']
for i in a:
    print(i)

i 指向列表中的各项,与上边的例子不同,上面的例子,i 代表下标

这样的写法和c++中的auto写法差不多

for循环遍历字符串

for i  in 'Taobao':

      print(i)

类似于上面的列表, 'Taobao' 本身就是一个列表

10. break语句

a = ['google','baidu','ibm','taobao','qq']
for site in a:
    if site == 'ibm':
        print("找到了ibm跳出循环")
        break  # 跳出循环
    else:
        print("还没有找到ibm")

还没有找到ibm
还没有找到ibm
找到了ibm跳出循环

11. continue语句

for ch in 'Taobao':
    if ch == 'o':    #字母o直接跳过,进入下一次循环
        continue
    print("当前字符",ch)

当前字符 T
当前字符 a
当前字符 b
当前字符 a

下面介绍两个函数,关于字符的

ord(x) 

chr(x) 

#连续输出26个字母
#先计算出字符a的编码ord("a"),然后+i,即可得到其他字母的编码
# 然后转换为字符输出
for i in range(26):
    print(chr(ord("a")+i),end="")

abcdefghijklmnopqrstuvwxyz

12. while循环

while 逻辑表达式exp:

语句组1

else:

语句组2

当然else后半部分可以去掉,只留while部分

count = 0
while count < 5:
    print(count,"  < 5")
    count = count+1
else:
    print(count," >= 5")

1   < 5
2   < 5
3   < 5
4   < 5
5  >= 5

输出n的所有因子

n = int(input())
x = 1
while x <= n:
    if n % x == 0:
        print(x," ",end="")
    x += 1

输入三个整数,求他们的最小公倍数 

s = input().split()
x,y,z = int(s[0]),int(s[1]),int(s[2])
n = 1
while True:
    if n % x == 0 and n % y == 0 and n % z == 0:
        print(n)
        break
    n = n + 1

13. 函数的用法

定义函数:

def 函数名(参数1,参数2......):

语句组

调用函数

函数名(参数1,参数2......)

看下面的例子:求最大值

def max(x,y):
    if x > y:
        return x
    else:
        return y
print(max(1,2))

输出: 2

判断是否为素数

def isPrime(n):
    if n <= 1 or n % 2 == 0 and n != 2:
        return False
    elif n == 2:
        return True
    else:
        for i in range(3,n,2):
            if n % i == 0:
                return False
            if i*i > n:
                break
    return True

for i in range(100):
    if(isPrime(i)):
        print(i,end=" ")

输出: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97