Python基础次日——if判断、while循环、for循环、Pycharm的使用、python字符串

Python程序的流程控制:html

python程序是从上至下逐行执行的python

1、if条件的判断

python的if语句的语法:程序员

if    条件1:ide

    条件1成立的状况下执行函数

elif  条件2:优化

    条件2成立的状况下执行   spa

elif  条件3:3d

    条件3成立的状况下执行code

...  htm

else:

    以前的全部条件均不成立的状况下执行

定义:if判断在程序中是用于逻辑判断的。

用如下几个例子来讲明if判断的做用。

例1:Python简单的猜年龄

# 猜年龄
xiaobai_age = 18    # 先定义好一个初始值的变量
user_input = int(input("Please guess xiaobai's age:")) # 再定义一个变量,因为是要与上一个变量进行比较,因此要强制改成整型
if user_input > xiaobai_age:      # 如下的逻辑判断则是在对以上的两个变量进行对比,而后做出相应的结果
    print("Try smaller")
elif user_input < xiaobai_age:
    print("Try bigger")
else:
    print("You got it")

 

 例2:Python简单的用户登录

# 用户登录
user = "xiaobai"
pwd = "123456"   # 先定义好用户名和密码的变量
user_input = input("Please input your username:") # 再定义好用户输入的用户名和密码的变量
password = input("Please input your password:")
if user_input == user and password == pwd:  # 将这两组变量进行对比判断
    print("login successfully")
else:
    print("Sorry,your username or password is wrong,please Try again!")

 

 例3:查当作绩

# 查当作绩
user = int(input("Please input your scores:"))
# 先定义一个用户输入的变量,由于是要用于做比较,因此必须强制改成整型
# 如下是做判断
if user > 90:
    print("You got an 'A'")
elif user < 90 and user > 70:
    print("You got a 'B'")
elif user < 70 and user > 60:
    print("You got a 'C'")
else:
    print("You got a 'D'")

 

2、while循环

Python的while语句的语法:

while 条件:

  循环体

  若是条件为真,循环体则执行

  若是条件为假,循环体则不执行

一、while循环

定义:while循环在程序中是用来重复干一件事情的。常见的应用场景有:好比登录QQ时要输入帐号密码

用如下几个简单的实例来讲明while循环

例1:while 1:

# while循环的简单实例
while 1:  
# while 1:表示条件为1时打印“OK”,
# 每打印完“OK”后又返回到起始位置再来判断条件,反复执行,这是一个死循环
    print("OK")
print("1111111111")
# 因此在循环外的字符“1111111111”不会被打印

 例2:while 3>2:

# while循环的简单实例
while 3>2:
# while 3>2:表示条件3>2时打印“OK”,
# 每打印完“OK”后又返回到起始位置再来判断条件,由于3永远大于2,反复执行,这又是一个死循环
    print("OK")
print("1111111111")
# 因此在循环外的字符“1111111111”不会被打印

 例3:while True:

# while循环的简单实例
while True:
# while True:表示条件永远为真时打印“OK”,
# 每打印完“OK”后又返回到起始位置再来判断条件,由于永远为真,反复执行,这又是一个死循环
    print("OK")
print("1111111111")
# 因此在循环外的字符“1111111111”不会被打印

 例4:while False:

# while循环的简单实例
while False:
# while False:表示条件不成立,则不会打印循环体内的“OK”字符,
    print("OK")
print("1111111111")
# 因此在循环外的字符“1111111111”会被打印

 例5:只打印9次"OK"

先来个容易让人迷惑的例子

# while循环的简单实例
count = 1
while count<10:
    print("OK")
print("111111111")
# 并非打印10次“OK”,而是一个死循环,
# 由于变量count每次循环都没有变化,都是等于1,每进入循环时都是拿1<10做比较,因此这是一个死循环
# 循环外的字符“11111111”不会被打印  

 若要打印9次“OK”,则将程序改成:

# while循环的简单实例
count = 1             # 先定义变量count,并赋值1
while count<10:       # 设定条件,把count
    print("OK",count) # 打印字符“OK”,并打印count变量每次循环的次数变化
    count += 1        # 最关键的一步:将conunt自增1操做,这样每次循环的变量count的数字都会变化,直到小于10后中止循环。

print("111111111") # 以上循环中止后程序将继续执行,将会打印字符"11111111"

 输出结果:

OK 1
OK 2
OK 3
OK 4
OK 5
OK 6
OK 7
OK 8
OK 9
111111111
View Code

二、break与continue的做用

一、break

终止当前循环,跳出循环体

二、continue

终止本次循环并开始下一轮循环

打个很是通俗易懂的比方来理解breakcontinue的区别:

        一个比较叛逆的学生在学校上课,某天由于犯了错挨了老师的骂,叛逆的他便打了老师一顿,违反了校规,被学校责令停课一天检讨,次日又继续让其上课。这就相似于循环体中的continue

        又某一天该学生又犯了错被校长训斥了,因而叛逆的他便打了校长一顿,此次严重违反了校规,直接被学校开除了,之后就不能来学校上课了。这就相似于循环体中的break

例1:简单的用户输入命令程序

# 简单的用户输入命令的程序
user = "xiaobai"
pwd = "123456"
while True:
    user_input = input("Please input your username:")
    password = input("Please input your password:")
    if user_input == user and password == pwd:
        print("Login succefully")  # 用户名密码验证成功后则进入下一个循环
        while True:
            res = input("Please input command:")
            if res == "q":
                break  # 这个break表示当res变量等于q时,则退出当前循环
            print("user input command is %s"%res)
        break  
        # 这个break的意思表示当以上循环退出时,再退出当前的循环,这里能够在以前加上else:也能够不加

 

 因为出现2个break,虽然程序没有错,可是很容易让程序员误解,这时就要用到标识位来解决这个问题,具体操做以下:

# 简单的用户输入命令的程序
user = "xiaobai"
pwd = "123456"
tag = True   # 标识位,至关于生活中的红绿灯,红灯停,绿灯行,让一个变量把True存储起来
while tag:   # 至关于while True,只不过是用tag变量代替了。
    user_input = input("Please input your username:")
    password = input("Please input your password:")
    if user_input == user and password == pwd:
        print("Login succefully")
        while tag:  # 至关于while True,只不过是用tag变量代替了。
            res = input("Please input command:")
            if res == "q":  # 当变量res等于字符“q”时,下面是最重要的一步来了
                tag = False # tag改成False,那么本次的循环就是while False了,while False的特性就是不会运行循环内的代码。
                            # 至关于break,直接跳出了当前循环
                continue   # 这里加上continue是为了避免打印"q"这个命令,由于退出了程序就不须要打印了。表示跳出本次循环。
            print("user input command is %s"%res)
        break    # 这个break表示上面的命令都执行完了则退出当前的主体循环

 

3、for循环

Python中for语句的语法:

for 变量名 in range(范围)

  循环体

定义:和while循环同样,也是用于程序重复作某一件事

range()是内建函数,表示范围

例1:for语句的简单示例

# for 语句的简单示例
for i in range(5): # 默认从0开始,打印5次字符“OK”
    print("OK",i)

 输出结果:

OK 0
OK 1
OK 2
OK 3
OK 4
View Code

 例2:for语句的简单示例2

# for 语句的简单示例2
for i in range(1,5): # 表示取从1到4的范围,顾首不顾尾
    print("OK",i)

 输出结果:

OK 1
OK 2
OK 3
OK 4
View Code

例3:for语句的简单示例3

# for 语句的简单示例3
for i in range(1,5,2):
    # 表示取从1到4的范围,顾首不顾尾,且隔一个值取。括号中第三个数表示步长
    print("OK",i)

 输出结果:

OK 1
OK 3
View Code

例4:九九乘法表

# 九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print("%s*%s=%s" %(i,j,i*j),end=' ') # end是用来避免print自带的换行功能。
    print() # print自带换行功能

4、小练习

一、使用while循环输出一、二、三、四、五、六、八、九、10

误区:如下是新手会常犯的错误,用最笨拙的方法:依次将count的值代入至循环体内进行反复运算,直到count的值等于7时,此时count再也不做自增1的操做了,而是把count等于7的值再回到上面再继续代入至循环体内,碰到if count==7:时又跳出本次循环继续将7代入,反复如此即是死循环了。

输出结果:
1
2
3
4
5
6
View Code
 

从输出的结果看好像只是输出了1-6的数字,实际上这是一个死循环,只须要在if count == 7:下面加上一行打印的代码就能看到效果。

 

解决方法:

(1)方法一:在以上代码中在if count ==7:下面插入一条count  += 1便可

# 一、使用while循环输出一、二、三、四、五、六、八、九、10
count = 1
while count<11:
    if count == 7:
        count += 1 # 做用:当count等于7时,跳出本次循环,再自增1
        continue
    print(count)
    count += 1

 输出结果:

1
2
3
4
5
6
8
9
10
View Code

(2)方法二:优化方法一的代码

# 一、使用while循环输出一、二、三、四、五、六、八、九、10
count = 1
while count<11:
    if count != 7:
        print(count)
    count += 1

 输出结果:

1
2
3
4
5
6
8
9
10
View Code

二、求1-100的全部数的和

(1)方法一:用while循环实现1-100全部数的和

# 二、求1-100的全部数的和
count = 1 # 设定一个初始值
sum = 0   # 设定一个总数的初始值,用于存储总数的计算结果
while count < 101: # 设定循环1-100的范围
    sum = sum + count # 让每次循环的结果相加并赋给sum
    count += 1  # count自增1操做
print(sum)

 输出结果:

5050
View Code

(2)方法二:用for循环实现1-100全部数的和

sum = 0 # 设定一个总数的初始值,用于存储总数的计算结果
for i in range(1,101): # 设定循环1-100的范围
    sum = sum + i  # 让每次循环的结果相加并赋给sum
print(sum)

 输出结果:

5050
View Code

三、输出1-100内的全部的偶数

(1)方法一:用while循环实现1-100全部偶数的和

# 三、输出1-100内的全部的偶数
count = 1
while count<101:
    if count % 2 == 0:  # 取余运算,表示能被2整除
        print(count)
    count += 1

 输出结果:

2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
74
76
78
80
82
84
86
88
90
92
94
96
98
100
View Code

(2)方法二:用for循环实现1-100全部偶数的和

# 三、输出1-100内的全部的偶数
for i in range(1,101):
    if i % 2 == 0:
        print(i)

 输出结果:

2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
60
62
64
66
68
70
72
74
76
78
80
82
84
86
88
90
92
94
96
98
100
View Code

以上的方法中还能够将取余等于0改为取余不等于0

四、求1-2+3-4+5-6...99的全部数的和

(1)方法一:用while循环求1-2+3-4+5-6...99的全部数的和

# 四、求1-2+3-4+5-6...99的全部数的和
count = 1
sum = 0
while count < 100:
    if count % 2 == 0:
        sum = sum - count # 全部负偶数的和
    else:
        sum = sum + count # 全部奇数的和
    count += 1
print(sum)

 输出结果:

50
View Code

(1)方法二:用for循环求1-2+3-4+5-6...99的全部数的和

# 四、求1-2+3-4+5-6...99的全部数的和
sum = 0
for i in range(1,100):
    if i % 2 == 0:
        sum = sum - i # 全部负偶数的和
    else:
        sum = sum + i # 全部奇数的和
print(sum)

 

五、简单的用户登录(三次机会重试)

 

关于这一题,有不少种方法,下面我就以个人思路来解题。

(1)方法一:

# 三次登录
user = "xiaobai"
pwd = "123456"  # 这里必定要加上引号,不然程序会出错
count = 1
while True:
    username = input("Please input your username:")
    password = input("Please input your password:")
    if username == user and password == pwd:
        print("Login successfully!")
        break
    else:
        if count >= 3:
            print("Login fail,Please try again")
            break
    count += 1

 (2)方法二:

user = "xiaobai"
pwd = "123456"  # 这里必定要加上引号,不然程序会出错
count = 0
while True:
    if count == 3:
        print("Too many times!")
        break
    username = input("Please input your username:")
    password = input("Please input your password:")
    if username == user and password == pwd:
        print("Login successfully!")
        break
    count += 1

 

5、Pycharm软件的使用

就例举pycharm中最经常使用的一些功能的快捷键:

一、shift + 回车键跳转至下一行

二、鼠标滚轮按住拖动不放,表示选中的轨迹同时进行编辑

三、ctrl + /  选中行注释

四、将选中的行按Tab键,至关于所选的行行首都增长了一个tab键

五、将选中的行按shift键和Tab键,至关于所选的行行首都减小一个tab键

 暂时写到这里,之后有补充再加上去

6、数字和字符串类型

数据类型指的是变量的值的不一样的类型,用来表示不一样的状态

查看python数据类型的命令是:type()函数

查看python数据的内存地址的命令是:id()函数

一、数字类型:整型、长整型、复数、浮点型。

在Python3中已没有长整型的概念,咱们要用到的最经常使用的就是整型和浮点型。

数字类型的特性:

<1> 只能存放一个值

<2> 一旦定义,不可更改

<3> 直接访问

数字类型的经常使用操做就是用来加减乘除等计算用的。

(1)整型

int()能够强制转换为数字类型,前提条件是字符串必须是数字,不然报错

直接定义,例如:

n = 1   # 这就定义了一个整型

      # 用type(n)就能够查看到这是一个整型的数据类型

(2)浮点型

<1>直接定义,例如:

n = 1.85   # 这就定义了一个浮点型

      # 用type(n)就能够查看到这是一个浮点型的数据类型

<2>补充1:

Python的科学记数法

e表示的:

例如:

print(1.8e-3)    # 表示1800.0

print(1,8e3)     # 表示0.0018

 

<3>补充2:

Python实现十进制转二进制

十进制转换二进制的命令是bin()的函数

例如:

print(bin(10))  # 获得的结果是:“0b1010”,“0b”表明二进制

 

<4>补充3:

Python实现十进制转八进制

十进制转换八进制的命令是oct()的函数

例如:

print(oct(10))  # 获得的结果是:“0o12”,“0o”表明八进制

 

<5>补充4:

Python实现十进制转十六进制

十进制转换十六进制的命令是hex()的函数

例如:

print(hex(10))  # 获得的结果是:“0xa”,“0x”表明十六进制

 

2 、字符串类型

(1)定义:

Python中定义在引号里面的就叫作字符串类型,字符串是由一个个的字符组成的。

用  str( )能够强制转换字符类型

字符串类型的特性:

<1> 只能存放一个值

<2> 不可变

<3> 按照从左至右的顺序定义字符集合,下标从0开始顺序访问,有序

例:

s1 = 'hello world'

s2 ="hello world"

s3 = '''hello world'''

s4 = """hello world"""

(2)字符串经常使用的操做:

字符串的方法是在字符后加上“.”来进行操做的。

字符串经常使用的操做有:

  移除空白  strip()

  分割 s.split("|")

  长度   例:len(s)

  索引   例:s[3]、s[-1]

  切片   例:s[0:5:2]

具体参照  http://www.cnblogs.com/xiaoxiaobai/p/7612042.html

(3)字符串的索引与切片操做:

<1>索引

[ ]来对字符串进行索引操做

  若中括号里的索引数为正数,则从左至右找,从0开始取

  若中括号里的索引数为负数,则从右至左找,从-1开始取

  若中括号里的索引数超出要取的字符串的长度,程序则会报错:IndexError: string index out of range

 

例:取出字母”o“

s = "xiaobai"     # 数字符串“xiaobai”中的字母“o”所在的索引位置,从左至右,从0开始

print(s[3])

<2>切片

[:]来对字符串进行切片操做

  [:],表示取出字符串中的全部字符

   [1:]表示从索位置1开始一直取到字符串最后一个字符

   [:2],表示从索引位置0开始一直取到索引位置1的字符,顾首不顾尾

   [2:6],表示从索引位置2开始一直取到索引位置5的字符,顾首不顾尾

   [-1:],表示从取出字符串中最后一位字符

   [:-1],表示取出除了字符串中最后一位字符的全部字符

   [3:-2],表示从取出索引3至倒数2位置之间的字符

   [1:6:2],表示取出索引1至索引5位置的字符,而且取出的字符每隔一个取一个,最后的“2”表示步长, 由于是正数,表示从左至右隔一个取

 

例:取出索引位置1和3所在的字母

s = "xiaobai"

print(s[1:3])

相关文章
相关标签/搜索